Class AbstractCriteriaMethodMatch

java.lang.Object
io.micronaut.data.processor.visitors.finders.AbstractCriteriaMethodMatch
All Implemented Interfaces:
MethodMatcher.MethodMatch
Direct Known Subclasses:
DeleteCriteriaMethodMatch, QueryCriteriaMethodMatch, UpdateCriteriaMethodMatch

public abstract class AbstractCriteriaMethodMatch extends Object implements MethodMatcher.MethodMatch
Abstract criteria matcher.
Since:
3.2
Author:
Denis Stepanov
  • Field Details

    • matcher

      @Nullable protected final @Nullable Matcher matcher
  • Constructor Details

    • AbstractCriteriaMethodMatch

      protected AbstractCriteriaMethodMatch(Matcher matcher)
  • Method Details

    • getEntityParameter

      @Nullable protected @Nullable io.micronaut.inject.ast.ParameterElement getEntityParameter()
      Returns:
      The entity parameter
    • getEntitiesParameter

      @Nullable protected @Nullable io.micronaut.inject.ast.ParameterElement getEntitiesParameter()
      Returns:
      The entities parameter
    • getOperationType

      @NonNull protected abstract DataMethod.OperationType getOperationType()
      Returns:
      The operation type
    • supportedByImplicitQueries

      protected boolean supportedByImplicitQueries()
      Returns:
      true of the operation is supported by implicit queries
    • buildMatchInfo

      public final MethodMatchInfo buildMatchInfo(MethodMatchContext matchContext)
      Description copied from interface: MethodMatcher.MethodMatch
      Match info builder.
      Specified by:
      buildMatchInfo in interface MethodMatcher.MethodMatch
      Parameters:
      matchContext - The match context
      Returns:
      The match info
    • build

      protected abstract MethodMatchInfo build(MethodMatchContext matchContext)
    • getInterceptorElement

      protected final io.micronaut.inject.ast.ClassElement getInterceptorElement(MethodMatchContext matchContext, Class<? extends DataInterceptor> interceptorType)
      Parameters:
      matchContext - The match context
      interceptorType - The interceptor type
      Returns:
      The resolved class element
    • resolveReturnTypeAndInterceptor

      protected FindersUtils.InterceptorMatch resolveReturnTypeAndInterceptor(MethodMatchContext matchContext)
      Parameters:
      matchContext - The match context
      Returns:
      resolved return type and interceptor
    • applyPredicates

      protected <T> void applyPredicates(String querySequence, io.micronaut.inject.ast.ParameterElement[] parameters, PersistentEntityRoot<T> root, PersistentEntityCriteriaQuery<T> query, SourcePersistentEntityCriteriaBuilder cb)
      Apply predicates.
      Type Parameters:
      T - The entity type
      Parameters:
      querySequence - The query sequence
      parameters - The parameters
      root - The root
      query - The query
      cb - The criteria builder
    • applyPredicates

      protected <T> void applyPredicates(String querySequence, io.micronaut.inject.ast.ParameterElement[] parameters, PersistentEntityRoot<T> root, PersistentEntityCriteriaDelete<T> query, SourcePersistentEntityCriteriaBuilder cb)
      Apply predicates.
      Type Parameters:
      T - The entity type
      Parameters:
      querySequence - The query sequence
      parameters - The parameters
      root - The root
      query - The query
      cb - The criteria builder
    • applyPredicates

      protected <T> void applyPredicates(String querySequence, io.micronaut.inject.ast.ParameterElement[] parameters, PersistentEntityRoot<T> root, PersistentEntityCriteriaUpdate<T> query, SourcePersistentEntityCriteriaBuilder cb)
      Apply predicates.
      Type Parameters:
      T - The entity type
      Parameters:
      querySequence - The query sequence
      parameters - The parameters
      root - The root
      query - The query
      cb - The criteria builder
    • applyPredicates

      protected <T> void applyPredicates(List<io.micronaut.inject.ast.ParameterElement> parameters, PersistentEntityRoot<T> root, PersistentEntityCriteriaQuery<T> query, SourcePersistentEntityCriteriaBuilder cb)
      Apply predicates based on parameters.
      Type Parameters:
      T - The entity type
      Parameters:
      parameters - The parameters
      root - The root
      query - The query
      cb - The criteria builder
    • applyPredicates

      protected <T> void applyPredicates(List<io.micronaut.inject.ast.ParameterElement> parameters, PersistentEntityRoot<T> root, PersistentEntityCriteriaUpdate<T> query, SourcePersistentEntityCriteriaBuilder cb)
      Apply predicates based on parameters.
      Type Parameters:
      T - The entity type
      Parameters:
      parameters - The parameters
      root - The root
      query - The query
      cb - The criteria builder
    • applyPredicates

      protected <T> void applyPredicates(List<io.micronaut.inject.ast.ParameterElement> parameters, PersistentEntityRoot<T> root, PersistentEntityCriteriaDelete<T> query, SourcePersistentEntityCriteriaBuilder cb)
      Apply predicates based on parameters.
      Type Parameters:
      T - The entity type
      Parameters:
      parameters - The parameters
      root - The root
      query - The query
      cb - The criteria builder
    • applyForUpdate

      protected <T> String applyForUpdate(String querySequence, PersistentEntityCriteriaQuery<T> query)
      Matches for update definitions in the query sequence.
      Type Parameters:
      T - The entity type
      Parameters:
      querySequence - The query sequence
      query - The query
      Returns:
      The new query sequence without the for update definitions
    • getProperty

      @NonNull protected final <T> @NonNull jakarta.persistence.criteria.Expression<?> getProperty(PersistentEntityRoot<T> root, String propertyName)
    • findProperty

      @Nullable protected final <T> PersistentPropertyPath<Object> findProperty(PersistentEntityRoot<T> root, String propertyName)
    • applyJoinSpecs

      protected final void applyJoinSpecs(PersistentEntityRoot<?> root, @NonNull @NonNull List<io.micronaut.core.annotation.AnnotationValue<Join>> joinSpecs)
    • joinSpecsAtMatchContext

      @NonNull protected final @NonNull List<io.micronaut.core.annotation.AnnotationValue<Join>> joinSpecsAtMatchContext(@NonNull @NonNull MethodMatchContext matchContext, boolean isQuery)
      Parameters:
      matchContext - The match context
      isQuery - true if is a query criteria
      Returns:
      a List of annotations values for Join annotation.
    • hasNoWhereAndJoinDeclaration

      protected final boolean hasNoWhereAndJoinDeclaration(@NonNull @NonNull MethodMatchContext matchContext)