Package org.infinispan.interceptors
Interface AsyncInterceptorChain
- All Known Implementing Classes:
EmptyAsyncInterceptorChain
Interceptor chain using
AsyncInterceptors.
Experimental: The ability to modify the interceptors at runtime may be removed in future versions.- Since:
- 9.0
- Author:
- Dan Berindei
-
Method Summary
Modifier and TypeMethodDescriptionvoidaddInterceptor(AsyncInterceptor interceptor, int position) Inserts the given interceptor at the specified position in the chain (0 based indexing).booleanaddInterceptorAfter(AsyncInterceptor toAdd, Class<? extends AsyncInterceptor> afterInterceptor) Adds a new interceptor in list after an interceptor of a given type.booleanaddInterceptorBefore(AsyncInterceptor toAdd, Class<? extends AsyncInterceptor> beforeInterceptor) Adds a new interceptor in list before an interceptor of a given type.voidappendInterceptor(AsyncInterceptor ci, boolean isCustom) Appends at the end.booleancontainsInstance(AsyncInterceptor interceptor) Checks whether the chain contains the supplied interceptor instance.booleancontainsInterceptorType(Class<? extends AsyncInterceptor> interceptorType) Checks whether the chain contains an interceptor with the given class.booleancontainsInterceptorType(Class<? extends AsyncInterceptor> interceptorType, boolean alsoMatchSubClasses) Checks whether the chain contains an interceptor with the given class, or a subclass.<T extends AsyncInterceptor>
TfindInterceptorExtending(Class<T> interceptorClass) Returns the first interceptor extending the given class, ornullif there is none.<T extends AsyncInterceptor>
TfindInterceptorWithClass(Class<T> interceptorClass) Returns the first interceptor with the given class, ornullif there is none.invoke(InvocationContext ctx, VisitableCommand command) Walks the command through the interceptor chain.invokeAsync(InvocationContext ctx, VisitableCommand command) Walks the command through the interceptor chain.invokeStage(InvocationContext ctx, VisitableCommand command) Walks the command through the interceptor chain.voidremoveInterceptor(int position) Removes the interceptor at the given position.voidremoveInterceptor(Class<? extends AsyncInterceptor> clazz) Removes all the occurrences of supplied interceptor type from the chain.booleanreplaceInterceptor(AsyncInterceptor replacingInterceptor, Class<? extends AsyncInterceptor> toBeReplacedInterceptorType) Replaces an existing interceptor of the given type in the interceptor chain with a new interceptor instance passed as parameter.intsize()Returns the number of interceptors in the chain.
-
Method Details
-
getInterceptors
List<AsyncInterceptor> getInterceptors()- Returns:
- An immutable list of the current interceptors.
-
addInterceptor
Inserts the given interceptor at the specified position in the chain (0 based indexing).- Throws:
IllegalArgumentException- if the position is invalid (e.g. 5 and there are only 2 interceptors in the chain)
-
removeInterceptor
void removeInterceptor(int position) Removes the interceptor at the given position.- Throws:
IllegalArgumentException- if the position is invalid (e.g. 5 and there are only 2 interceptors in the chain)
-
size
int size()Returns the number of interceptors in the chain. -
removeInterceptor
Removes all the occurrences of supplied interceptor type from the chain. -
addInterceptorAfter
boolean addInterceptorAfter(AsyncInterceptor toAdd, Class<? extends AsyncInterceptor> afterInterceptor) Adds a new interceptor in list after an interceptor of a given type.- Returns:
- true if the interceptor was added; i.e. the
afterInterceptorexists
-
addInterceptorBefore
boolean addInterceptorBefore(AsyncInterceptor toAdd, Class<? extends AsyncInterceptor> beforeInterceptor) Adds a new interceptor in list before an interceptor of a given type.- Returns:
- true if the interceptor was added; i.e. the
beforeInterceptorexists
-
replaceInterceptor
boolean replaceInterceptor(AsyncInterceptor replacingInterceptor, Class<? extends AsyncInterceptor> toBeReplacedInterceptorType) Replaces an existing interceptor of the given type in the interceptor chain with a new interceptor instance passed as parameter.- Parameters:
replacingInterceptor- the interceptor to add to the interceptor chaintoBeReplacedInterceptorType- the type of interceptor that should be swapped with the new one- Returns:
- true if the interceptor was replaced
-
appendInterceptor
Appends at the end. -
invoke
Walks the command through the interceptor chain. The received ctx is being passed in.Note: Reusing the context for multiple invocations is allowed, however most context implementations are not thread-safe.
-
invokeAsync
Walks the command through the interceptor chain. The received ctx is being passed in.Note: Reusing the context for multiple invocations is allowed, however most context implementations are not thread-safe.
-
invokeStage
Walks the command through the interceptor chain. The received ctx is being passed in.Note: Reusing the context for multiple invocations is allowed, however most context implementations are not thread-safe.
-
findInterceptorExtending
Returns the first interceptor extending the given class, ornullif there is none. -
findInterceptorWithClass
Returns the first interceptor with the given class, ornullif there is none. -
containsInstance
Checks whether the chain contains the supplied interceptor instance. -
containsInterceptorType
Checks whether the chain contains an interceptor with the given class. -
containsInterceptorType
boolean containsInterceptorType(Class<? extends AsyncInterceptor> interceptorType, boolean alsoMatchSubClasses) Checks whether the chain contains an interceptor with the given class, or a subclass.
-