Package io.jmix.dataimport.configuration
Class ImportConfigurationBuilder
java.lang.Object
io.jmix.dataimport.configuration.ImportConfigurationBuilder
Builds an instance of 
ImportConfiguration using the following parameters:
 - Entity class (required): class of entity that will be imported using created import configuration
 - Input data format (required): xlsx, csv, json or xml.
 - Property mappings: list of 
PropertyMapping - Transaction strategy: 
ImportTransactionStrategy. By default, each entity is imported in the separate transaction. - Import batch size: number of entities that will imported in one batch if 
ImportTransactionStrategy.TRANSACTION_PER_BATCHis used. By default, 100. - Date format
 - Custom formats of boolean true and false values
 - Pre-import predicate: a predicate that is executed for each extracted entity before import. If the predicate returns false, the entity won't be imported.
 - Entity initializer: a consumer that is executed after pre-import check and allows to make additional changes with extracted entity before import.
 - Input data charset: this parameter is required if CSV is input data format. Default value: UTF-8
 - Unique entity configurations: list of 
UniqueEntityConfiguration. 
- 
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedImportConfigurationBuilder(Class entityClass, String inputDataFormat)  - 
Method Summary
Modifier and TypeMethodDescriptionaddCustomPropertyMapping(String entityPropertyName, Function<CustomMappingContext, Object> customValueFunction) Adds a custom mapping for property.addPropertyMapping(PropertyMapping propertyMapping) Adds specified property mapping.addReferencePropertyMapping(String entityPropertyName, String dataFieldName, String lookupPropertyName, ReferenceImportPolicy policy) Creates and adds a property mapping for the reference property mapped by one data field.addSimplePropertyMapping(String entityPropertyName, String dataFieldName) Adds a mapping for specified simple property.addUniqueEntityConfiguration(DuplicateEntityPolicy policy, String... entityPropertyNames) Creates and adds aUniqueEntityConfiguration.addUniqueEntityConfiguration(DuplicateEntityPolicy policy, List<String> entityPropertyNames) Creates and adds aUniqueEntityConfiguration.build()Creates an instance ofImportConfigurationbased on the specified parameters.withBooleanFormats(String booleanTrueValue, String booleanFalseValue) Sets the strings for boolean true and false values.withDateFormat(String dateFormat) Sets a date format.withEntityInitializer(Consumer<Object> entityInitializer) Sets a consumer that makes additional changes with entity before import.withImportBatchSize(int importBatchSize) Sets a number of entities that will be imported in one batch.withInputDataCharset(String inputDataCharset) Sets a charset of input data.withPreImportPredicate(Predicate<EntityExtractionResult> preImportPredicate) Sets a predicate that is executed for each created entity before import.withTransactionStrategy(ImportTransactionStrategy transactionStrategy) Sets a transaction strategy. 
- 
Constructor Details
- 
ImportConfigurationBuilder
 
 - 
 - 
Method Details
- 
withInputDataCharset
Sets a charset of input data.- Parameters:
 inputDataCharset- charset of input data.- Returns:
 - current instance of builder
 
 - 
addSimplePropertyMapping
public ImportConfigurationBuilder addSimplePropertyMapping(String entityPropertyName, String dataFieldName) Adds a mapping for specified simple property.- Parameters:
 entityPropertyName- entity property namedataFieldName- name of the field from input data that contains a raw value of property- Returns:
 - current instance of builder
 
 - 
addCustomPropertyMapping
public ImportConfigurationBuilder addCustomPropertyMapping(String entityPropertyName, Function<CustomMappingContext, Object> customValueFunction) Adds a custom mapping for property.- Parameters:
 entityPropertyName- entity property namecustomValueFunction- function to get value for the- Returns:
 - current instance of builder
 
 - 
addUniqueEntityConfiguration
public ImportConfigurationBuilder addUniqueEntityConfiguration(DuplicateEntityPolicy policy, String... entityPropertyNames) Creates and adds aUniqueEntityConfiguration.- Parameters:
 policy- policy which be applied for found duplicatesentityPropertyNames- names of the entity properties by which values the duplicates will be searched- Returns:
 - current instance of builder
 
 - 
addUniqueEntityConfiguration
public ImportConfigurationBuilder addUniqueEntityConfiguration(DuplicateEntityPolicy policy, List<String> entityPropertyNames) Creates and adds aUniqueEntityConfiguration.- Parameters:
 policy- policy which be applied for found duplicatesentityPropertyNames- names of the entity properties by which values the duplicates will be searched- Returns:
 - current instance of builder
 
 - 
withTransactionStrategy
public ImportConfigurationBuilder withTransactionStrategy(ImportTransactionStrategy transactionStrategy) Sets a transaction strategy.- Parameters:
 transactionStrategy- transaction strategy- Returns:
 - current instance of builder
 
 - 
withImportBatchSize
Sets a number of entities that will be imported in one batch.
Note: it is actual ifImportTransactionStrategy.TRANSACTION_PER_BATCHis used.- Parameters:
 importBatchSize- number of entities that will be imported in one batch- Returns:
 - current instance of builder
 
 - 
addReferencePropertyMapping
public ImportConfigurationBuilder addReferencePropertyMapping(String entityPropertyName, String dataFieldName, String lookupPropertyName, ReferenceImportPolicy policy) Creates and adds a property mapping for the reference property mapped by one data field.- Parameters:
 entityPropertyName- reference property namedataFieldName- name of the field from input data that contains a raw value of lookup propertylookupPropertyName- property name from the reference entitypolicy- reference import policy- Returns:
 - current instance of builder
 - See Also:
 
 - 
addPropertyMapping
Adds specified property mapping. Property mapping can be:- Parameters:
 propertyMapping- property mapping- Returns:
 - current instance of builder
 - See Also:
 
 - 
withDateFormat
Sets a date format.- Parameters:
 dateFormat- date format used in the input data- Returns:
 - current instance of builder
 
 - 
withBooleanFormats
public ImportConfigurationBuilder withBooleanFormats(String booleanTrueValue, String booleanFalseValue) Sets the strings for boolean true and false values.- Parameters:
 booleanTrueValue- string that represents boolean true valuebooleanFalseValue- string that represents boolean false value- Returns:
 - current instance of builder
 
 - 
withPreImportPredicate
public ImportConfigurationBuilder withPreImportPredicate(Predicate<EntityExtractionResult> preImportPredicate) Sets a predicate that is executed for each created entity before import. If the predicate returns false, the entity is not imported.- Parameters:
 preImportPredicate- pre-import predicate- Returns:
 - current instance of builder
 
 - 
withEntityInitializer
Sets a consumer that makes additional changes with entity before import.- Parameters:
 entityInitializer- consumer that makes additional changes with entity before import- Returns:
 - current instance of builder
 
 - 
build
Creates an instance ofImportConfigurationbased on the specified parameters.- Returns:
 - created instance of 
ImportConfiguration 
 
 -