T - The bean type@Internal public final class ConstructorInterceptorChain<T> extends Object implements ConstructorInvocationContext<T>
InvocationContext for constructor interception.| Modifier and Type | Field and Description |
|---|---|
protected MutableConvertibleValues<Object> |
attributes |
protected int |
index |
protected int |
interceptorCount |
protected Interceptor<B,R>[] |
interceptors |
protected static org.slf4j.Logger |
LOG
Used by subclasses!
|
protected Object[] |
originalParameters |
protected Map<String,MutableArgumentValue<?>> |
parameters |
CLASS_NAME_SUFFIX, EMPTY_METADATA, VALUE_MEMBEREMPTY| Modifier and Type | Method and Description |
|---|---|
Argument<?>[] |
getArguments()
The required argument types.
|
MutableConvertibleValues<Object> |
getAttributes()
Overrides the default
AttributeHolder.getAttributes() method to return a mutable object. |
BeanConstructor<T> |
getConstructor() |
InterceptorKind |
getKind() |
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.
|
T |
getTarget() |
static <T1> T1 |
instantiate(BeanResolutionContext resolutionContext,
BeanContext beanContext,
List<BeanRegistration<Interceptor<T1,T1>>> interceptors,
BeanDefinition<T1> definition,
BeanConstructor<T1> constructor,
int additionalProxyConstructorParametersCount,
Object... parameters)
Internal methods that handles the logic of instantiating a bean that has constructor interception applied.
|
static <T1> T1 |
instantiate(BeanResolutionContext resolutionContext,
BeanContext beanContext,
List<BeanRegistration<Interceptor<T1,T1>>> interceptors,
BeanDefinition<T1> definition,
BeanConstructor<T1> constructor,
Object... parameters)
Deprecated.
|
T |
invoke(T instance,
Object... arguments)
Invokes the method.
|
T |
proceed()
Proceeds with the invocation.
|
R |
proceed(Interceptor from)
Proceeds with the invocation using the given interceptor as a position to start from.
|
protected static Collection<AnnotationValue<?>> |
resolveInterceptorValues(AnnotationMetadata annotationMetadata,
InterceptorKind kind)
Resolve interceptor binding for the given annotation metadata and kind.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetDeclaringType, proceedgetParameters, getParameterValueMap, getParameterValues, 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, getDeclaredStereotypeAnnotationNames, getDefaultValue, getDefaultValue, getDefaultValue, getDefaultValue, getDefaultValues, getStereotypeAnnotationNames, 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, synthesizeDeclaredAnnotationsByTypegetAnnotationMetadatagetAnnotationValuesByName, getDeclaredAnnotationValuesByName, getValues, hasDeclaredStereotype, isAnnotationPresent, isDeclaredAnnotationPresentgetAttributes, removeAttributegetAttribute, getAttributeprotected static final org.slf4j.Logger LOG
protected final Interceptor<B,R>[] interceptors
protected final Object[] originalParameters
protected final int interceptorCount
protected volatile MutableConvertibleValues<Object> attributes
protected int index
protected volatile Map<String,MutableArgumentValue<?>> parameters
@NonNull public InterceptorKind getKind()
getKind in interface InvocationContext<T,T>public T getTarget()
getTarget in interface InvocationContext<T,T>public T proceed() throws RuntimeException
InvocationContextproceed in interface ConstructorInvocationContext<T>proceed in interface InvocationContext<T,T>RuntimeException - chain may throw RTE@NonNull public Argument<?>[] getArguments()
ExecutablegetArguments in interface Executable<T,T>public T invoke(T instance, Object... arguments)
Executableinvoke in interface Executable<T,T>instance - The instancearguments - The arguments@NonNull public BeanConstructor<T> getConstructor()
getConstructor in interface ConstructorInvocationContext<T>@Internal @NonNull @Deprecated public static <T1> T1 instantiate(@NonNull BeanResolutionContext resolutionContext, @NonNull BeanContext beanContext, @Nullable List<BeanRegistration<Interceptor<T1,T1>>> interceptors, @NonNull BeanDefinition<T1> definition, @NonNull BeanConstructor<T1> constructor, @NonNull Object... parameters)
T1 - The bean typeresolutionContext - The resolution contextbeanContext - The bean contextinterceptors - The interceptors. Can be null and if so should be resolved from the context.definition - The definitionconstructor - The bean constructorparameters - Th resolved parameters@Internal @NonNull public static <T1> T1 instantiate(@NonNull BeanResolutionContext resolutionContext, @NonNull BeanContext beanContext, @Nullable List<BeanRegistration<Interceptor<T1,T1>>> interceptors, @NonNull BeanDefinition<T1> definition, @NonNull BeanConstructor<T1> constructor, int additionalProxyConstructorParametersCount, @NonNull Object... parameters)
T1 - The bean typeresolutionContext - The resolution contextbeanContext - The bean contextinterceptors - The interceptors. Can be null and if so should be resolved from the context.definition - The definitionconstructor - The bean constructoradditionalProxyConstructorParametersCount - The additional proxy constructor parameters countparameters - The resolved parameters@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