T
- The generic type@Internal public abstract class AbstractBeanIntrospection<T> extends 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 Map<String,BeanProperty<T,Object>> |
beanProperties |
protected Class<T> |
beanType |
CLASS_NAME_SUFFIX, EMPTY_METADATA, VALUE_MEMBER
EMPTY
Modifier | Constructor and Description |
---|---|
protected |
AbstractBeanIntrospection(Class<T> beanType,
AnnotationMetadata annotationMetadata,
int propertyCount)
Base class for bean instrospections.
|
Modifier and Type | Method and Description |
---|---|
protected void |
addProperty(BeanProperty<T,Object> property)
Adds a property at a particular index of the internal array passed to the constructor.
|
boolean |
equals(Object o) |
AnnotationMetadata |
getAnnotationMetadata()
Supplies the metadata.
|
Collection<BeanProperty<T,Object>> |
getBeanProperties() |
Class<T> |
getBeanType()
The bean type.
|
Collection<BeanProperty<T,Object>> |
getIndexedProperties(Class<? extends Annotation> annotationType)
Get all the bean properties annotated for the given annotation type.
|
Optional<BeanProperty<T,Object>> |
getIndexedProperty(Class<? extends Annotation> annotationType,
String annotationValue)
Get all the bean properties annotated for the given type.
|
Optional<BeanProperty<T,Object>> |
getProperty(String name)
Obtain a property by name.
|
int |
hashCode() |
protected void |
indexProperty(Class<? extends Annotation> annotationType,
String propertyName)
Used to produce an index for particular annotation type.
|
protected void |
indexProperty(Class<? extends Annotation> annotationType,
String propertyName,
String annotationValue)
Used to produce an index for particular annotation type.
|
T |
instantiate(Object... arguments)
Instantiates an instance of the bean, throwing an exception is instantiation is not possible.
|
protected abstract T |
instantiateInternal(Object[] arguments)
Reflection free bean instantiation implementation for the given arguments.
|
String |
toString() |
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
getConstructorArguments, getIndexedProperty, getIntrospection, getProperty, getPropertyNames, getRequiredProperty, instantiate
booleanValue, booleanValue, booleanValue, booleanValue, classValue, classValue, classValue, classValue, classValues, classValues, classValues, classValues, doubleValue, doubleValue, doubleValue, enumValue, enumValue, enumValue, enumValue, 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, getValue, getValue, getValue, getValue, getValue, getValue, getValue, getValue, getValue, getValue, getValue, getValue, getValues, getValues, hasAnnotation, hasAnnotation, hasDeclaredAnnotation, hasDeclaredAnnotation, hasDeclaredStereotype, hasDeclaredStereotype, hasDeclaredStereotype, 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 Map<String,BeanProperty<T,Object>> beanProperties
protected AbstractBeanIntrospection(@Nonnull Class<T> beanType, @Nullable AnnotationMetadata annotationMetadata, int propertyCount)
beanType
- The bean typeannotationMetadata
- The annotation metadatapropertyCount
- The property count@Nonnull public Optional<BeanProperty<T,Object>> getIndexedProperty(@Nonnull Class<? extends Annotation> annotationType, @Nonnull String annotationValue)
BeanIntrospection
getIndexedProperty
in interface BeanIntrospection<T>
annotationType
- The annotation typeannotationValue
- The annotation valueIntrospected#indexed()
@Nonnull public T instantiate(Object... arguments) throws InstantiationException
BeanIntrospection
instantiate
in interface BeanIntrospection<T>
arguments
- The arguments required to instantiate bean. Should match the types returned by BeanIntrospection.getConstructorArguments()
InstantiationException
- If the bean cannot be instantiated.@Nonnull public Optional<BeanProperty<T,Object>> getProperty(@Nonnull String name)
BeanIntrospection
getProperty
in interface BeanIntrospection<T>
name
- The name of the property@Nonnull public Collection<BeanProperty<T,Object>> getIndexedProperties(@Nonnull Class<? extends 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 Collection<BeanProperty<T,Object>> getBeanProperties()
getBeanProperties
in interface BeanIntrospection<T>
@Nonnull public Class<T> getBeanType()
BeanIntrospection
getBeanType
in interface BeanIntrospection<T>
@Internal protected abstract T instantiateInternal(Object[] arguments)
arguments
- The arguments@Internal protected final void addProperty(@Nonnull BeanProperty<T,Object> property)
property
- The property.@Internal protected final void indexProperty(@Nonnull Class<? extends Annotation> annotationType, @Nonnull String propertyName)
addProperty(BeanProperty)
if required.annotationType
- The annotation typepropertyName
- The property name@Internal protected final void indexProperty(@Nonnull Class<? extends Annotation> annotationType, @Nonnull String propertyName, @Nonnull String annotationValue)
addProperty(BeanProperty)
if required.annotationType
- The annotation typepropertyName
- The property nameannotationValue
- The annotation value