/**
  * Adds the configurations for data stores whose entities will be mapped using the engine created
  * by this class.
  *
  * @param dataStores configurations of data stores that will have their entities mapped through
  *     this engine.
  */
 public final void addDataStoreConfigurations(DataStoreConfiguration... dataStores) {
   Args.notEmpty(dataStores, "Data stores");
   for (DataStoreConfiguration config : dataStores) {
     Args.notNull(config, "Data store configuration");
     dataStoreConfigurations.add(config);
   }
 }
 /**
  * Adds instances of {@link CustomDataStoreFactory} that should be used by uniVocity to read any
  * custom {@link DataStoreConfiguration}, provided by the user in the constructor of this class,
  * to properly create instances of {@link CustomDataStore}.
  *
  * @param customFactories the factories that process user-provided data store configurations and
  *     generate custom data store instances.
  */
 public final void addCustomDataStoreFactories(CustomDataStoreFactory<?>... customFactories) {
   Args.notEmpty(customFactories, "Custom data store factories");
   for (CustomDataStoreFactory<?> customFactory : customFactories) {
     Args.notNull(customFactory, "Custom data store factory");
     customDataStoreFactories.add(customFactory);
   }
 }
  /**
   * Creates a new engine configuration with the essential configuration required by uniVocity for
   * enabling the definition and execution of data mappings.
   *
   * @param engineName the name of the new engine. The engine name is used to obtain instances of
   *     {@link DataIntegrationEngine} and manage them using {@link Univocity}
   * @param dataStores optional parameter for the configurations of data stores that will have their
   *     entities mapped through this engine. More dataStores can be added later using {@link
   *     #addDataStoreConfigurations(DataStoreConfiguration...)}
   */
  public EngineConfiguration(String engineName, DataStoreConfiguration... dataStores) {
    Args.notBlank(engineName, "Engine name");
    this.engineName = engineName;

    if (dataStores != null && dataStores.length > 0) {
      addDataStoreConfigurations(dataStores);
    }
  }
 /**
  * Defines the maximum length of this field. A value of -1 means the length is undefined. Zero is
  * not a valid length.
  *
  * @param length the length of this field.
  */
 public void setLength(int length) {
   if (length < 0) {
     length = -1;
   } else {
     Args.positive(length, "Field length");
   }
   this.length = length;
 }
 /**
  * Creates an entity field instance with its name.
  *
  * @param name a name that describes a particular field in each record of an entity.
  */
 public DefaultEntityField(String name) {
   Args.notBlank(name, "Field name");
   this.name = name.trim();
 }