@Experimental public interface AsyncInterceptorChain
AsyncInterceptors.
Experimental: The ability to modify the interceptors at runtime may be removed in future versions.| Modifier and Type | Method and Description |
|---|---|
void |
addInterceptor(AsyncInterceptor interceptor,
int position)
Inserts the given interceptor at the specified position in the chain (0 based indexing).
|
boolean |
addInterceptorAfter(AsyncInterceptor toAdd,
Class<? extends AsyncInterceptor> afterInterceptor)
Adds a new interceptor in list after an interceptor of a given type.
|
boolean |
addInterceptorBefore(AsyncInterceptor toAdd,
Class<? extends AsyncInterceptor> beforeInterceptor)
Adds a new interceptor in list before an interceptor of a given type.
|
void |
appendInterceptor(AsyncInterceptor ci,
boolean isCustom)
Appends at the end.
|
boolean |
containsInstance(AsyncInterceptor interceptor)
Checks whether the chain contains the supplied interceptor instance.
|
boolean |
containsInterceptorType(Class<? extends AsyncInterceptor> interceptorType)
Checks whether the chain contains an interceptor with the given class.
|
boolean |
containsInterceptorType(Class<? extends AsyncInterceptor> interceptorType,
boolean alsoMatchSubClasses)
Checks whether the chain contains an interceptor with the given class, or a subclass.
|
<T extends AsyncInterceptor> |
findInterceptorExtending(Class<T> interceptorClass)
Returns the first interceptor extending the given class, or
null if there is none. |
<T extends AsyncInterceptor> |
findInterceptorWithClass(Class<T> interceptorClass)
Returns the first interceptor with the given class, or
null if there is none. |
List<AsyncInterceptor> |
getInterceptors() |
Object |
invoke(InvocationContext ctx,
VisitableCommand command)
Walks the command through the interceptor chain.
|
CompletableFuture<Object> |
invokeAsync(InvocationContext ctx,
VisitableCommand command)
Walks the command through the interceptor chain.
|
void |
removeInterceptor(Class<? extends AsyncInterceptor> clazz)
Removes all the occurrences of supplied interceptor type from the chain.
|
void |
removeInterceptor(int position)
Removes the interceptor at the given position.
|
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.
|
int |
size()
Returns the number of interceptors in the chain.
|
List<AsyncInterceptor> getInterceptors()
void addInterceptor(AsyncInterceptor interceptor, int position)
IllegalArgumentException - if the position is invalid (e.g. 5 and there are only 2 interceptors
in the chain)void removeInterceptor(int position)
IllegalArgumentException - if the position is invalid (e.g. 5 and there are only 2 interceptors
in the chain)int size()
void removeInterceptor(Class<? extends AsyncInterceptor> clazz)
boolean addInterceptorAfter(AsyncInterceptor toAdd, Class<? extends AsyncInterceptor> afterInterceptor)
afterInterceptor existsboolean addInterceptorBefore(AsyncInterceptor toAdd, Class<? extends AsyncInterceptor> beforeInterceptor)
beforeInterceptor existsboolean replaceInterceptor(AsyncInterceptor replacingInterceptor, Class<? extends AsyncInterceptor> toBeReplacedInterceptorType)
replacingInterceptor - the interceptor to add to the interceptor chaintoBeReplacedInterceptorType - the type of interceptor that should be swapped with the new onevoid appendInterceptor(AsyncInterceptor ci, boolean isCustom)
Object invoke(InvocationContext ctx, VisitableCommand command)
Note: Reusing the context for multiple invocations is allowed, however most context implementations are not thread-safe.
CompletableFuture<Object> invokeAsync(InvocationContext ctx, VisitableCommand command)
<T extends AsyncInterceptor> T findInterceptorExtending(Class<T> interceptorClass)
null if there is none.<T extends AsyncInterceptor> T findInterceptorWithClass(Class<T> interceptorClass)
null if there is none.boolean containsInstance(AsyncInterceptor interceptor)
boolean containsInterceptorType(Class<? extends AsyncInterceptor> interceptorType)
boolean containsInterceptorType(Class<? extends AsyncInterceptor> interceptorType, boolean alsoMatchSubClasses)
Copyright © 2021 JBoss by Red Hat. All rights reserved.