code: private static void applyConfigurationOption(CommonConfiguration configuration, ConfigurationOption option,
  	            String value) throws IOException, ClassNotFoundException {
  		switch (option) {
  		case CONTROL:
  			if (!(configuration instanceof GlobalConfiguration)) {
  				throw new IllegalArgumentException("The option " + option + " is not applicable");
  			}
  			((GlobalConfiguration) configuration).readControlFile(value);
  			break;
  		case SUMMARY:
  			if (!(configuration instanceof GlobalConfiguration)) {
  				throw new IllegalArgumentException("The option " + option + " is not applicable");
  			}
  			((GlobalConfiguration) configuration).initSummaryWriter(value);
  			break;
  		case COLLECTION_IMPLEMENTATION:
  			configuration.setCollectionImplClass(Class.forName(value));
  			break;
  		case COLLECTION_INTERFACE:
  			configuration.setCollectionInterfaceClass(Class.forName(value));
  			break;
  		case INSTANTIATION_MODE:
  			try {
  				configuration.setInstantiationMode(CommonConfiguration.InstantiationMode.valueOf(value.toUpperCase()));
  			}
  			catch (IllegalArgumentException e) {
  				throw new IllegalArgumentException("Unknown instantiation mode \"" + value + "\"");
  			}
  			break;
  		case APPLY_PLURAL_FORM:
  			configuration.setApplyPluralForm(Boolean.parseBoolean(value));
  			break;
  		case ANNOTATE:
  			if (!(configuration instanceof ClassConfiguration)) {
  				throw new IllegalArgumentException("The option " + option + " is not applicable");
  			}
  			((ClassConfiguration) configuration).setAnnotatable(Boolean.parseBoolean(value));
  			break;
  		}
  	}
docs: Try to apply the {@code value} for the given configuration {@code option} to the given {@code configuration}.
  Note that depending on configuration level (global, class, property) not every option is applicable (in that case
  {@link IllegalArgumentException} is thrown).