Class DefaultExcelImportService
- java.lang.Object
-
- com.hybris.backoffice.excel.importing.DefaultExcelImportService
-
- All Implemented Interfaces:
ExcelImportService
public class DefaultExcelImportService extends java.lang.Object implements ExcelImportService
Service responsible for generatingImpexbased on excel file represented byWorkbookobject. In order to generating impex script, we can pass the cellValidation of {#importData} toImpexConverter.convert(Impex).
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static classDefaultExcelImportService.CellValidationMetaDataPOJO which contains cell validation meta data
-
Field Summary
Fields Modifier and Type Field Description static intFIRST_DATA_ROW_INDEXstatic java.lang.StringMULTIVALUE_SEPARATORDeprecated, for removal: This API element is subject to removal in a future version.since 1808 - UseImportParameters.MULTIVALUE_SEPARATOR
-
Constructor Summary
Constructors Constructor Description DefaultExcelImportService()
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description ImpexconvertToImpex(org.apache.poi.ss.usermodel.Workbook workbook)Transforms excel workbook intoImpexobject.protected booleanfindFirstNotBlankCell(org.apache.poi.ss.usermodel.Row row)protected ImportParametersfindImportParameters(SelectedAttribute selectedAttribute, java.lang.String cellValue, java.lang.String typeCode, java.lang.String entryRef)Parses cell's value taking into account reference pattern and default values (which are located in the second and third row).protected java.util.List<java.lang.String>generateDocumentRefs(java.lang.Integer rowsCount)In order to simplify cross-reference imports, impex allows to use document reference.protected ImpexgenerateImpexForSheet(org.apache.poi.ss.usermodel.Sheet typeSystemSheet, org.apache.poi.ss.usermodel.Sheet typeSheet)Generates impex for given sheetprotected java.lang.StringgetAttributeDisplayName(SelectedAttribute attribute)DisplayNameAttributeNameFormattergetDisplayNameAttributeNameFormatter()ExcelCellServicegetExcelCellService()ExcelHeaderServicegetExcelHeaderService()ExcelSheetServicegetExcelSheetService()ExcelTemplateServicegetExcelTemplateService()Deprecated, for removal: This API element is subject to removal in a future version.since 1808ExcelTranslatorRegistrygetExcelTranslatorRegistry()ExcelValidationEngineAwareValidatorgetExcelValidationEngineAwareValidator()ExcelWorkbookServicegetExcelWorkbookService()ParserRegistrygetParserRegistry()java.util.List<WorkbookValidator>getWorkbookValidators()protected booleanhasRowCorrectData(org.apache.poi.ss.usermodel.Row row)protected voidinsertDocumentReferences(Impex mainImpex, java.lang.String typeCode, java.util.List<java.lang.String> entriesRef)In order to simplify cross-reference imports, impex allows to use document reference.protected voidmergeWithRowValidation(java.util.Map<java.lang.Integer,ExcelValidationResult> rowsValidation, java.lang.Integer rowIndex, ExcelValidationResult cellValidation)protected ExcelWorksheetpopulate(org.apache.poi.ss.usermodel.Sheet typeSystemSheet, org.apache.poi.ss.usermodel.Sheet typeSheet)protected ExcelWorkbookpopulate(org.apache.poi.ss.usermodel.Workbook workbook)protected voidpopulateHeaderMetadata(ValidationMessage header, DefaultExcelImportService.CellValidationMetaData metaData)protected voidpopulateRows(org.apache.poi.ss.usermodel.Sheet typeSheet, ExcelWorksheet excelWorksheet, java.util.List<java.lang.String> entriesRef, SelectedAttribute selectedAttribute, int columnIndex)protected ValidationMessageprepareValidationHeader(DefaultExcelImportService.CellValidationMetaData metaData)voidsetDisplayNameAttributeNameFormatter(DisplayNameAttributeNameFormatter displayNameAttributeNameFormatter)voidsetExcelCellService(ExcelCellService excelCellService)voidsetExcelHeaderService(ExcelHeaderService excelHeaderService)voidsetExcelSheetService(ExcelSheetService excelSheetService)voidsetExcelTemplateService(ExcelTemplateService excelTemplateService)Deprecated, for removal: This API element is subject to removal in a future version.since 1808voidsetExcelTranslatorRegistry(ExcelTranslatorRegistry excelTranslatorRegistry)voidsetExcelValidationEngineAwareValidator(ExcelValidationEngineAwareValidator excelValidationEngineAwareValidator)voidsetExcelWorkbookService(ExcelWorkbookService excelWorkbookService)voidsetParserRegistry(ParserRegistry parserRegistry)voidsetWorkbookValidators(java.util.List<WorkbookValidator> workbookValidators)protected java.util.List<ExcelValidationResult>validate(ExcelWorksheet excelWorksheet, java.util.Map<java.lang.String,java.lang.Object> context)java.util.List<ExcelValidationResult>validate(org.apache.poi.ss.usermodel.Workbook workbook)Validates a workbook.java.util.List<ExcelValidationResult>validate(org.apache.poi.ss.usermodel.Workbook workbook, java.util.Set<java.lang.String> mediaContentEntries)Validates a workbook.java.util.List<ExcelValidationResult>validate(org.apache.poi.ss.usermodel.Workbook workbook, java.util.Set<java.lang.String> mediaContentEntries, java.util.Map<java.lang.String,java.lang.Object> context)Validates a workbook.protected java.util.Optional<ExcelValidationResult>validateCell(ExcelValueTranslator translator, DefaultExcelImportService.CellValidationMetaData metaData)protected java.util.Optional<ExcelValidationResult>validateExcelFileOrigin(org.apache.poi.ss.usermodel.Workbook workbook)protected java.util.List<ExcelValidationResult>validateWorkbook(org.apache.poi.ss.usermodel.Workbook workbook)
-
-
-
Field Detail
-
MULTIVALUE_SEPARATOR
@Deprecated(since="1808", forRemoval=true) public static final java.lang.String MULTIVALUE_SEPARATORDeprecated, for removal: This API element is subject to removal in a future version.since 1808 - UseImportParameters.MULTIVALUE_SEPARATOR- See Also:
- Constant Field Values
-
FIRST_DATA_ROW_INDEX
public static final int FIRST_DATA_ROW_INDEX
- See Also:
- Constant Field Values
-
-
Method Detail
-
convertToImpex
public Impex convertToImpex(org.apache.poi.ss.usermodel.Workbook workbook)
Transforms excel workbook intoImpexobject. It takes into account all sheets included in excel file.- Specified by:
convertToImpexin interfaceExcelImportService- Parameters:
workbook-Workbookobject which represents excel file- Returns:
- generated
Impexobject which represents data from the workbook
-
validate
public java.util.List<ExcelValidationResult> validate(org.apache.poi.ss.usermodel.Workbook workbook, java.util.Set<java.lang.String> mediaContentEntries)
Description copied from interface:ExcelImportServiceValidates a workbook.- Specified by:
validatein interfaceExcelImportService- Parameters:
workbook- workbook to validate.mediaContentEntries- set of entries names inside media content attached to the excel file. Null if media is not attached.- Returns:
- list of validation results.
-
validate
public java.util.List<ExcelValidationResult> validate(org.apache.poi.ss.usermodel.Workbook workbook, java.util.Set<java.lang.String> mediaContentEntries, java.util.Map<java.lang.String,java.lang.Object> context)
Description copied from interface:ExcelImportServiceValidates a workbook.- Specified by:
validatein interfaceExcelImportService- Parameters:
workbook- workbook to validate.mediaContentEntries- set of entries names inside media content attached to the excel file. Null if media is not attached.context- context with additional parameters- Returns:
- list of validation results.
-
validate
public java.util.List<ExcelValidationResult> validate(org.apache.poi.ss.usermodel.Workbook workbook)
Description copied from interface:ExcelImportServiceValidates a workbook.- Specified by:
validatein interfaceExcelImportService- Parameters:
workbook- workbook to validate.- Returns:
- list of validation results.
-
validateExcelFileOrigin
protected java.util.Optional<ExcelValidationResult> validateExcelFileOrigin(org.apache.poi.ss.usermodel.Workbook workbook)
-
validateWorkbook
protected java.util.List<ExcelValidationResult> validateWorkbook(org.apache.poi.ss.usermodel.Workbook workbook)
-
populate
protected ExcelWorkbook populate(org.apache.poi.ss.usermodel.Workbook workbook)
-
populate
protected ExcelWorksheet populate(org.apache.poi.ss.usermodel.Sheet typeSystemSheet, org.apache.poi.ss.usermodel.Sheet typeSheet)
-
populateRows
protected void populateRows(org.apache.poi.ss.usermodel.Sheet typeSheet, ExcelWorksheet excelWorksheet, java.util.List<java.lang.String> entriesRef, SelectedAttribute selectedAttribute, int columnIndex)
-
hasRowCorrectData
protected boolean hasRowCorrectData(org.apache.poi.ss.usermodel.Row row)
-
findFirstNotBlankCell
protected boolean findFirstNotBlankCell(org.apache.poi.ss.usermodel.Row row)
-
validate
protected java.util.List<ExcelValidationResult> validate(ExcelWorksheet excelWorksheet, java.util.Map<java.lang.String,java.lang.Object> context)
-
mergeWithRowValidation
protected void mergeWithRowValidation(java.util.Map<java.lang.Integer,ExcelValidationResult> rowsValidation, java.lang.Integer rowIndex, ExcelValidationResult cellValidation)
-
getAttributeDisplayName
protected java.lang.String getAttributeDisplayName(SelectedAttribute attribute)
-
validateCell
protected java.util.Optional<ExcelValidationResult> validateCell(ExcelValueTranslator translator, DefaultExcelImportService.CellValidationMetaData metaData)
-
prepareValidationHeader
protected ValidationMessage prepareValidationHeader(DefaultExcelImportService.CellValidationMetaData metaData)
-
populateHeaderMetadata
protected void populateHeaderMetadata(ValidationMessage header, DefaultExcelImportService.CellValidationMetaData metaData)
-
generateImpexForSheet
protected Impex generateImpexForSheet(org.apache.poi.ss.usermodel.Sheet typeSystemSheet, org.apache.poi.ss.usermodel.Sheet typeSheet)
Generates impex for given sheet- Parameters:
typeSystemSheet- - sheet contains metainformation about type codestypeSheet- - sheet contains data for given type code- Returns:
Impexgenerated impex object
-
insertDocumentReferences
protected void insertDocumentReferences(Impex mainImpex, java.lang.String typeCode, java.util.List<java.lang.String> entriesRef)
In order to simplify cross-reference imports, impex allows to use document reference. This method inserts references for each row.- Parameters:
mainImpex-Impex- represents impex for currently processing workbooktypeCode- - type code of currently processing sheetentriesRef- - list of generated document references
-
generateDocumentRefs
protected java.util.List<java.lang.String> generateDocumentRefs(java.lang.Integer rowsCount)
In order to simplify cross-reference imports, impex allows to use document reference. The method generates list of random UUIDs for each row of imported excel.- Parameters:
rowsCount- - indicates how many document references should be generated.- Returns:
- list of UUIDs
-
findImportParameters
protected ImportParameters findImportParameters(SelectedAttribute selectedAttribute, java.lang.String cellValue, java.lang.String typeCode, java.lang.String entryRef)
Parses cell's value taking into account reference pattern and default values (which are located in the second and third row). Merges default values if needed.- Parameters:
selectedAttribute-SelectedAttribute- Information about selected attribute: its isoCode (for localized values), referencePattern for references and attributeDescriptorcellValue- - Original cell's value represented as StringtypeCode- - Type code of current sheet- Returns:
ImportParametersConverted import parameters, merged with default values
-
getExcelTemplateService
@Deprecated(since="1808", forRemoval=true) public ExcelTemplateService getExcelTemplateService()Deprecated, for removal: This API element is subject to removal in a future version.since 1808
-
setExcelTemplateService
@Deprecated(since="1808", forRemoval=true) public void setExcelTemplateService(ExcelTemplateService excelTemplateService)Deprecated, for removal: This API element is subject to removal in a future version.since 1808
-
getExcelTranslatorRegistry
public ExcelTranslatorRegistry getExcelTranslatorRegistry()
-
setExcelTranslatorRegistry
public void setExcelTranslatorRegistry(ExcelTranslatorRegistry excelTranslatorRegistry)
-
getWorkbookValidators
public java.util.List<WorkbookValidator> getWorkbookValidators()
-
setWorkbookValidators
public void setWorkbookValidators(java.util.List<WorkbookValidator> workbookValidators)
-
getExcelValidationEngineAwareValidator
public ExcelValidationEngineAwareValidator getExcelValidationEngineAwareValidator()
-
setExcelValidationEngineAwareValidator
public void setExcelValidationEngineAwareValidator(ExcelValidationEngineAwareValidator excelValidationEngineAwareValidator)
-
getParserRegistry
public ParserRegistry getParserRegistry()
-
setParserRegistry
public void setParserRegistry(ParserRegistry parserRegistry)
-
getExcelWorkbookService
public ExcelWorkbookService getExcelWorkbookService()
-
setExcelWorkbookService
public void setExcelWorkbookService(ExcelWorkbookService excelWorkbookService)
-
getExcelSheetService
public ExcelSheetService getExcelSheetService()
-
setExcelSheetService
public void setExcelSheetService(ExcelSheetService excelSheetService)
-
getExcelCellService
public ExcelCellService getExcelCellService()
-
setExcelCellService
public void setExcelCellService(ExcelCellService excelCellService)
-
getExcelHeaderService
public ExcelHeaderService getExcelHeaderService()
-
setExcelHeaderService
public void setExcelHeaderService(ExcelHeaderService excelHeaderService)
-
getDisplayNameAttributeNameFormatter
public DisplayNameAttributeNameFormatter getDisplayNameAttributeNameFormatter()
-
setDisplayNameAttributeNameFormatter
public void setDisplayNameAttributeNameFormatter(DisplayNameAttributeNameFormatter displayNameAttributeNameFormatter)
-
-