UnmodifiableEmbedderControls.java

  1. package org.jbehave.core.embedder;

  2. import org.apache.commons.lang3.builder.ToStringBuilder;
  3. import org.apache.commons.lang3.builder.ToStringStyle;

  4. public class UnmodifiableEmbedderControls extends EmbedderControls {

  5.     private EmbedderControls delegate;

  6.     public UnmodifiableEmbedderControls(EmbedderControls delegate) {
  7.         this.delegate = delegate;
  8.     }

  9.     @Override
  10.     public boolean batch() {
  11.         return delegate.batch();
  12.     }

  13.     @Override
  14.     public boolean ignoreFailureInView() {
  15.         return delegate.ignoreFailureInView();
  16.     }

  17.     @Override
  18.     public boolean ignoreFailureInStories() {
  19.         return delegate.ignoreFailureInStories();
  20.     }

  21.     @Override
  22.     public boolean generateViewAfterStories() {
  23.         return delegate.generateViewAfterStories();
  24.     }

  25.     @Override
  26.     public boolean skip() {
  27.         return delegate.skip();
  28.     }

  29.     @Override
  30.     public boolean verboseFailures() {
  31.         return delegate.verboseFailures();
  32.     }

  33.     @Override
  34.     public boolean verboseFiltering() {
  35.         return delegate.verboseFiltering();
  36.     }

  37.     @Override
  38.     public String storyTimeouts() {
  39.         return delegate.storyTimeouts();
  40.     }
  41.    
  42.     @Override
  43.     public boolean failOnStoryTimeout() {
  44.         return delegate.failOnStoryTimeout();
  45.     }

  46.     @Override
  47.     public int threads() {
  48.         return delegate.threads();
  49.     }

  50.     @Override
  51.     public EmbedderControls doBatch(boolean batch) {
  52.         throw notAllowed();
  53.     }

  54.     @Override
  55.     public EmbedderControls doIgnoreFailureInView(boolean ignoreFailureInReports) {
  56.         throw notAllowed();
  57.     }

  58.     @Override
  59.     public EmbedderControls doIgnoreFailureInStories(boolean ignoreFailureInStories) {
  60.         throw notAllowed();
  61.     }

  62.     @Override
  63.     public EmbedderControls doGenerateViewAfterStories(boolean generateViewAfterStories) {
  64.         throw notAllowed();
  65.     }

  66.     @Override
  67.     public EmbedderControls doSkip(boolean skip) {
  68.         throw notAllowed();
  69.     }

  70.     @Override
  71.     public EmbedderControls doVerboseFailures(boolean verboseFailures) {
  72.         throw notAllowed();
  73.     }

  74.     @Override
  75.     public EmbedderControls doVerboseFiltering(boolean verboseFiltering) {
  76.         throw notAllowed();
  77.     }

  78.     @Override
  79.     public EmbedderControls useThreads(int threads) {
  80.         throw notAllowed();
  81.     }

  82.     private RuntimeException notAllowed() {
  83.         return new ModificationNotAllowed();
  84.     }

  85.     @Override
  86.     public String toString() {
  87.         return new ToStringBuilder(this, ToStringStyle.SHORT_PREFIX_STYLE).append(delegate).toString();
  88.     }

  89.     @SuppressWarnings("serial")
  90.     public static class ModificationNotAllowed extends RuntimeException {
  91.         public ModificationNotAllowed() {
  92.             super("Configuration elements are unmodifiable");
  93.         }
  94.     }

  95. }