Package io.micronaut.inject.beans
Class AbstractInitializableBeanIntrospection<B>
java.lang.Object
io.micronaut.inject.beans.AbstractInitializableBeanIntrospection<B>
- Type Parameters:
B- The bean type
- All Implemented Interfaces:
io.micronaut.core.annotation.AnnotationMetadata,io.micronaut.core.annotation.AnnotationMetadataDelegate,io.micronaut.core.annotation.AnnotationMetadataProvider,io.micronaut.core.annotation.AnnotationSource,io.micronaut.core.beans.BeanInfo<B>,io.micronaut.core.beans.BeanIntrospection<B>,io.micronaut.core.beans.UnsafeBeanInstantiationIntrospection<B>,io.micronaut.core.order.Ordered,io.micronaut.core.type.ArgumentCoercible<B>
- Direct Known Subclasses:
AbstractInitializableBeanIntrospectionAndReference
public abstract class AbstractInitializableBeanIntrospection<B>
extends Object
implements io.micronaut.core.beans.UnsafeBeanInstantiationIntrospection<B>
Abstract implementation of the
BeanIntrospection interface. This class is subclasses at compilation time by generated byte code and should not be used directly.
Implementation is using method dispatch to access the bean instance.
- Since:
- 3.1
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classBean method compile-time data container.static final classBean property compile-time data container.Nested classes/interfaces inherited from interface io.micronaut.core.beans.BeanIntrospection
io.micronaut.core.beans.BeanIntrospection.Builder<T extends Object> -
Field Summary
Fields inherited from interface io.micronaut.core.annotation.AnnotationMetadata
CLASS_NAME_SUFFIX, EMPTY_METADATA, VALUE_MEMBERFields inherited from interface io.micronaut.core.annotation.AnnotationSource
EMPTYFields inherited from interface io.micronaut.core.order.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractInitializableBeanIntrospection(Class<B> beanType, io.micronaut.core.annotation.AnnotationMetadata annotationMetadata, io.micronaut.core.annotation.AnnotationMetadata constructorAnnotationMetadata, io.micronaut.core.type.Argument<?>[] constructorArguments, AbstractInitializableBeanIntrospection.BeanPropertyRef<Object>[] propertiesRefs, AbstractInitializableBeanIntrospection.BeanMethodRef<Object>[] methodsRefs) -
Method Summary
Modifier and TypeMethodDescriptionio.micronaut.core.beans.BeanIntrospection.Builder<B>builder()protected <V> VTriggers the invocation of the method at index.protected <V> VdispatchOne(int index, @NonNull Object target, @Nullable Object arg) Triggers the invocation of the method at index for a single argument call.booleanfindIndexedProperty(@NonNull Class<? extends Annotation> annotationType, @NonNull String annotationValue) Get all the bean properties annotated for the given type.protected final MethodgetAccessibleTargetMethodByIndex(int index) FindMethodrepresentation at the method by index.io.micronaut.core.annotation.AnnotationMetadata@NonNull Collection<io.micronaut.core.beans.BeanMethod<B,Object>> @NonNull Collection<io.micronaut.core.beans.BeanProperty<B,Object>> protected Collection<io.micronaut.core.beans.BeanProperty<B,Object>> getBeanPropertiesIndexedSubset(int[] indexes) Returns subset of bean properties defined by an array of indexes.io.micronaut.core.beans.BeanConstructor<B>io.micronaut.core.type.Argument<?>[]@NonNull Collection<io.micronaut.core.beans.BeanProperty<B,Object>> getIndexedProperties(@NonNull Class<? extends Annotation> annotationType) getIndexedProperty(@NonNull Class<? extends Annotation> annotationType, @NonNull String annotationValue) getProperty(@NonNull String name) getPropertyByIndex(int index) Obtain a property by its index.protected abstract MethodgetTargetMethodByIndex(int index) FindMethodrepresentation at the method by index.inthashCode()instantiate(boolean strictNullable, Object... arguments) protected BinstantiateInternal(@Nullable Object[] arguments) Reflection free bean instantiation implementation for the given arguments.instantiateUnsafe(@NonNull Object... arguments) intpropertyIndexOf(String name) toString()protected final RuntimeExceptionunknownDispatchAtIndexException(int index) Creates a new exception when the dispatch at index is not found.Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface io.micronaut.core.annotation.AnnotationMetadata
enumValuesSet, enumValuesSet, getValues, hasDeclaredStereotype, hasEvaluatedExpressions, hasStereotypeNonRepeating, isAnnotationPresent, isDeclaredAnnotationPresentMethods inherited from interface io.micronaut.core.annotation.AnnotationMetadataDelegate
booleanValue, booleanValue, booleanValue, booleanValue, classValue, classValue, classValue, classValue, classValues, classValues, classValues, classValues, copyAnnotationMetadata, 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, getAnnotationValuesByName, getAnnotationValuesByStereotype, getAnnotationValuesByType, getDeclaredAnnotation, getDeclaredAnnotation, getDeclaredAnnotationNameByStereotype, getDeclaredAnnotationNames, getDeclaredAnnotationNamesByStereotype, getDeclaredAnnotationTypeByStereotype, getDeclaredAnnotationTypeByStereotype, getDeclaredAnnotationValuesByName, getDeclaredAnnotationValuesByType, getDeclaredMetadata, getDeclaredStereotypeAnnotationNames, getDefaultValue, getDefaultValue, getDefaultValue, getDefaultValue, getDefaultValues, getStereotypeAnnotationNames, getTargetAnnotationMetadata, 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, synthesizeDeclaredAnnotationsByTypeMethods inherited from interface io.micronaut.core.beans.BeanInfo
asArgument, getGenericBeanType, getOrderMethods inherited from interface io.micronaut.core.beans.BeanIntrospection
getIndexedProperty, getProperty, getPropertyNames, getReadProperty, getReadProperty, getReadPropertyNames, getRequiredProperty, getRequiredReadProperty, getRequiredWriteProperty, getWriteProperty, getWriteProperty, hasBuilder, instantiate, isBuildable
-
Constructor Details
-
AbstractInitializableBeanIntrospection
protected AbstractInitializableBeanIntrospection(Class<B> beanType, io.micronaut.core.annotation.AnnotationMetadata annotationMetadata, io.micronaut.core.annotation.AnnotationMetadata constructorAnnotationMetadata, io.micronaut.core.type.Argument<?>[] constructorArguments, AbstractInitializableBeanIntrospection.BeanPropertyRef<Object>[] propertiesRefs, AbstractInitializableBeanIntrospection.BeanMethodRef<Object>[] methodsRefs)
-
-
Method Details
-
builder
- Specified by:
builderin interfaceio.micronaut.core.beans.BeanIntrospection<B>
-
instantiateInternal
Reflection free bean instantiation implementation for the given arguments.- Parameters:
arguments- The arguments- Returns:
- The bean
-
getPropertyByIndex
Obtain a property by its index.- Parameters:
index- The index of the property- Returns:
- A bean property
-
propertyIndexOf
- Specified by:
propertyIndexOfin interfaceio.micronaut.core.beans.BeanIntrospection<B>
-
getTargetMethodByIndex
FindMethodrepresentation at the method by index. Used byMethodReference.getTargetMethod().- Parameters:
index- The index- Returns:
- The method
-
getAccessibleTargetMethodByIndex
FindMethodrepresentation at the method by index. Used byMethodReference.getTargetMethod().- Parameters:
index- The index- Returns:
- The method
- Since:
- 3.8.5
-
dispatch
Triggers the invocation of the method at index.- Type Parameters:
V- The result type- Parameters:
index- The method indextarget- The targetargs- The arguments- Returns:
- The result
-
dispatchOne
@Nullable protected <V> V dispatchOne(int index, @NonNull @NonNull Object target, @Nullable @Nullable Object arg) Triggers the invocation of the method at index for a single argument call. Allowing to not wrap a single argument in an object array.- Type Parameters:
V- The result type- Parameters:
index- The method indextarget- The targetarg- The argument- Returns:
- The result
-
unknownDispatchAtIndexException
Creates a new exception when the dispatch at index is not found.- Parameters:
index- The method index- Returns:
- The exception
-
findIndexedProperty
@Nullable public @Nullable io.micronaut.core.beans.BeanProperty<B,Object> findIndexedProperty(@NonNull @NonNull Class<? extends Annotation> annotationType, @NonNull @NonNull String annotationValue) Get all the bean properties annotated for the given type. Nullable result method version ofgetIndexedProperty(Class, String).- Parameters:
annotationType- The annotation typeannotationValue- The annotation value- Returns:
- An immutable collection of properties.
- See Also:
-
Introspected.indexed()
-
getIndexedProperties
@NonNull public @NonNull Collection<io.micronaut.core.beans.BeanProperty<B,Object>> getIndexedProperties(@NonNull @NonNull Class<? extends Annotation> annotationType) - Specified by:
getIndexedPropertiesin interfaceio.micronaut.core.beans.BeanIntrospection<B>
-
getBeanPropertiesIndexedSubset
protected Collection<io.micronaut.core.beans.BeanProperty<B,Object>> getBeanPropertiesIndexedSubset(int[] indexes) Returns subset of bean properties defined by an array of indexes.- Parameters:
indexes- The indexes- Returns:
- a collection of bean properties
-
instantiate
- Specified by:
instantiatein interfaceio.micronaut.core.beans.BeanIntrospection<B>- Throws:
io.micronaut.core.reflect.exception.InstantiationException
-
instantiate
@NonNull public B instantiate(boolean strictNullable, Object... arguments) throws io.micronaut.core.reflect.exception.InstantiationException - Specified by:
instantiatein interfaceio.micronaut.core.beans.BeanIntrospection<B>- Throws:
io.micronaut.core.reflect.exception.InstantiationException
-
instantiateUnsafe
- Specified by:
instantiateUnsafein interfaceio.micronaut.core.beans.UnsafeBeanInstantiationIntrospection<B>
-
getConstructor
- Specified by:
getConstructorin interfaceio.micronaut.core.beans.BeanIntrospection<B>
-
getConstructorArguments
public io.micronaut.core.type.Argument<?>[] getConstructorArguments()- Specified by:
getConstructorArgumentsin interfaceio.micronaut.core.beans.BeanIntrospection<B>
-
getIndexedProperty
@NonNull public @NonNull Optional<io.micronaut.core.beans.BeanProperty<B,Object>> getIndexedProperty(@NonNull @NonNull Class<? extends Annotation> annotationType, @NonNull @NonNull String annotationValue) - Specified by:
getIndexedPropertyin interfaceio.micronaut.core.beans.BeanIntrospection<B>
-
getProperty
@NonNull public @NonNull Optional<io.micronaut.core.beans.BeanProperty<B,Object>> getProperty(@NonNull @NonNull String name) - Specified by:
getPropertyin interfaceio.micronaut.core.beans.BeanIntrospection<B>
-
getAnnotationMetadata
public io.micronaut.core.annotation.AnnotationMetadata getAnnotationMetadata()- Specified by:
getAnnotationMetadatain interfaceio.micronaut.core.annotation.AnnotationMetadataProvider
-
getBeanProperties
@NonNull public @NonNull Collection<io.micronaut.core.beans.BeanProperty<B,Object>> getBeanProperties()- Specified by:
getBeanPropertiesin interfaceio.micronaut.core.beans.BeanIntrospection<B>
-
getBeanReadProperties
- Specified by:
getBeanReadPropertiesin interfaceio.micronaut.core.beans.BeanIntrospection<B>
-
getBeanWriteProperties
- Specified by:
getBeanWritePropertiesin interfaceio.micronaut.core.beans.BeanIntrospection<B>
-
getBeanType
-
getBeanMethods
- Specified by:
getBeanMethodsin interfaceio.micronaut.core.beans.BeanIntrospection<B>
-
equals
-
hashCode
public int hashCode() -
toString
-