Class ExcelEurope1PricesValidator

  • All Implemented Interfaces:
    ExcelValidator

    public class ExcelEurope1PricesValidator
    extends java.lang.Object
    implements ExcelValidator
    Validates prices for ExcelEurope1PricesTypeTranslator.
        Format:price currency:'N'|'G':user|userPriceGroup:quantity unit:[dateFrom to dateTo]:channel
     
    Validator checks if:
    • price is defined and given currency exists
    • Netto | Gross are in correct format
    • user or userPriceGroup exists
    • unit exists and if user or userPriceGroup is provided this field is mandatory
    • dateFrom and dateTo are in correct format ExcelDateUtils.getDateTimeFormat() and dateFrom is not after dateTo
    • defined channel exists
    • Field Detail

      • PATTERN_PRICE_CURRENCY

        public static final java.util.regex.Pattern PATTERN_PRICE_CURRENCY
      • PATTERN_QUANTITY_UNIT

        public static final java.util.regex.Pattern PATTERN_QUANTITY_UNIT
      • PATTERN_DATE_RANGE

        public static final java.util.regex.Pattern PATTERN_DATE_RANGE
      • VALIDATION_CURRENCY_DOESNT_EXIST

        public static final java.lang.String VALIDATION_CURRENCY_DOESNT_EXIST
        See Also:
        Constant Field Values
      • VALIDATION_INCORRECT_PRICE_CURRENCY

        public static final java.lang.String VALIDATION_INCORRECT_PRICE_CURRENCY
        See Also:
        Constant Field Values
      • VALIDATION_EMPTY_PRICE_CURRENCY

        public static final java.lang.String VALIDATION_EMPTY_PRICE_CURRENCY
        See Also:
        Constant Field Values
      • VALIDATION_INCORRECT_PRICE_VALUE

        public static final java.lang.String VALIDATION_INCORRECT_PRICE_VALUE
        See Also:
        Constant Field Values
      • VALIDATION_INVALID_NET_GROSS

        public static final java.lang.String VALIDATION_INVALID_NET_GROSS
        See Also:
        Constant Field Values
      • VALIDATION_INCORRECT_QUANTITY_UNIT

        public static final java.lang.String VALIDATION_INCORRECT_QUANTITY_UNIT
        See Also:
        Constant Field Values
      • VALIDATION_INCORRECT_QUANTITY

        public static final java.lang.String VALIDATION_INCORRECT_QUANTITY
        See Also:
        Constant Field Values
      • VALIDATION_INCORRECT_UNIT

        public static final java.lang.String VALIDATION_INCORRECT_UNIT
        See Also:
        Constant Field Values
      • VALIDATION_INCORRECT_QUANTITY_LOWE_THAN_ONE

        public static final java.lang.String VALIDATION_INCORRECT_QUANTITY_LOWE_THAN_ONE
        See Also:
        Constant Field Values
      • VALIDATION_INCORRECT_USER_OR_USER_PRICE_GROUP

        public static final java.lang.String VALIDATION_INCORRECT_USER_OR_USER_PRICE_GROUP
        See Also:
        Constant Field Values
      • VALIDATION_QUANTITY_UNIT_CANNOT_BE_EMPTY_WHEN_USER_DEFINED

        public static final java.lang.String VALIDATION_QUANTITY_UNIT_CANNOT_BE_EMPTY_WHEN_USER_DEFINED
        See Also:
        Constant Field Values
      • VALIDATION_NO_SUCH_CHANNEL

        public static final java.lang.String VALIDATION_NO_SUCH_CHANNEL
        See Also:
        Constant Field Values
      • VALIDATION_INCORRECT_DATE_RANGE

        public static final java.lang.String VALIDATION_INCORRECT_DATE_RANGE
        See Also:
        Constant Field Values
      • VALIDATION_START_DATE_AFTER_END_DATE

        public static final java.lang.String VALIDATION_START_DATE_AFTER_END_DATE
        See Also:
        Constant Field Values
    • Constructor Detail

      • ExcelEurope1PricesValidator

        public ExcelEurope1PricesValidator()
    • Method Detail

      • validateSingleValue

        protected java.util.List<ValidationMessage> validateSingleValue​(java.util.Map<java.lang.String,​java.lang.Object> ctx,
                                                                        java.util.Map<java.lang.String,​java.lang.String> parameters)
      • validatePrice

        protected java.util.Optional<java.util.List<ValidationMessage>> validatePrice​(java.util.Map<java.lang.String,​java.lang.Object> ctx,
                                                                                      java.lang.String value)
      • validatePriceValue

        protected java.util.Optional<ValidationMessage> validatePriceValue​(java.lang.String price)
      • validateCurrency

        protected java.util.Optional<ValidationMessage> validateCurrency​(java.util.Map<java.lang.String,​java.lang.Object> ctx,
                                                                         java.lang.String currency)
      • validateNetGross

        protected java.util.Optional<ValidationMessage> validateNetGross​(java.lang.String netGross)
      • validateUserPriceGroup

        protected java.util.Optional<ValidationMessage> validateUserPriceGroup​(java.lang.String groupOrUser)
      • validateDateRange

        protected java.util.Optional<ValidationMessage> validateDateRange​(java.lang.String dateRange)
      • parseDate

        protected java.util.Date parseDate​(java.lang.String date)
      • validateChannel

        protected java.util.Optional<ValidationMessage> validateChannel​(java.lang.String channel)
      • validateQuantityUnit

        protected java.util.Optional<java.util.List<ValidationMessage>> validateQuantityUnit​(java.util.Map<java.lang.String,​java.lang.Object> ctx,
                                                                                             java.lang.String quantityUnit,
                                                                                             java.lang.String groupOrUser)
      • validateQuantity

        protected java.util.Optional<ValidationMessage> validateQuantity​(java.lang.String quantity)
      • validateUnit

        protected java.util.Optional<ValidationMessage> validateUnit​(java.util.Map<java.lang.String,​java.lang.Object> ctx,
                                                                     java.lang.String unit)
      • containsCurrency

        protected boolean containsCurrency​(java.util.Map<java.lang.String,​java.lang.Object> ctx,
                                           java.lang.String currency)
      • containsUnit

        protected boolean containsUnit​(java.util.Map<java.lang.String,​java.lang.Object> ctx,
                                       java.lang.String unit)
      • populateContext

        protected void populateContext​(java.util.Map<java.lang.String,​java.lang.Object> ctx)
      • checkIfCurrencyExist

        protected boolean checkIfCurrencyExist​(java.util.Map<java.lang.String,​java.lang.Object> ctx,
                                               java.lang.String currency)
      • canHandle

        public boolean canHandle​(ImportParameters importParameters,
                                 AttributeDescriptorModel attributeDescriptor)
        Description copied from interface: ExcelValidator
        Indicates whether given validator can handle a cell based on attribute descriptor and import parameters.
        Specified by:
        canHandle in interface ExcelValidator
        Returns:
        boolean whether validator can handle the cell.
      • setCurrencyDao

        public void setCurrencyDao​(CurrencyDao currencyDao)
      • setUnitService

        public void setUnitService​(UnitService unitService)
      • setEnumerationService

        public void setEnumerationService​(EnumerationService enumerationService)
      • setUserService

        public void setUserService​(UserService userService)
      • setExcelDateUtils

        public void setExcelDateUtils​(ExcelDateUtils excelDateUtils)