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
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static final recordMethod result. -
Field Summary
Fields -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected -
Method Summary
Modifier and TypeMethodDescriptionprotected final AbstractCriteriaMethodMatch.MethodResultanalyzeMethodResult(MethodMatchContext matchContext, io.micronaut.inject.ast.ClassElement queryResultType, FindersUtils.InterceptorMatch interceptorMatch, boolean allowEntityResultByDefault) protected final AbstractCriteriaMethodMatch.MethodResultanalyzeMethodResult(MethodMatchContext matchContext, String selectedType, io.micronaut.inject.ast.ClassElement queryResultType, FindersUtils.InterceptorMatch interceptorMatch, boolean allowEntityResultByDefault) protected final voidapplyJoinSpecs(PersistentEntityRoot<?> root, @NonNull List<io.micronaut.core.annotation.AnnotationValue<Join>> joinSpecs) protected abstract MethodMatchInfobuild(MethodMatchContext matchContext) final MethodMatchInfobuildMatchInfo(MethodMatchContext matchContext) Match info builder.protected final <T> jakarta.persistence.criteria.PredicateextractPredicates(String querySequence, Iterator<io.micronaut.inject.ast.ParameterElement> parametersIt, PersistentEntityRoot<T> root, PersistentEntityCriteriaBuilder cb) protected final @Nullable jakarta.persistence.criteria.PredicateextractPredicates(List<io.micronaut.inject.ast.ParameterElement> queryParams, PersistentEntityRoot<?> root, PersistentEntityCriteriaBuilder cb) protected final <T> PersistentPropertyPath<Object>findProperty(PersistentEntityRoot<T> root, String propertyName) protected <T> List<jakarta.persistence.criteria.Selection<?>>findSelections(String projectionPart, PersistentEntityRoot<T> root, PersistentEntityCriteriaBuilder cb, @Nullable String returnTypeName) Find projection selection.protected List<SourcePersistentProperty>getDtoProjectionProperties(SourcePersistentEntity entity, io.micronaut.inject.ast.ClassElement returnType) Find DTO properties.protected @Nullable io.micronaut.inject.ast.ParameterElementprotected @Nullable io.micronaut.inject.ast.ParameterElementprotected abstract DataMethod.OperationTypeprotected final <T> @NonNull jakarta.persistence.criteria.Expression<Object>getProperty(PersistentEntityRoot<T> root, String propertyName) protected final booleanhasNoWhereAndJoinDeclaration(@NonNull MethodMatchContext matchContext) protected <T> @Nullable jakarta.persistence.criteria.PredicateinterceptPredicate(MethodMatchContext matchContext, List<io.micronaut.inject.ast.ParameterElement> notConsumedParameters, PersistentEntityRoot<T> root, PersistentEntityCriteriaBuilder cb, @Nullable jakarta.persistence.criteria.Predicate existingPredicate) Intercept the predicate being applied.joinSpecsAtMatchContext(@NonNull MethodMatchContext matchContext, boolean isQuery) protected FindersUtils.InterceptorMatchresolveReturnTypeAndInterceptor(MethodMatchContext matchContext) protected boolean
-
Field Details
-
matches
-
-
Constructor Details
-
AbstractCriteriaMethodMatch
-
-
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
- Returns:
- The operation type
-
supportedByImplicitQueries
protected boolean supportedByImplicitQueries()- Returns:
- true of the operation is supported by implicit queries
-
buildMatchInfo
Description copied from interface:MethodMatcher.MethodMatchMatch info builder.- Specified by:
buildMatchInfoin interfaceMethodMatcher.MethodMatch- Parameters:
matchContext- The match context- Returns:
- The match info
-
build
-
resolveReturnTypeAndInterceptor
protected FindersUtils.InterceptorMatch resolveReturnTypeAndInterceptor(MethodMatchContext matchContext) - Parameters:
matchContext- The match context- Returns:
- resolved return type and interceptor
-
extractPredicates
@Nullable protected final @Nullable jakarta.persistence.criteria.Predicate extractPredicates(List<io.micronaut.inject.ast.ParameterElement> queryParams, PersistentEntityRoot<?> root, PersistentEntityCriteriaBuilder cb) -
interceptPredicate
@Nullable protected <T> @Nullable jakarta.persistence.criteria.Predicate interceptPredicate(MethodMatchContext matchContext, List<io.micronaut.inject.ast.ParameterElement> notConsumedParameters, PersistentEntityRoot<T> root, PersistentEntityCriteriaBuilder cb, @Nullable @Nullable jakarta.persistence.criteria.Predicate existingPredicate) Intercept the predicate being applied.- Type Parameters:
T- The entity type- Parameters:
matchContext- The matchContextnotConsumedParameters- The parametersroot- The rootcb- The criteria builderexistingPredicate- The existing predicate- Returns:
- A new predicate
-
extractPredicates
protected final <T> jakarta.persistence.criteria.Predicate extractPredicates(String querySequence, Iterator<io.micronaut.inject.ast.ParameterElement> parametersIt, PersistentEntityRoot<T> root, PersistentEntityCriteriaBuilder cb) -
getProperty
@NonNull protected final <T> @NonNull jakarta.persistence.criteria.Expression<Object> 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 contextisQuery- true if is a query criteria- Returns:
- a List of annotations values for
Joinannotation.
-
hasNoWhereAndJoinDeclaration
protected final boolean hasNoWhereAndJoinDeclaration(@NonNull @NonNull MethodMatchContext matchContext) -
findSelections
protected <T> List<jakarta.persistence.criteria.Selection<?>> findSelections(String projectionPart, PersistentEntityRoot<T> root, PersistentEntityCriteriaBuilder cb, @Nullable @Nullable String returnTypeName) Find projection selection.- Type Parameters:
T- The query type- Parameters:
projectionPart- The projectionroot- The rootcb- The criteria builderreturnTypeName- The return type name- Returns:
- The selections
-
analyzeMethodResult
protected final AbstractCriteriaMethodMatch.MethodResult analyzeMethodResult(MethodMatchContext matchContext, String selectedType, io.micronaut.inject.ast.ClassElement queryResultType, FindersUtils.InterceptorMatch interceptorMatch, boolean allowEntityResultByDefault) -
analyzeMethodResult
protected final AbstractCriteriaMethodMatch.MethodResult analyzeMethodResult(MethodMatchContext matchContext, io.micronaut.inject.ast.ClassElement queryResultType, FindersUtils.InterceptorMatch interceptorMatch, boolean allowEntityResultByDefault) -
getDtoProjectionProperties
protected List<SourcePersistentProperty> getDtoProjectionProperties(SourcePersistentEntity entity, io.micronaut.inject.ast.ClassElement returnType) Find DTO properties.- Parameters:
entity- The entityreturnType- The result- Returns:
- DTO properties
-