Class NamedQueryDataValidator

  • All Implemented Interfaces:
    org.springframework.validation.Validator

    public class NamedQueryDataValidator
    extends java.lang.Object
    implements org.springframework.validation.Validator
    Validates DTO for executing named query.

    Rules:

    • namedQuery not null
    • namedQuery exists
    • pageSize > 0, if provided
    • pageSize <= ${cmswebservices.media.namedquery.max.pagesize}, if provided
    • currentPage >= 0, if provided
    • sort formatting, if sort provided
    • sort parameter names, if sort provided
    • sort directions, if sort provided
    • params not null
    • params formatting
    • params parameter names

    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected int getMaxPageSize()  
      protected java.util.function.Predicate<java.lang.String> getNamedQueryExistsPredicate()  
      protected java.util.Set<java.lang.String> getValidParameterNames​(java.lang.Class<?> queryType)
      Get valid parameters names as the attributes of the named query's query type.
      void setMaxPageSize​(int maxPageSize)  
      void setNamedQueryExistsPredicate​(java.util.function.Predicate<java.lang.String> namedQueryExistsPredicate)  
      boolean supports​(java.lang.Class<?> clazz)  
      void validate​(java.lang.Object obj, org.springframework.validation.Errors errors)  
      protected void validateParamPair​(java.lang.String paramPair, java.util.Set<java.lang.String> validParamNames, org.springframework.validation.Errors errors)
      Validate the parameter name of a single paramPair.
      protected void validateSortPair​(java.lang.String sortPair, java.util.Set<java.lang.String> validParamNames, org.springframework.validation.Errors errors)
      Validate the parameter name and sort direction of a single sortPair.
      protected boolean validSortDirection​(java.lang.String direction)
      Check whether the sort direction provided matches a valid enum value from SortDirection.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • NamedQueryDataValidator

        public NamedQueryDataValidator()
    • Method Detail

      • supports

        public boolean supports​(java.lang.Class<?> clazz)
        Specified by:
        supports in interface org.springframework.validation.Validator
      • validate

        public void validate​(java.lang.Object obj,
                             org.springframework.validation.Errors errors)
        Specified by:
        validate in interface org.springframework.validation.Validator
      • getValidParameterNames

        protected java.util.Set<java.lang.String> getValidParameterNames​(java.lang.Class<?> queryType)
        Get valid parameters names as the attributes of the named query's query type.
        Parameters:
        queryType - - the class representing the type of query
        Returns:
        list of valid params
      • validateSortPair

        protected void validateSortPair​(java.lang.String sortPair,
                                        java.util.Set<java.lang.String> validParamNames,
                                        org.springframework.validation.Errors errors)
        Validate the parameter name and sort direction of a single sortPair.

        Expected Format: {paramName}:{sortDirection}
        Example: code:ASC

        Parameters:
        sortPair -
        errors -
      • validateParamPair

        protected void validateParamPair​(java.lang.String paramPair,
                                         java.util.Set<java.lang.String> validParamNames,
                                         org.springframework.validation.Errors errors)
        Validate the parameter name of a single paramPair.

        Expected Format: {paramName}:{paramValue}
        Example: code:banner

        Parameters:
        paramPair -
        validParamNames -
        errors -
      • validSortDirection

        protected boolean validSortDirection​(java.lang.String direction)
        Check whether the sort direction provided matches a valid enum value from SortDirection.
        Parameters:
        direction -
        Returns:
        true if the sort direction is valid, false otherwise
      • getMaxPageSize

        protected int getMaxPageSize()
      • setMaxPageSize

        public void setMaxPageSize​(int maxPageSize)
      • getNamedQueryExistsPredicate

        protected java.util.function.Predicate<java.lang.String> getNamedQueryExistsPredicate()
      • setNamedQueryExistsPredicate

        public void setNamedQueryExistsPredicate​(java.util.function.Predicate<java.lang.String> namedQueryExistsPredicate)