Class AbstractQueryInterceptor<T,R>
java.lang.Object
io.micronaut.data.runtime.intercept.AbstractQueryInterceptor<T,R>
- Type Parameters:
T
- The declaring typeR
- The return type
- All Implemented Interfaces:
DataInterceptor<T,
R>
- Direct Known Subclasses:
AbstractAsyncInterceptor
,AbstractReactiveInterceptor
,AbstractSpecificationInterceptor
,AbstractSpecificationInterceptor
,DefaultCountInterceptor
,DefaultDeleteAllInterceptor
,DefaultDeleteOneInterceptor
,DefaultExistsByInterceptor
,DefaultFindAllInterceptor
,DefaultFindByIdInterceptor
,DefaultFindOneInterceptor
,DefaultFindOptionalInterceptor
,DefaultFindPageInterceptor
,DefaultFindSliceInterceptor
,DefaultFindStreamInterceptor
,DefaultSaveAllInterceptor
,DefaultSaveEntityInterceptor
,DefaultSaveOneInterceptor
,DefaultUpdateAllEntitiesInterceptor
,DefaultUpdateEntityInterceptor
,DefaultUpdateInterceptor
,FindPageSpecificationInterceptor
,FlushInterceptor
,LoadInterceptor
Abstract interceptor that executes a
Query
.- Since:
- 1.0
- Author:
- graemerocher
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final io.micronaut.core.convert.ConversionService
protected final RepositoryOperations
protected final PreparedQueryResolver
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
AbstractQueryInterceptor
(RepositoryOperations operations) Default constructor. -
Method Summary
Modifier and TypeMethodDescriptionprotected final Object
convertOne
(io.micronaut.aop.MethodInvocationContext<?, ?> context, Object o) protected final Object
convertOne
(Object o, io.micronaut.core.type.Argument<?> argumentType) protected int
Count the items.findEntitiesParameter
(io.micronaut.aop.MethodInvocationContext<?, ?> context, Class<RT> type) Fid an entities parameter value in role.protected <RT> Optional<RT>
findEntityParameter
(io.micronaut.aop.MethodInvocationContext<?, ?> context, Class<RT> type) Find an entity parameter value in role.protected <E> DeleteBatchOperation<E>
getDeleteAllBatchOperation
(io.micronaut.aop.MethodInvocationContext<T, ?> context) Get the delete all batch operation for the given context.protected <E> DeleteBatchOperation<E>
getDeleteBatchOperation
(io.micronaut.aop.MethodInvocationContext<T, ?> context, Class<E> rootEntity, Iterable<E> iterable) Get the delete batch operation for the given context.protected <E> DeleteBatchOperation<E>
getDeleteBatchOperation
(io.micronaut.aop.MethodInvocationContext<T, ?> context, Iterable<E> iterable) Get the delete batch operation for the given context.protected <E> DeleteOperation<E>
getDeleteOperation
(io.micronaut.aop.MethodInvocationContext<T, ?> context, E entity) Get the delete operation for the given context.protected <RT> Iterable<RT>
getEntitiesParameter
(io.micronaut.aop.MethodInvocationContext<?, ?> context, Class<RT> type) Retrieve an entities parameter value in role.protected <RT> RT
getEntityParameter
(io.micronaut.aop.MethodInvocationContext<?, ?> context, Class<RT> type) Retrieve an entity parameter value in role.protected <E> InsertBatchOperation<E>
getInsertBatchOperation
(io.micronaut.aop.MethodInvocationContext context, Class<E> rootEntity, Iterable<E> iterable) Get the insert batch operation for the given context.protected <E> InsertBatchOperation<E>
getInsertBatchOperation
(io.micronaut.aop.MethodInvocationContext context, Iterable<E> iterable) Get the insert batch operation for the given context.protected <E> InsertOperation<E>
getInsertOperation
(io.micronaut.aop.MethodInvocationContext context) Get the batch operation for the given context.protected <E> InsertOperation<E>
getInsertOperation
(io.micronaut.aop.MethodInvocationContext<T, ?> context, E entity) Get the batch operation for the given context.protected Pageable
getPageable
(io.micronaut.aop.MethodInvocationContext<?, ?> context) Resolves thePageable
for the given context.protected <E> PagedQuery<E>
getPagedQuery
(io.micronaut.aop.MethodInvocationContext context) Get the paged query for the given context.getParameterValueMap
(io.micronaut.aop.MethodInvocationContext<?, ?> context) Returns parameter values with respect ofParameter
annotation.protected Object
getRequiredEntity
(io.micronaut.aop.MethodInvocationContext<T, ?> context) Looks up the entity to persist from the execution context, or throws an exception.protected <E> Class<E>
getRequiredRootEntity
(io.micronaut.aop.MethodInvocationContext context) Obtains the root entity or throws an exception if it not available.protected io.micronaut.core.type.Argument<?>
getReturnType
(io.micronaut.aop.MethodInvocationContext<?, ?> context) Returns the return type.protected <E> UpdateBatchOperation<E>
getUpdateAllBatchOperation
(io.micronaut.aop.MethodInvocationContext<T, ?> context, Class<E> rootEntity, Iterable<E> iterable) Get the update all batch operation for the given context.protected <E> UpdateOperation<E>
getUpdateOperation
(io.micronaut.aop.MethodInvocationContext<T, ?> context) Get the batch operation for the given context.protected <E> UpdateOperation<E>
getUpdateOperation
(io.micronaut.aop.MethodInvocationContext<T, ?> context, E entity) Get the batch operation for the given context.protected Object
instantiateEntity
(Class<?> rootEntity, Map<String, Object> parameterValues) Instantiate the given entity for the given parameter values.protected boolean
isNullable
(io.micronaut.core.annotation.AnnotationMetadata metadata) Return whether the metadata indicates the instance is nullable.protected boolean
Is the type a number.protected final PreparedQuery<?,
Number> prepareCountQuery
(RepositoryMethodKey methodKey, io.micronaut.aop.MethodInvocationContext<T, R> context) Prepares a query for the given context.protected final PreparedQuery<?,
?> prepareQuery
(RepositoryMethodKey key, io.micronaut.aop.MethodInvocationContext<T, R> context) Prepares a query for the given context.protected final <RT> PreparedQuery<?,
RT> prepareQuery
(RepositoryMethodKey methodKey, io.micronaut.aop.MethodInvocationContext<T, R> context, Class<RT> resultType) Prepares a query for the given context.protected final <RT> PreparedQuery<?,
RT> prepareQuery
(RepositoryMethodKey methodKey, io.micronaut.aop.MethodInvocationContext<T, R> context, Class<RT> resultType, boolean isCount) Prepares a query for the given context.protected final void
validateNullArguments
(io.micronaut.aop.MethodInvocationContext<T, R> context) Validates null arguments ensuring no argument is null unless declared so.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface io.micronaut.data.intercept.DataInterceptor
intercept
-
Field Details
-
conversionService
protected final io.micronaut.core.convert.ConversionService conversionService -
operations
-
preparedQueryResolver
-
-
Constructor Details
-
AbstractQueryInterceptor
Default constructor.- Parameters:
operations
- The operations
-
-
Method Details
-
getParameterValueMap
@NonNull protected Map<String,Object> getParameterValueMap(io.micronaut.aop.MethodInvocationContext<?, ?> context) Returns parameter values with respect ofParameter
annotation.- Parameters:
context
- The method invocation context- Returns:
- The parameters value map
-
getReturnType
protected io.micronaut.core.type.Argument<?> getReturnType(io.micronaut.aop.MethodInvocationContext<?, ?> context) Returns the return type.- Parameters:
context
- The context- Returns:
- the return type
-
convertOne
-
convertOne
-
prepareQuery
@NonNull protected final PreparedQuery<?,?> prepareQuery(RepositoryMethodKey key, io.micronaut.aop.MethodInvocationContext<T, R> context) Prepares a query for the given context.- Parameters:
key
- The method keycontext
- The context- Returns:
- The query
-
prepareQuery
@NonNull protected final <RT> PreparedQuery<?,RT> prepareQuery(RepositoryMethodKey methodKey, io.micronaut.aop.MethodInvocationContext<T, R> context, Class<RT> resultType) Prepares a query for the given context.- Type Parameters:
RT
- The result generic type- Parameters:
methodKey
- The method keycontext
- The contextresultType
- The result type- Returns:
- The query
-
prepareQuery
@NonNull protected final <RT> PreparedQuery<?,RT> prepareQuery(RepositoryMethodKey methodKey, io.micronaut.aop.MethodInvocationContext<T, R> context, Class<RT> resultType, boolean isCount) Prepares a query for the given context.- Type Parameters:
RT
- The result generic type- Parameters:
methodKey
- The method keycontext
- The contextresultType
- The result typeisCount
- Is count query- Returns:
- The query
-
prepareCountQuery
@NonNull protected final PreparedQuery<?,Number> prepareCountQuery(RepositoryMethodKey methodKey, @NonNull io.micronaut.aop.MethodInvocationContext<T, R> context) Prepares a query for the given context.- Parameters:
methodKey
- The method keycontext
- The context- Returns:
- The query
-
getRequiredRootEntity
@NonNull protected <E> Class<E> getRequiredRootEntity(io.micronaut.aop.MethodInvocationContext context) Obtains the root entity or throws an exception if it not available.- Type Parameters:
E
- The entity type- Parameters:
context
- The context- Returns:
- The root entity type
- Throws:
IllegalStateException
- If the root entity is unavailable
-
getEntityParameter
protected <RT> RT getEntityParameter(io.micronaut.aop.MethodInvocationContext<?, ?> context, @NonNull Class<RT> type) Retrieve an entity parameter value in role.- Type Parameters:
RT
- The generic type- Parameters:
context
- The contexttype
- The type- Returns:
- An result
-
getEntitiesParameter
protected <RT> Iterable<RT> getEntitiesParameter(io.micronaut.aop.MethodInvocationContext<?, ?> context, @NonNull Class<RT> type) Retrieve an entities parameter value in role.- Type Parameters:
RT
- The generic type- Parameters:
context
- The contexttype
- The type- Returns:
- An result
-
findEntityParameter
protected <RT> Optional<RT> findEntityParameter(io.micronaut.aop.MethodInvocationContext<?, ?> context, @NonNull Class<RT> type) Find an entity parameter value in role.- Type Parameters:
RT
- The generic type- Parameters:
context
- The contexttype
- The type- Returns:
- An result
-
findEntitiesParameter
protected <RT> Optional<Iterable<RT>> findEntitiesParameter(io.micronaut.aop.MethodInvocationContext<?, ?> context, @NonNull Class<RT> type) Fid an entities parameter value in role.- Type Parameters:
RT
- The generic type- Parameters:
context
- The contexttype
- The type- Returns:
- An result
-
getPageable
Resolves thePageable
for the given context.- Parameters:
context
- The pageable- Returns:
- The pageable or null
-
isNullable
protected boolean isNullable(@NonNull io.micronaut.core.annotation.AnnotationMetadata metadata) Return whether the metadata indicates the instance is nullable.- Parameters:
metadata
- The metadata- Returns:
- True if it is nullable
-
getRequiredEntity
Looks up the entity to persist from the execution context, or throws an exception.- Parameters:
context
- The context- Returns:
- The entity
-
instantiateEntity
@NonNull protected Object instantiateEntity(@NonNull Class<?> rootEntity, @NonNull Map<String, Object> parameterValues) Instantiate the given entity for the given parameter values.- Parameters:
rootEntity
- The entityparameterValues
- The parameter values- Returns:
- The entity
- Throws:
IllegalArgumentException
- if the entity cannot be instantiated due to an illegal argument
-
getPagedQuery
@NonNull protected <E> PagedQuery<E> getPagedQuery(@NonNull io.micronaut.aop.MethodInvocationContext context) Get the paged query for the given context.- Type Parameters:
E
- The entity type- Parameters:
context
- The context- Returns:
- The paged query
-
getInsertBatchOperation
@NonNull protected <E> InsertBatchOperation<E> getInsertBatchOperation(@NonNull io.micronaut.aop.MethodInvocationContext context, @NonNull Iterable<E> iterable) Get the insert batch operation for the given context.- Type Parameters:
E
- The entity type- Parameters:
context
- The contextiterable
- The iterable- Returns:
- The paged query
-
getInsertBatchOperation
@NonNull protected <E> InsertBatchOperation<E> getInsertBatchOperation(@NonNull io.micronaut.aop.MethodInvocationContext context, Class<E> rootEntity, @NonNull Iterable<E> iterable) Get the insert batch operation for the given context.- Type Parameters:
E
- The entity type- Parameters:
context
- The contextrootEntity
- The root entityiterable
- The iterable- Returns:
- The paged query
-
getInsertOperation
@NonNull protected <E> InsertOperation<E> getInsertOperation(@NonNull io.micronaut.aop.MethodInvocationContext context) Get the batch operation for the given context.- Type Parameters:
E
- The entity type- Parameters:
context
- The context- Returns:
- The paged query
-
getUpdateOperation
@NonNull protected <E> UpdateOperation<E> getUpdateOperation(@NonNull io.micronaut.aop.MethodInvocationContext<T, ?> context) Get the batch operation for the given context.- Type Parameters:
E
- The entity type- Parameters:
context
- The context- Returns:
- The paged query
-
getUpdateOperation
@NonNull protected <E> UpdateOperation<E> getUpdateOperation(@NonNull io.micronaut.aop.MethodInvocationContext<T, ?> context, E entity) Get the batch operation for the given context.- Type Parameters:
E
- The entity type- Parameters:
context
- The contextentity
- The entity instance- Returns:
- The paged query
-
getUpdateAllBatchOperation
@NonNull protected <E> UpdateBatchOperation<E> getUpdateAllBatchOperation(@NonNull io.micronaut.aop.MethodInvocationContext<T, ?> context, Class<E> rootEntity, @NonNull Iterable<E> iterable) Get the update all batch operation for the given context.- Type Parameters:
E
- The entity type- Parameters:
rootEntity
- The root entitrycontext
- The contextiterable
- The iterable- Returns:
- The paged query
-
getDeleteOperation
@NonNull protected <E> DeleteOperation<E> getDeleteOperation(@NonNull io.micronaut.aop.MethodInvocationContext<T, ?> context, @NonNull E entity) Get the delete operation for the given context.- Type Parameters:
E
- The entity type- Parameters:
context
- The contextentity
- The entity- Returns:
- The paged query
-
getDeleteAllBatchOperation
@NonNull protected <E> DeleteBatchOperation<E> getDeleteAllBatchOperation(@NonNull io.micronaut.aop.MethodInvocationContext<T, ?> context) Get the delete all batch operation for the given context.- Type Parameters:
E
- The entity type- Parameters:
context
- The context- Returns:
- The paged query
-
getDeleteBatchOperation
@NonNull protected <E> DeleteBatchOperation<E> getDeleteBatchOperation(@NonNull io.micronaut.aop.MethodInvocationContext<T, ?> context, @NonNull Iterable<E> iterable) Get the delete batch operation for the given context.- Type Parameters:
E
- The entity type- Parameters:
context
- The contextiterable
- The iterable- Returns:
- The paged query
-
getDeleteBatchOperation
@NonNull protected <E> DeleteBatchOperation<E> getDeleteBatchOperation(@NonNull io.micronaut.aop.MethodInvocationContext<T, ?> context, Class<E> rootEntity, @NonNull Iterable<E> iterable) Get the delete batch operation for the given context.- Type Parameters:
E
- The entity type- Parameters:
context
- The contextrootEntity
- The root entityiterable
- The iterable- Returns:
- The paged query
-
getInsertOperation
@NonNull protected <E> InsertOperation<E> getInsertOperation(@NonNull io.micronaut.aop.MethodInvocationContext<T, ?> context, E entity) Get the batch operation for the given context.- Type Parameters:
E
- The entity type- Parameters:
context
- The contextentity
- The entity- Returns:
- The paged query
-
validateNullArguments
Validates null arguments ensuring no argument is null unless declared so.- Parameters:
context
- The context
-
count
Count the items.- Parameters:
iterable
- the iterable- Returns:
- the size
-
isNumber
Is the type a number.- Parameters:
type
- The type- Returns:
- True if is a number
-