java.lang.Object
org.activiti.cloud.services.query.rest.specification.SpecificationSupport<T,R>
All Implemented Interfaces:
Serializable, org.springframework.data.jpa.domain.Specification<T>
Direct Known Subclasses:
ProcessInstanceSpecification, TaskSpecification

public abstract class SpecificationSupport<T,R extends CloudRuntimeEntityFilterRequest> extends Object implements org.springframework.data.jpa.domain.Specification<T>
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
     
    protected final Map<VariableType,Class<?>>
     
    protected List<jakarta.persistence.criteria.Predicate>
     
    protected final R
     

    Fields inherited from interface org.springframework.data.jpa.domain.Specification

    serialVersionUID
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    SpecificationSupport(R searchRequest)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected void
    addLikeFilters(Collection<jakarta.persistence.criteria.Predicate> predicates, Set<String> valuesToFilter, jakarta.persistence.criteria.Root<T> root, jakarta.persistence.criteria.CriteriaBuilder criteriaBuilder, jakarta.persistence.metamodel.SingularAttribute<T,String> attribute)
     
    protected void
    applyIdFilter(jakarta.persistence.criteria.Root<T> root)
     
    protected void
    applyProcessVariableFilters(Supplier<jakarta.persistence.criteria.SetJoin<T,org.activiti.cloud.services.query.model.ProcessVariableEntity>> joinSupplier, jakarta.persistence.criteria.CriteriaBuilder criteriaBuilder)
     
    protected void
    applySorting(jakarta.persistence.criteria.Root<T> root, Supplier<jakarta.persistence.criteria.SetJoin<T,org.activiti.cloud.services.query.model.ProcessVariableEntity>> joinSupplier, jakarta.persistence.criteria.CriteriaQuery<?> query, jakarta.persistence.criteria.CriteriaBuilder criteriaBuilder)
     
    protected abstract jakarta.persistence.metamodel.SingularAttribute<T,?>
     
    protected abstract jakarta.persistence.metamodel.SetAttribute<T,org.activiti.cloud.services.query.model.ProcessVariableEntity>
     
    protected Supplier<jakarta.persistence.criteria.SetJoin<T,org.activiti.cloud.services.query.model.ProcessVariableEntity>>
    joinProcessVariables(jakarta.persistence.criteria.Root<T> root)
    Using a supplier to actually join process variable only if needed.
    protected void
     
    jakarta.persistence.criteria.Predicate
    toPredicate(jakarta.persistence.criteria.Root<T> root, jakarta.persistence.criteria.CriteriaQuery<?> query, jakarta.persistence.criteria.CriteriaBuilder criteriaBuilder)
     
    protected void
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.springframework.data.jpa.domain.Specification

    and, or
  • Field Details

  • Constructor Details

    • SpecificationSupport

      protected SpecificationSupport(R searchRequest)
  • Method Details

    • getIdAttribute

      protected abstract jakarta.persistence.metamodel.SingularAttribute<T,?> getIdAttribute()
    • reset

      protected void reset()
    • toPredicate

      public jakarta.persistence.criteria.Predicate toPredicate(jakarta.persistence.criteria.Root<T> root, jakarta.persistence.criteria.CriteriaQuery<?> query, jakarta.persistence.criteria.CriteriaBuilder criteriaBuilder)
      Specified by:
      toPredicate in interface org.springframework.data.jpa.domain.Specification<T>
    • applyProcessVariableFilters

      protected void applyProcessVariableFilters(Supplier<jakarta.persistence.criteria.SetJoin<T,org.activiti.cloud.services.query.model.ProcessVariableEntity>> joinSupplier, jakarta.persistence.criteria.CriteriaBuilder criteriaBuilder)
    • applyIdFilter

      protected void applyIdFilter(jakarta.persistence.criteria.Root<T> root)
    • addLikeFilters

      protected void addLikeFilters(Collection<jakarta.persistence.criteria.Predicate> predicates, Set<String> valuesToFilter, jakarta.persistence.criteria.Root<T> root, jakarta.persistence.criteria.CriteriaBuilder criteriaBuilder, jakarta.persistence.metamodel.SingularAttribute<T,String> attribute)
    • applySorting

      protected void applySorting(jakarta.persistence.criteria.Root<T> root, Supplier<jakarta.persistence.criteria.SetJoin<T,org.activiti.cloud.services.query.model.ProcessVariableEntity>> joinSupplier, jakarta.persistence.criteria.CriteriaQuery<?> query, jakarta.persistence.criteria.CriteriaBuilder criteriaBuilder)
    • validateSort

      protected void validateSort(CloudRuntimeEntitySort sort)
    • joinProcessVariables

      protected Supplier<jakarta.persistence.criteria.SetJoin<T,org.activiti.cloud.services.query.model.ProcessVariableEntity>> joinProcessVariables(jakarta.persistence.criteria.Root<T> root)
      Using a supplier to actually join process variable only if needed. The instance of set join is stored in a field to avoid multiple joins.
      Parameters:
      root - Specification root
      Returns:
      Supplier of SetJoin of process variables
    • getProcessVariablesAttribute

      protected abstract jakarta.persistence.metamodel.SetAttribute<T,org.activiti.cloud.services.query.model.ProcessVariableEntity> getProcessVariablesAttribute()