Class ConflictCheckerImpl

java.lang.Object
de.hybris.platform.sap.productconfig.frontend.validator.ConflictCheckerImpl
All Implemented Interfaces:
ConflictChecker

public class ConflictCheckerImpl extends Object implements ConflictChecker
Default implementation of ConflictChecker.
Treats missing mandatory fields and conflicts as less severe than UI-Validation Errors, hence ensures that GroupStatusType.ERROR is not overwritten by a conflict (@link GroupStatusType.CONFLICT or a missing mandatory field GroupStatusType.WARNING.
  • Field Details

    • ERROR_CODE_ARRAY_LENGTH

      public static final int ERROR_CODE_ARRAY_LENGTH
      See Also:
    • ERROR_CODE_WITH_FIELDNAME_INDEX

      public static final int ERROR_CODE_WITH_FIELDNAME_INDEX
      See Also:
    • ERROR_CODE_INDEX

      public static final int ERROR_CODE_INDEX
      See Also:
  • Constructor Details

    • ConflictCheckerImpl

      public ConflictCheckerImpl()
  • Method Details

    • checkConflicts

      public void checkConflicts(ConfigurationData config, org.springframework.validation.BindingResult bindingResult)
      Description copied from interface: ConflictChecker
      Checks whether the given configuration object contains conflicts, and if so updates the group/cstic status accordingly.
      Creates for every conflict and UI-Error.
      Specified by:
      checkConflicts in interface ConflictChecker
      Parameters:
      config - config to check
      bindingResult - storage for UI errors
    • checkConflitcsInGroups

      protected GroupStatusType checkConflitcsInGroups(UiGroupData group, String prefix, org.springframework.validation.BindingResult bindingResult)
    • checkConflictsInCstics

      protected boolean checkConflictsInCstics(String prefix, org.springframework.validation.BindingResult bindingResult, List<CsticData> cstics)
    • validateCsicConflict

      protected boolean validateCsicConflict(CsticData csticData, String prefix, int index, org.springframework.validation.BindingResult bindingResult)
    • checkConflictsInSubGroups

      protected boolean checkConflictsInSubGroups(UiGroupData group, String prefix, org.springframework.validation.BindingResult bindingResult, List<UiGroupData> subGroups)
    • checkConflictsInSubGroup

      protected boolean checkConflictsInSubGroup(UiGroupData group, String path, org.springframework.validation.BindingResult bindingResult, UiGroupData subGroup)
    • checkMandatoryFields

      public void checkMandatoryFields(ConfigurationData config, org.springframework.validation.BindingResult bindingResult)
      Description copied from interface: ConflictChecker
      Checks whether the given configuration object contains mandatory fields without any value, and if so updates the group/cstic status accordingly.
      Creates for every missing field and UI-Error.
      Specified by:
      checkMandatoryFields in interface ConflictChecker
      Parameters:
      config - config to check
      bindingResult - storage for UI errors
    • checkMandatoryFieldsInGroups

      protected GroupStatusType checkMandatoryFieldsInGroups(UiGroupData group, String prefix, org.springframework.validation.BindingResult bindingResult)
    • checkMandatoryFieldsInSubGroups

      protected boolean checkMandatoryFieldsInSubGroups(UiGroupData group, String prefix, org.springframework.validation.BindingResult bindingResult, List<UiGroupData> subGroups)
    • checkMondatoryFieldsInSubGroup

      protected boolean checkMondatoryFieldsInSubGroup(UiGroupData group, String path, org.springframework.validation.BindingResult bindingResult, UiGroupData subGroup)
    • checkMandatoryFIeldsInCstics

      protected boolean checkMandatoryFIeldsInCstics(String prefix, org.springframework.validation.BindingResult bindingResult, List<CsticData> cstics)
    • validateMandatoryCstic

      protected boolean validateMandatoryCstic(CsticData csticData, String prefix, int index, org.springframework.validation.BindingResult bindingResult)
    • validateMandatoryFields

      protected boolean validateMandatoryFields(CsticData csticData, String path, org.springframework.validation.BindingResult bindingResult)
    • determineMandatoryFieldErrorMessage

      protected String determineMandatoryFieldErrorMessage(UiType type)
    • determineMandatoryFieldErrorCode

      protected String[] determineMandatoryFieldErrorCode(UiType type)
    • checkEmpty

      protected boolean checkEmpty(CsticData csticData)
    • validate

      protected void validate(CsticData csticData, List<ConflictData> conflicts, String path, org.springframework.validation.BindingResult bindingResult)
    • determineErrorMessage

      protected String determineErrorMessage(ConflictData conflict)
    • determineErrorCode

      protected String[] determineErrorCode(ConflictData conflict)
    • isEmptyOrNull

      protected boolean isEmptyOrNull(List<?> list)
    • checkCompletness

      public void checkCompletness(ConfigurationData config)
      Description copied from interface: ConflictChecker
      Checks whether a UI-Group is considered complete, and if so sets the group status accordingly.
      Specified by:
      checkCompletness in interface ConflictChecker
      Parameters:
      config - configuration to check
    • checkCompletness

      protected boolean checkCompletness(List<UiGroupData> uiGroups)
    • groupIsNotEmpty

      protected boolean groupIsNotEmpty(UiGroupData uiGroup)
    • checkAllCsticCopmplete

      protected boolean checkAllCsticCopmplete(UiGroupData uiGroup)
    • hasNoErrorOrWarningOrConflict

      protected boolean hasNoErrorOrWarningOrConflict(UiGroupData uiGroup)