Package io.micronaut.core.beans
Interface BeanWriteProperty<B,T>
- Type Parameters:
B
- The bean typeT
- The bean property type
- All Superinterfaces:
AnnotatedElement
,AnnotationMetadata
,AnnotationMetadataDelegate
,AnnotationMetadataProvider
,AnnotationSource
,ArgumentCoercible<T>
,Named
- All Known Subinterfaces:
BeanProperty<B,
,T> UnsafeBeanProperty<B,
,T> UnsafeBeanWriteProperty<B,
T>
- All Known Implementing Classes:
AbstractBeanProperty
public interface BeanWriteProperty<B,T>
extends AnnotatedElement, AnnotationMetadataDelegate, ArgumentCoercible<T>
Represents a write property of a bean.
A BeanWriteProperty
allows you to write to it via set(Object, Object)
, without using reflection.
The annotations of a property can be inspected via the AnnotationMetadataProvider.getAnnotationMetadata()
method.
- Since:
- 4.4.0
- Author:
- Denis Stepanov
- See Also:
-
Field Summary
Fields inherited from interface io.micronaut.core.annotation.AnnotationMetadata
CLASS_NAME_SUFFIX, EMPTY_METADATA, VALUE_MEMBER
Fields inherited from interface io.micronaut.core.annotation.AnnotationSource
EMPTY
-
Method Summary
Modifier and TypeMethodDescriptionRepresent the type as an argument, including any generic type information.default void
convertAndSet
(B bean, @Nullable Object value) Convert the value and set if on the bean using the default conversion service.The declaring type of the property.getType()
void
Write the bean value.This method will attempt to modify the property or if this is an immutable type using a copy constructor to return a new instance with the new value.Methods inherited from interface io.micronaut.core.annotation.AnnotatedElement
isDeclaredNonNull, isDeclaredNullable, isNonNull, isNullable
Methods inherited from interface io.micronaut.core.annotation.AnnotationMetadata
enumValuesSet, enumValuesSet, getValues, hasDeclaredStereotype, hasEvaluatedExpressions, hasStereotypeNonRepeating, isAnnotationPresent, isDeclaredAnnotationPresent
Methods 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, synthesizeDeclaredAnnotationsByType
Methods inherited from interface io.micronaut.core.annotation.AnnotationMetadataProvider
getAnnotationMetadata
-
Method Details
-
getDeclaringBean
- Returns:
- The declaring bean introspection.
-
getDeclaringType
The declaring type of the property.- Returns:
- The type
-
withValue
This method will attempt to modify the property or if this is an immutable type using a copy constructor to return a new instance with the new value.This differs from
set(Object, Object)
which will throw an exception if the property does not have a setter.- If the property is read-only but can be provided via constructor argument a new instance representing a copy of the bean is returned.
- If the property is mutable then the passed instance is returned and
set(Object, Object)
invoked to mutate the property - If there is no way for the property to be mutated then an
UnsupportedOperationException
is thrown
- Parameters:
bean
- The beanvalue
- The new value- Returns:
- Either the existing instance or the property is mutable or a newly created instance via the copy constructor pattern.
- Throws:
UnsupportedOperationException
- if the property cannot be mutated
-
set
Write the bean value.- Parameters:
bean
- The beanvalue
- The value to write- Throws:
IllegalArgumentException
- If either the bean type or value type are not correct
-
convertAndSet
Convert the value and set if on the bean using the default conversion service.- Parameters:
bean
- The beanvalue
- The value- Throws:
ConversionErrorException
- If the value couldn't be converted
-
getType
- Returns:
- The property type.
-
asArgument
Represent the type as an argument, including any generic type information.- Specified by:
asArgument
in interfaceArgumentCoercible<B>
- Returns:
- The argument
-