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.ConversionServiceprotected final RepositoryOperationsprotected final PreparedQueryResolver -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractQueryInterceptor(RepositoryOperations operations) Default constructor. -
Method Summary
Modifier and TypeMethodDescriptionprotected final ObjectconvertOne(io.micronaut.aop.MethodInvocationContext<?, ?> context, Object o) protected final ObjectconvertOne(Object o, io.micronaut.core.type.Argument<?> argumentType) protected intCount 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> RTgetEntityParameter(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 PageablegetPageable(io.micronaut.aop.MethodInvocationContext<?, ?> context) Resolves thePageablefor 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 ofParameterannotation.protected ObjectgetRequiredEntity(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 ObjectinstantiateEntity(Class<?> rootEntity, Map<String, Object> parameterValues) Instantiate the given entity for the given parameter values.protected booleanisNullable(io.micronaut.core.annotation.AnnotationMetadata metadata) Return whether the metadata indicates the instance is nullable.protected booleanIs 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 voidvalidateNullArguments(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, waitMethods 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 ofParameterannotation.- 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 thePageablefor 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
-