T
- The generic type@Internal public abstract class AbstractBeanIntrospection<T> extends java.lang.Object implements BeanIntrospection<T>
BeanIntrospection
interface. This class is subclasses at compilation time by generated byte code and should not be used directly.Modifier and Type | Field and Description |
---|---|
protected AnnotationMetadata |
annotationMetadata |
protected java.util.Map<java.lang.String,BeanProperty<T,java.lang.Object>> |
beanProperties |
protected java.lang.Class<T> |
beanType |
CLASS_NAME_SUFFIX, EMPTY_METADATA, VALUE_MEMBER
EMPTY
Modifier | Constructor and Description |
---|---|
protected |
AbstractBeanIntrospection(java.lang.Class<T> beanType,
AnnotationMetadata annotationMetadata,
int propertyCount)
Base class for bean instrospections.
|
Modifier and Type | Method and Description |
---|---|
protected void |
addProperty(BeanProperty<T,java.lang.Object> property)
Adds a property at a particular index of the internal array passed to the constructor.
|
boolean |
equals(java.lang.Object o) |
AnnotationMetadata |
getAnnotationMetadata()
Supplies the metadata.
|
java.util.Collection<BeanProperty<T,java.lang.Object>> |
getBeanProperties() |
java.lang.Class<T> |
getBeanType()
The bean type.
|
java.util.Collection<BeanProperty<T,java.lang.Object>> |
getIndexedProperties(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)
Get all the bean properties annotated for the given annotation type.
|
java.util.Optional<BeanProperty<T,java.lang.Object>> |
getIndexedProperty(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType,
java.lang.String annotationValue)
Get all the bean properties annotated for the given type.
|
java.util.Optional<BeanProperty<T,java.lang.Object>> |
getProperty(java.lang.String name)
Obtain a property by name.
|
int |
hashCode() |
protected void |
indexProperty(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType,
java.lang.String propertyName)
Used to produce an index for particular annotation type.
|
protected void |
indexProperty(java.lang.Class<? extends java.lang.annotation.Annotation> annotationType,
java.lang.String propertyName,
java.lang.String annotationValue)
Used to produce an index for particular annotation type.
|
T |
instantiate(boolean strictNullable,
java.lang.Object... arguments)
Instantiates an instance of the bean, throwing an exception is instantiation is not possible.
|
protected abstract T |
instantiateInternal(java.lang.Object[] arguments)
Reflection free bean instantiation implementation for the given arguments.
|
java.lang.String |
toString() |
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
getConstructorArguments, getIndexedProperty, getIntrospection, getProperty, getPropertyNames, getRequiredProperty, instantiate, instantiate
booleanValue, 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, getAnnotation, getAnnotation, getAnnotationNameByStereotype, getAnnotationNameByStereotype, getAnnotationNames, getAnnotationNamesByStereotype, getAnnotationNamesByStereotype, getAnnotationType, getAnnotationTypeByStereotype, getAnnotationTypeByStereotype, getAnnotationTypesByStereotype, getAnnotationValuesByType, getDeclaredAnnotation, getDeclaredAnnotation, getDeclaredAnnotationNameByStereotype, getDeclaredAnnotationNames, getDeclaredAnnotationNamesByStereotype, getDeclaredAnnotationTypeByStereotype, getDeclaredAnnotationTypeByStereotype, getDeclaredAnnotationValuesByType, 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, hasSimpleAnnotation, hasSimpleDeclaredAnnotation, hasStereotype, hasStereotype, hasStereotype, hasStereotype, intValue, intValue, intValue, isAnnotationPresent, isDeclaredAnnotationPresent, isEmpty, isFalse, isFalse, isPresent, isPresent, isTrue, isTrue, longValue, longValue, stringValue, stringValue, stringValue, stringValue, stringValues, stringValues, synthesize, synthesizeAll, synthesizeAnnotationsByType, synthesizeDeclared, synthesizeDeclared, synthesizeDeclaredAnnotationsByType
protected final AnnotationMetadata annotationMetadata
protected final java.lang.Class<T> beanType
protected final java.util.Map<java.lang.String,BeanProperty<T,java.lang.Object>> beanProperties
protected AbstractBeanIntrospection(@NonNull java.lang.Class<T> beanType, @Nullable AnnotationMetadata annotationMetadata, int propertyCount)
beanType
- The bean typeannotationMetadata
- The annotation metadatapropertyCount
- The property count@NonNull public java.util.Optional<BeanProperty<T,java.lang.Object>> getIndexedProperty(@NonNull java.lang.Class<? extends java.lang.annotation.Annotation> annotationType, @NonNull java.lang.String annotationValue)
BeanIntrospection
getIndexedProperty
in interface BeanIntrospection<T>
annotationType
- The annotation typeannotationValue
- The annotation valueIntrospected.indexed()
@NonNull public T instantiate(boolean strictNullable, java.lang.Object... arguments) throws InstantiationException
BeanIntrospection
instantiate
in interface BeanIntrospection<T>
strictNullable
- If true, require null parameters to be annotated with a nullable annotationarguments
- The arguments required to instantiate bean. Should match the types returned by BeanIntrospection.getConstructorArguments()
InstantiationException
- If the bean cannot be instantiated.@NonNull public java.util.Optional<BeanProperty<T,java.lang.Object>> getProperty(@NonNull java.lang.String name)
BeanIntrospection
getProperty
in interface BeanIntrospection<T>
name
- The name of the property@NonNull public java.util.Collection<BeanProperty<T,java.lang.Object>> getIndexedProperties(@NonNull java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)
BeanIntrospection
Introspected.indexed()
by the given annotation,
then it will be included in the resulting list.getIndexedProperties
in interface BeanIntrospection<T>
annotationType
- The annotation typeIntrospected.indexed()
public AnnotationMetadata getAnnotationMetadata()
AnnotationMetadataProvider
AnnotationMetadata.EMPTY_METADATA
.getAnnotationMetadata
in interface AnnotationMetadataProvider
AnnotationMetadata
@NonNull public java.util.Collection<BeanProperty<T,java.lang.Object>> getBeanProperties()
getBeanProperties
in interface BeanIntrospection<T>
@NonNull public java.lang.Class<T> getBeanType()
BeanIntrospection
getBeanType
in interface BeanIntrospection<T>
@Internal protected abstract T instantiateInternal(java.lang.Object[] arguments)
arguments
- The arguments@Internal protected final void addProperty(@NonNull BeanProperty<T,java.lang.Object> property)
property
- The property.@Internal protected final void indexProperty(@NonNull java.lang.Class<? extends java.lang.annotation.Annotation> annotationType, @NonNull java.lang.String propertyName)
addProperty(BeanProperty)
if required.annotationType
- The annotation typepropertyName
- The property name@Internal protected final void indexProperty(@NonNull java.lang.Class<? extends java.lang.annotation.Annotation> annotationType, @NonNull java.lang.String propertyName, @NonNull java.lang.String annotationValue)
addProperty(BeanProperty)
if required.annotationType
- The annotation typepropertyName
- The property nameannotationValue
- The annotation valuepublic boolean equals(java.lang.Object o)
equals
in class java.lang.Object
public int hashCode()
hashCode
in class java.lang.Object
public java.lang.String toString()
toString
in class java.lang.Object