Class JpaMappableRsqlFilterExecutor<D,​I>

  • All Implemented Interfaces:
    com.broadleafcommerce.common.extension.DomainTypeAware, com.broadleafcommerce.data.tracking.core.service.MappableRsqlFilterExecutor<D>

    public class JpaMappableRsqlFilterExecutor<D,​I>
    extends Object
    implements com.broadleafcommerce.data.tracking.core.service.MappableRsqlFilterExecutor<D>
    Author:
    Jeff Fischer
    • Constructor Summary

      Constructors 
      Constructor Description
      JpaMappableRsqlFilterExecutor​(org.springframework.data.jpa.repository.support.JpaEntityInformation<D,​I> metadata, javax.persistence.EntityManager em, cz.jirutka.rsql.parser.ast.RSQLVisitor<javax.persistence.criteria.Predicate,​Class<?>> rsqlVisitor)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean exists​(cz.jirutka.rsql.parser.ast.Node filters)  
      List<D> findAll​(cz.jirutka.rsql.parser.ast.Node filters)  
      org.springframework.data.domain.Page<D> findAll​(cz.jirutka.rsql.parser.ast.Node filters, org.springframework.data.domain.Pageable pageable)  
      List<D> findAll​(cz.jirutka.rsql.parser.ast.Node filters, org.springframework.data.domain.Sort sort)  
      org.springframework.data.domain.Page<D> findAll​(cz.jirutka.rsql.parser.ast.Node filters, org.springframework.data.domain.Sort sort, org.springframework.data.domain.Pageable pageable)  
      Class<?> getDomainType()
      Will return the most derived type (if applicable) known to the EntityManager.
    • Constructor Detail

      • JpaMappableRsqlFilterExecutor

        public JpaMappableRsqlFilterExecutor​(org.springframework.data.jpa.repository.support.JpaEntityInformation<D,​I> metadata,
                                             javax.persistence.EntityManager em,
                                             cz.jirutka.rsql.parser.ast.RSQLVisitor<javax.persistence.criteria.Predicate,​Class<?>> rsqlVisitor)
    • Method Detail

      • findAll

        public List<D> findAll​(cz.jirutka.rsql.parser.ast.Node filters)
        Specified by:
        findAll in interface com.broadleafcommerce.data.tracking.core.service.MappableRsqlFilterExecutor<D>
      • findAll

        public List<D> findAll​(@NonNull
                               cz.jirutka.rsql.parser.ast.Node filters,
                               org.springframework.data.domain.Sort sort)
        Specified by:
        findAll in interface com.broadleafcommerce.data.tracking.core.service.MappableRsqlFilterExecutor<D>
      • findAll

        public org.springframework.data.domain.Page<D> findAll​(@NonNull
                                                               cz.jirutka.rsql.parser.ast.Node filters,
                                                               org.springframework.data.domain.Pageable pageable)
        Specified by:
        findAll in interface com.broadleafcommerce.data.tracking.core.service.MappableRsqlFilterExecutor<D>
      • findAll

        public org.springframework.data.domain.Page<D> findAll​(@NonNull
                                                               cz.jirutka.rsql.parser.ast.Node filters,
                                                               org.springframework.data.domain.Sort sort,
                                                               org.springframework.data.domain.Pageable pageable)
        Specified by:
        findAll in interface com.broadleafcommerce.data.tracking.core.service.MappableRsqlFilterExecutor<D>
      • exists

        public boolean exists​(@NonNull
                              cz.jirutka.rsql.parser.ast.Node filters)
        Specified by:
        exists in interface com.broadleafcommerce.data.tracking.core.service.MappableRsqlFilterExecutor<D>
      • getDomainType

        public Class<?> getDomainType()
        Will return the most derived type (if applicable) known to the EntityManager. This is also the type that the repository will fashion queries against. Note, this does not support multiple inheritance lines deriving from the parent. If multiple inheritance lines exist, the algorithm may not choose the line you intended for its determination. However, since the type inspection is sorted, the results should at least be consistent.
        Specified by:
        getDomainType in interface com.broadleafcommerce.common.extension.DomainTypeAware
        Returns:
        The most derived type (if applicable) known to the EntityManager