Class DefaultPredicateAliasResolver

java.lang.Object
cz.encircled.joiner.core.DefaultPredicateAliasResolver
All Implemented Interfaces:
PredicateAliasResolver

public class DefaultPredicateAliasResolver extends Object implements PredicateAliasResolver
Author:
Vlad on 10-Feb-17.
See Also:
  • Constructor Details

    • DefaultPredicateAliasResolver

      public DefaultPredicateAliasResolver(Joiner joiner)
  • Method Details

    • resolvePredicate

      public com.querydsl.core.types.Predicate resolvePredicate(com.querydsl.core.types.Predicate predicate, List<JoinDescription> joins, Set<com.querydsl.core.types.Path<?>> usedAliases)
      Description copied from interface: PredicateAliasResolver
      Resolves all correct paths used in specified predicate
      Specified by:
      resolvePredicate in interface PredicateAliasResolver
      Parameters:
      predicate - original predicate
      joins - all query joins
      usedAliases - paths that are present in joins
      Returns:
      rebuilt predicate
      See Also:
    • resolveOperation

      public com.querydsl.core.types.Predicate resolveOperation(com.querydsl.core.types.Operation<?> operation, List<JoinDescription> joins, Set<com.querydsl.core.types.Path<?>> usedAliases)
      Description copied from interface: PredicateAliasResolver
      Resolves all correct paths used in specified operation
      Specified by:
      resolveOperation in interface PredicateAliasResolver
      Parameters:
      operation - original operation
      joins - all query joins
      usedAliases - paths that are present in joins
      Returns:
      rebuilt predicate
      See Also:
    • resolvePath

      public <T> com.querydsl.core.types.Path<T> resolvePath(com.querydsl.core.types.Path<T> path, Map<AnnotatedElement,List<JoinDescription>> classToJoin, Set<com.querydsl.core.types.Path<?>> usedAliases)
      Description copied from interface: PredicateAliasResolver
      If alias from path is not present in usedAliases, try to find it in joins. If unambiguous alias is found, return rebuilt Path with corresponding alias.

      It other words, it allows to use QStatus.status.some... instead of J#path(QStatusParent.parent, QStatus.status (when target path is unambiguous, i.e. exactly one join with java type Status is present)

      Specified by:
      resolvePath in interface PredicateAliasResolver
      Type Parameters:
      T - any
      Parameters:
      path - original path
      classToJoin - java type to present joins
      usedAliases - paths that are present in joins
      Returns:
      rebuilt or original path