B - The declaring typeR - The result of the method call@Internal public class InterceptorChain<B,R> extends Object implements InvocationContext<B,R>
Interceptor chain. This class implements InvocationContext and is
 consumed by the framework itself and should not be used directly in application code.| Modifier and Type | Field and Description | 
|---|---|
protected MutableConvertibleValues<Object> | 
attributes  | 
protected ExecutableMethod<B,R> | 
executionHandle  | 
protected int | 
index  | 
protected int | 
interceptorCount  | 
protected Interceptor<B,R>[] | 
interceptors  | 
protected static org.slf4j.Logger | 
LOG  | 
protected Object[] | 
originalParameters  | 
protected Map<String,MutableArgumentValue<?>> | 
parameters  | 
protected B | 
target  | 
CLASS_NAME_SUFFIX, EMPTY_METADATA, VALUE_MEMBEREMPTY| Constructor and Description | 
|---|
InterceptorChain(Interceptor<B,R>[] interceptors,
                B target,
                ExecutableMethod<B,R> method,
                Object... originalParameters)
Constructor. 
 | 
| Modifier and Type | Method and Description | 
|---|---|
AnnotationMetadata | 
getAnnotationMetadata()
Supplies the metadata. 
 | 
Argument[] | 
getArguments()
The required argument types. 
 | 
MutableConvertibleValues<Object> | 
getAttributes()
Overrides the default  
AttributeHolder.getAttributes() method to return a mutable object. | 
Map<String,MutableArgumentValue<?>> | 
getParameters()
Returns the current parameters as a map of mutable argument values. 
 | 
Object[] | 
getParameterValues()
Returns the current state of the parameters as an array by parameter index. 
 | 
B | 
getTarget()  | 
R | 
invoke(B instance,
      Object... arguments)
Invokes the method. 
 | 
R | 
proceed()
Proceeds with the invocation. 
 | 
R | 
proceed(Interceptor from)
Proceeds with the invocation using the given interceptor as a position to start from. 
 | 
static Interceptor[] | 
resolveAroundInterceptors(BeanContext beanContext,
                         ExecutableMethod<?,?> method,
                         Interceptor... interceptors)
Deprecated. 
 
 | 
static Interceptor[] | 
resolveAroundInterceptors(BeanContext beanContext,
                         ExecutableMethod<?,?> method,
                         List<BeanRegistration<Interceptor<?,?>>> interceptors)
Resolves the  
Around interceptors for a method. | 
protected static Collection<AnnotationValue<?>> | 
resolveInterceptorValues(AnnotationMetadata annotationMetadata,
                        InterceptorKind kind)
Resolve interceptor binding for the given annotation metadata and kind. 
 | 
static Interceptor[] | 
resolveIntroductionInterceptors(BeanContext beanContext,
                               ExecutableMethod<?,?> method,
                               Interceptor... interceptors)
Deprecated.  
 | 
static Interceptor[] | 
resolveIntroductionInterceptors(BeanContext beanContext,
                               ExecutableMethod<?,?> method,
                               List<BeanRegistration<Interceptor<?,?>>> interceptors)
Resolves the  
Introduction interceptors for a method. | 
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetDeclaringType, getKind, getParameters, getParameterValueMap, getParameterValues, proceed, setAttributebooleanValue, booleanValue, booleanValue, booleanValue, classValue, classValue, classValue, classValue, classValues, classValues, classValues, classValues, doubleValue, doubleValue, doubleValue, enumValue, enumValue, enumValue, enumValue, enumValues, enumValues, enumValues, enumValues, findAnnotation, findAnnotation, findDeclaredAnnotation, findDeclaredAnnotation, findRepeatableAnnotation, findRepeatableAnnotation, getAnnotation, getAnnotation, getAnnotationNameByStereotype, getAnnotationNameByStereotype, getAnnotationNames, getAnnotationNamesByStereotype, getAnnotationNamesByStereotype, getAnnotationType, getAnnotationType, getAnnotationTypeByStereotype, getAnnotationTypeByStereotype, getAnnotationTypesByStereotype, getAnnotationTypesByStereotype, getAnnotationTypesByStereotype, getAnnotationValuesByType, getDeclaredAnnotation, getDeclaredAnnotation, getDeclaredAnnotationNameByStereotype, getDeclaredAnnotationNames, getDeclaredAnnotationNamesByStereotype, getDeclaredAnnotationTypeByStereotype, getDeclaredAnnotationTypeByStereotype, getDeclaredAnnotationValuesByType, getDeclaredMetadata, getDefaultValue, getDefaultValue, getDefaultValue, getDefaultValue, getDefaultValues, getValue, getValue, getValue, getValue, getValue, getValue, getValue, getValue, getValue, getValue, getValue, getValue, getValues, getValues, hasAnnotation, hasAnnotation, hasDeclaredAnnotation, hasDeclaredAnnotation, hasDeclaredStereotype, hasDeclaredStereotype, hasDeclaredStereotype, hasPropertyExpressions, hasSimpleAnnotation, hasSimpleDeclaredAnnotation, hasStereotype, hasStereotype, hasStereotype, hasStereotype, intValue, intValue, intValue, isAnnotationPresent, isDeclaredAnnotationPresent, isEmpty, isFalse, isFalse, isPresent, isPresent, isRepeatableAnnotation, isRepeatableAnnotation, isTrue, isTrue, longValue, longValue, stringValue, stringValue, stringValue, stringValue, stringValues, stringValues, stringValues, stringValues, synthesize, synthesize, synthesizeAll, synthesizeAnnotationsByType, synthesizeDeclared, synthesizeDeclared, synthesizeDeclared, synthesizeDeclaredAnnotationsByTypegetAnnotationValuesByName, getDeclaredAnnotationValuesByName, getValues, hasDeclaredStereotype, isAnnotationPresent, isDeclaredAnnotationPresentgetAttributes, removeAttributegetAttribute, getAttributeprotected final B target
protected final ExecutableMethod<B,R> executionHandle
protected static final org.slf4j.Logger LOG
protected final Interceptor<B,R>[] interceptors
protected final Object[] originalParameters
protected final int interceptorCount
protected MutableConvertibleValues<Object> attributes
protected int index
protected Map<String,MutableArgumentValue<?>> parameters
public InterceptorChain(Interceptor<B,R>[] interceptors, B target, ExecutableMethod<B,R> method, Object... originalParameters)
interceptors - array of interceptorstarget - target typemethod - result methodoriginalParameters - parameterspublic AnnotationMetadata getAnnotationMetadata()
AnnotationMetadataProviderAnnotationMetadata.EMPTY_METADATA.getAnnotationMetadata in interface AnnotationMetadataProviderAnnotationMetadatapublic Argument[] getArguments()
ExecutablegetArguments in interface Executable<B,R>public R invoke(B instance, Object... arguments)
Executableinvoke in interface Executable<B,R>instance - The instancearguments - The argumentspublic B getTarget()
getTarget in interface InvocationContext<B,R>public R proceed() throws RuntimeException
InvocationContextproceed in interface InvocationContext<B,R>RuntimeException - chain may throw RTE@Internal public static Interceptor[] resolveAroundInterceptors(@Nullable BeanContext beanContext, ExecutableMethod<?,?> method, List<BeanRegistration<Interceptor<?,?>>> interceptors)
Around interceptors for a method.beanContext - bean context passed inmethod - The methodinterceptors - The array of interceptors@Internal public static Interceptor[] resolveIntroductionInterceptors(@Nullable BeanContext beanContext, ExecutableMethod<?,?> method, List<BeanRegistration<Interceptor<?,?>>> interceptors)
Introduction interceptors for a method.beanContext - bean context passed inmethod - The methodinterceptors - The array of interceptors@Internal @Deprecated public static Interceptor[] resolveAroundInterceptors(@Nullable BeanContext beanContext, ExecutableMethod<?,?> method, Interceptor... interceptors)
resolveAroundInterceptors(BeanContext, ExecutableMethod, List)Around interceptors for a method.beanContext - bean context passed inmethod - The methodinterceptors - The array of interceptors@Internal @Deprecated public static Interceptor[] resolveIntroductionInterceptors(@Nullable BeanContext beanContext, ExecutableMethod<?,?> method, Interceptor... interceptors)
Introduction advise. For Introduction advise
 any Around advise interceptors are applied firstbeanContext - Bean Contextmethod - The methodinterceptors - The array of interceptors@NonNull public Object[] getParameterValues()
InvocationContextInvocationContext.getParameters() and the MutableArgumentValue interface insteadgetParameterValues in interface InvocationContext<B,R>ArgumentValue instances@NonNull public MutableConvertibleValues<Object> getAttributes()
MutableAttributeHolderAttributeHolder.getAttributes() method to return a mutable object.getAttributes in interface AttributeHoldergetAttributes in interface MutableAttributeHolder@NonNull public Map<String,MutableArgumentValue<?>> getParameters()
InvocationContextInvocationContext.getParameterValues() and Executable.getArguments() directly, hence
 should be used with care.getParameters in interface InvocationContext<B,R>ArgumentValue instancespublic R proceed(@NonNull Interceptor from) throws RuntimeException
InvocationContextIntroduction advise where you want to
 invoke the target multiple times or where you want to repeat the entire chain.proceed in interface InvocationContext<B,R>from - The interceptor to start from (note: will not be included in the execution)RuntimeException - chain may throw RTE@NonNull protected static Collection<AnnotationValue<?>> resolveInterceptorValues(@NonNull AnnotationMetadata annotationMetadata, @NonNull InterceptorKind kind)
annotationMetadata - The annotation metadatakind - The kind