Class ExcelGenericReferenceValidator
- java.lang.Object
-
- com.hybris.backoffice.excel.validators.ExcelGenericReferenceValidator
-
- All Implemented Interfaces:
ExcelValidator
- Direct Known Subclasses:
CatalogVersionPermissionValidator
public class ExcelGenericReferenceValidator extends java.lang.Object implements ExcelValidator
Validator forExcelGenericReferenceTranslatorThe validator tries to load all references and checks whether the references exist
-
-
Field Summary
Fields Modifier and Type Field Description protected static java.lang.StringVALIDATION_MESSAGE_KEY-
Fields inherited from interface com.hybris.backoffice.excel.validators.ExcelValidator
CTX_MEDIA_CONTENT_ENTRIES
-
-
Constructor Summary
Constructors Constructor Description ExcelGenericReferenceValidator()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.util.Optional<FlexibleSearchQuery>buildFlexibleSearchQuery(RequiredAttribute rootUniqueAttribute, java.util.Map<java.lang.String,java.lang.String> importParameters, java.util.Map context)booleancanHandle(ImportParameters importParameters, AttributeDescriptorModel attributeDescriptor)Validator can handle request only if call value is not emptyFlexibleSearchServicegetFlexibleSearchService()RequiredAttributesFactorygetRequiredAttributesFactory()protected TypeServicegetTypeService()protected booleanisBlacklisted(AttributeDescriptorModel attribute)protected ValidationMessageprepareValidationMessage(RequiredAttribute rootUniqueAttribute, java.util.Map<java.lang.String,java.lang.String> importParameters)protected java.util.List<ValidationMessage>recursivelyValidateAllLevels(RequiredAttribute rootUniqueAttribute, ImportParameters importParameters, java.util.Map<java.lang.String,java.lang.Object> context)Recursively checks whether reference exist.voidsetBlacklistedTypes(java.util.Collection<java.lang.String> blacklistedTypes)voidsetExcelWorkbookEntriesService(ExcelWorkbookEntriesService excelWorkbookEntriesService)voidsetFlexibleSearchService(FlexibleSearchService flexibleSearchService)voidsetRequiredAttributesFactory(RequiredAttributesFactory requiredAttributesFactory)voidsetTypeService(TypeService typeService)ExcelValidationResultvalidate(ImportParameters importParameters, AttributeDescriptorModel attributeDescriptor, java.util.Map<java.lang.String,java.lang.Object> context)Validates given cell and returns validation result.ExcelValidationResultvalidateRequiredAttribute(RequiredAttribute requiredAttribute, ImportParameters importParameters, java.util.Map<java.lang.String,java.lang.Object> context)Validates given cell and returns validation result.protected java.util.List<ValidationMessage>validateSingleLevel(RequiredAttribute rootUniqueAttribute, ImportParameters importParameters, java.util.Map<java.lang.String,java.lang.Object> context)Validates just single level without checking children.protected java.util.Optional<ValidationMessage>validateSingleValue(RequiredAttribute rootUniqueAttribute, java.util.Map<java.lang.String,java.lang.String> importParameters, java.util.Map<java.lang.String,java.lang.Object> context)This method validates just single value from single level.
-
-
-
Field Detail
-
VALIDATION_MESSAGE_KEY
protected static final java.lang.String VALIDATION_MESSAGE_KEY
- See Also:
- Constant Field Values
-
-
Method Detail
-
canHandle
public boolean canHandle(ImportParameters importParameters, AttributeDescriptorModel attributeDescriptor)
Validator can handle request only if call value is not empty- Specified by:
canHandlein interfaceExcelValidator- Parameters:
importParameters-attributeDescriptor-- Returns:
- boolean whether validator can handle the cell.
-
isBlacklisted
protected boolean isBlacklisted(AttributeDescriptorModel attribute)
-
validate
public ExcelValidationResult validate(ImportParameters importParameters, AttributeDescriptorModel attributeDescriptor, java.util.Map<java.lang.String,java.lang.Object> context)
Description copied from interface:ExcelValidatorValidates given cell and returns validation result. If cell doesn't have validation issues thenExcelValidationResult.SUCCESSshould be returned.- Specified by:
validatein interfaceExcelValidatorcontext- - map which can be used as a cache. The map is shared between all request for given excel sheet.- Returns:
ExcelValidationResult
-
validateRequiredAttribute
public ExcelValidationResult validateRequiredAttribute(RequiredAttribute requiredAttribute, ImportParameters importParameters, java.util.Map<java.lang.String,java.lang.Object> context)
Validates given cell and returns validation result. If cell doesn't have validation issues thenExcelValidationResultwith no validation errors should be returned.- Parameters:
requiredAttribute- hierarchical structure of required attributesimportParameters- parsed parameters for given cellcontext- map which can be used as a cache. The map is shared between all request for given excel sheet.- Returns:
ExcelValidationResult
-
recursivelyValidateAllLevels
protected java.util.List<ValidationMessage> recursivelyValidateAllLevels(RequiredAttribute rootUniqueAttribute, ImportParameters importParameters, java.util.Map<java.lang.String,java.lang.Object> context)
Recursively checks whether reference exist. The method starts checking references from the lowest descendant. If reference from lower level doesn't exist then process is stopped. For example, if given Catalog.id doesn't exist then reference for catalog version is not checked.- Parameters:
rootUniqueAttribute-importParameters-context-- Returns:
-
validateSingleLevel
protected java.util.List<ValidationMessage> validateSingleLevel(RequiredAttribute rootUniqueAttribute, ImportParameters importParameters, java.util.Map<java.lang.String,java.lang.Object> context)
Validates just single level without checking children. This method is taking into account multi-values.- Parameters:
rootUniqueAttribute-importParameters-context-- Returns:
-
validateSingleValue
protected java.util.Optional<ValidationMessage> validateSingleValue(RequiredAttribute rootUniqueAttribute, java.util.Map<java.lang.String,java.lang.String> importParameters, java.util.Map<java.lang.String,java.lang.Object> context)
This method validates just single value from single level. For example, it checks whether given catalog version exist. To check catalog version, the method assumes that all children's references are checked and stored in context.- Parameters:
rootUniqueAttribute-importParameters-context-- Returns:
-
prepareValidationMessage
protected ValidationMessage prepareValidationMessage(RequiredAttribute rootUniqueAttribute, java.util.Map<java.lang.String,java.lang.String> importParameters)
-
buildFlexibleSearchQuery
protected java.util.Optional<FlexibleSearchQuery> buildFlexibleSearchQuery(RequiredAttribute rootUniqueAttribute, java.util.Map<java.lang.String,java.lang.String> importParameters, java.util.Map context)
-
getRequiredAttributesFactory
public RequiredAttributesFactory getRequiredAttributesFactory()
-
setRequiredAttributesFactory
public void setRequiredAttributesFactory(RequiredAttributesFactory requiredAttributesFactory)
-
getFlexibleSearchService
public FlexibleSearchService getFlexibleSearchService()
-
setFlexibleSearchService
public void setFlexibleSearchService(FlexibleSearchService flexibleSearchService)
-
setExcelWorkbookEntriesService
public void setExcelWorkbookEntriesService(ExcelWorkbookEntriesService excelWorkbookEntriesService)
-
setTypeService
public void setTypeService(TypeService typeService)
-
getTypeService
protected TypeService getTypeService()
-
setBlacklistedTypes
public void setBlacklistedTypes(java.util.Collection<java.lang.String> blacklistedTypes)
-
-