PropertyManagement implements Serializable { public synchronized void storeAll(final ParameterEnum<?>[] names, final Object[] values) { if (values.length != names.length) { LOGGER.error( "The number of values must equal the number of names passed to the store method"); throw new IllegalArgumentException( "The number of values must equal the number of names passed to the store method"); } int i = 0; for (final Object value : values) { store(names[i++], value); } } PropertyManagement();  PropertyManagement(
      final PropertyConverter<?>[] converters,
      final ParameterEnum<?>[] names,
      final Object[] values);  PropertyManagement(final ParameterEnum<?>[] names, final Object[] values);  PropertyManagement(final PropertyManagement pm); Serializable get(final ParameterEnum<?> propertyName); synchronized void store(
      final ParameterEnum<?> property,
      final T value,
      final PropertyConverter<T> converter); synchronized void store(final ParameterEnum<?> property, final Object value); synchronized Serializable storeIfEmpty(
      final ParameterEnum<?> propertyEnum,
      final Serializable value); synchronized void copy(
      final ParameterEnum<?> propertyNameFrom,
      final ParameterEnum<?> propertyNameTo); synchronized void storeAll(final ParameterEnum<?>[] names, final Object[] values); void setConfig(
      final ParameterEnum<?>[] parameters,
      final Configuration config,
      final Class<?> scope); @SuppressWarnings("unchecked") T getClassInstance(
      final ParameterEnum<?> property,
      final Class<T> iface,
      final Class<?> defaultClass); synchronized boolean hasProperty(final ParameterEnum<?> property); String getPropertyAsString(final ParameterEnum<?> property); Object getProperty(final ParameterEnum<?> property); T getProperty(final ParameterEnum<?> property, final PropertyConverter<T> converter); byte[] getPropertyAsBytes(final ParameterEnum<?> property); String getPropertyAsString(final ParameterEnum<?> property, final String defaultValue); Boolean getPropertyAsBoolean(final ParameterEnum<?> property, final Boolean defaultValue); Integer getPropertyAsInt(final ParameterEnum<?> property, final int defaultValue); Double getPropertyAsDouble(final ParameterEnum<?> property, final double defaultValue); NumericRange getPropertyAsRange(
      final ParameterEnum<?> property,
      final NumericRange defaultValue); Class<?> getPropertyAsClass(final ParameterEnum<?> property); Class<T> getPropertyAsClass(final ParameterEnum<?> property, final Class<T> iface); Class<? extends T> getPropertyAsClass(
      final ParameterEnum<?> property,
      final Class<? extends T> iface,
      final Class<? extends T> defaultClass); Query<?> getPropertyAsQuery(final ParameterEnum property); Path getPropertyAsPath(final ParameterEnum<?> property); Persistable getPropertyAsPersistable(final ParameterEnum<?> property); void setJobConfiguration(final Configuration configuration, final Class<?> scope); void dump(); synchronized void addConverter(final PropertyConverter<?> converter);  }
@Test public void testBulk() throws Exception { final PropertyManagement pm = new PropertyManagement(); pm.storeAll( new ParameterEnum[] {ExtractParameters.Extract.DATA_NAMESPACE_URI}, new Serializable[] {"file: }