Package org.infinispan.interceptors
Interface AsyncInterceptorChain
-
- All Known Implementing Classes:
EmptyAsyncInterceptorChain
public interface AsyncInterceptorChainInterceptor chain usingAsyncInterceptors. Experimental: The ability to modify the interceptors at runtime may be removed in future versions.- Since:
- 9.0
- Author:
- Dan Berindei
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description voidaddInterceptor(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.List<AsyncInterceptor>getInterceptors()Objectinvoke(InvocationContext ctx, org.infinispan.commands.VisitableCommand command)Walks the command through the interceptor chain.CompletableFuture<Object>invokeAsync(InvocationContext ctx, org.infinispan.commands.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 Detail
-
getInterceptors
List<AsyncInterceptor> getInterceptors()
- Returns:
- An immutable list of the current interceptors.
-
addInterceptor
void addInterceptor(AsyncInterceptor interceptor, int position)
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
void removeInterceptor(Class<? extends AsyncInterceptor> clazz)
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
void appendInterceptor(AsyncInterceptor ci, boolean isCustom)
Appends at the end.
-
invoke
Object invoke(InvocationContext ctx, org.infinispan.commands.VisitableCommand command)
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
CompletableFuture<Object> invokeAsync(InvocationContext ctx, org.infinispan.commands.VisitableCommand command)
Walks the command through the interceptor chain. The received ctx is being passed in.
-
findInterceptorExtending
<T extends AsyncInterceptor> T findInterceptorExtending(Class<T> interceptorClass)
Returns the first interceptor extending the given class, ornullif there is none.
-
findInterceptorWithClass
<T extends AsyncInterceptor> T findInterceptorWithClass(Class<T> interceptorClass)
Returns the first interceptor with the given class, ornullif there is none.
-
containsInstance
boolean containsInstance(AsyncInterceptor interceptor)
Checks whether the chain contains the supplied interceptor instance.
-
containsInterceptorType
boolean containsInterceptorType(Class<? extends AsyncInterceptor> interceptorType)
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.
-
-