Class ReflectivePropertyProvider
- java.lang.Object
-
- org.vaadin.miki.superfields.object.reflect.ReflectivePropertyProvider
-
- All Implemented Interfaces:
Serializable,PropertyProvider
public class ReflectivePropertyProvider extends Object implements PropertyProvider
Simple reflection-based definition provider. It scans a given type forprivatefields (includingfinal) and corresponding setters and/or getters. Delegates the scanning toReflectTools.extractFieldsWithMethods(Class, boolean). Superclasses are by default included, unlessDoNotScanSuperclassesis used on the type. All fields are included in the results, except fields annotated withIgnore. The declared field types are used, unlessUseActualTypeis used, in which case the actual type of the field's value is used. The results are cached, except when a type hasUseActualTypeannotation on any of its fields.- Since:
- 2022-06-03
- Author:
- miki
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description ReflectivePropertyProvider()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddMetadataProvider(MetadataProvider... providers)Adds givenMetadataProviders.<T> List<Property<T,?>>getObjectPropertyDefinitions(Class<T> type, T instance)Builds a list of property definitions for a given object.booleanisUsingFakeGettersWhenNotPresent()Checks whether a fake getter (i.e.booleanisUsingFakeSettersWhenNotPresent()Checks whether a fake setter (i.e.voidsetUsingFakeGettersWhenNotPresent(boolean usingFakeGettersWhenNotPresent)Allows using a fake getter when there is no getter for a given property.voidsetUsingFakeSettersWhenNotPresent(boolean usingFakeSettersWhenNotPresent)Allows using a fake setter when there is no setter for a given property.ReflectivePropertyProviderwithMetadataProvider(MetadataProvider... providers)ChainsaddMetadataProvider(MetadataProvider...)and returns itself.ReflectivePropertyProviderwithUsingFakeGettersWhenNotPresent(boolean setting)ChainssetUsingFakeGettersWhenNotPresent(boolean)and returns itself.ReflectivePropertyProviderwithUsingFakeSettersWhenNotPresent(boolean setting)ChainssetUsingFakeGettersWhenNotPresent(boolean)and returns itself.
-
-
-
Method Detail
-
getObjectPropertyDefinitions
public <T> List<Property<T,?>> getObjectPropertyDefinitions(Class<T> type, T instance)
Description copied from interface:PropertyProviderBuilds a list of property definitions for a given object.- Specified by:
getObjectPropertyDefinitionsin interfacePropertyProvider- Type Parameters:
T- Generic type to enforce bothtypeandinstanceare compatible.- Parameters:
type- Type of the object.instance- An instance of the object. Can benull.- Returns:
- A non-
nulllist ofPropertys that can be empty.
-
addMetadataProvider
public final void addMetadataProvider(MetadataProvider... providers)
Adds givenMetadataProviders. They will be called in order of adding.- Parameters:
providers- An array ofMetadataProviders to add.
-
withMetadataProvider
public final ReflectivePropertyProvider withMetadataProvider(MetadataProvider... providers)
ChainsaddMetadataProvider(MetadataProvider...)and returns itself.- Parameters:
providers- An array ofMetadataProviders to add.- Returns:
- This.
- See Also:
addMetadataProvider(MetadataProvider...)
-
isUsingFakeSettersWhenNotPresent
public boolean isUsingFakeSettersWhenNotPresent()
Checks whether a fake setter (i.e. one that does nothing) is returned when there is no setter for a property.- Returns:
- When
true, a fake setter is used instead of anullvalue (default).
-
setUsingFakeSettersWhenNotPresent
public void setUsingFakeSettersWhenNotPresent(boolean usingFakeSettersWhenNotPresent)
Allows using a fake setter when there is no setter for a given property. This allows setters to be called regardless of whether they exist or not.- Parameters:
usingFakeSettersWhenNotPresent- Whentrueand a setter for a property is missing, a fake one will be used instead ofnull.
-
withUsingFakeSettersWhenNotPresent
public final ReflectivePropertyProvider withUsingFakeSettersWhenNotPresent(boolean setting)
ChainssetUsingFakeGettersWhenNotPresent(boolean)and returns itself.- Parameters:
setting- Whether to fake setters.- Returns:
- This.
- See Also:
setUsingFakeSettersWhenNotPresent(boolean)
-
isUsingFakeGettersWhenNotPresent
public boolean isUsingFakeGettersWhenNotPresent()
Checks whether a fake getter (i.e. one that always returnsnull) is returned when there is no getter for a property.- Returns:
- When
true, a fake getter is used instead of anullvalue (default).
-
setUsingFakeGettersWhenNotPresent
public void setUsingFakeGettersWhenNotPresent(boolean usingFakeGettersWhenNotPresent)
Allows using a fake getter when there is no getter for a given property. This allows getters to be called regardless of whether they exist or not.- Parameters:
usingFakeGettersWhenNotPresent- Whentrueand a getter for a property is missing, a fake one will be used instead ofnull.
-
withUsingFakeGettersWhenNotPresent
public final ReflectivePropertyProvider withUsingFakeGettersWhenNotPresent(boolean setting)
ChainssetUsingFakeGettersWhenNotPresent(boolean)and returns itself.- Parameters:
setting- Whentrueand a getter for a property is missing, a fake one will be used instead ofnull.- Returns:
- This.
- See Also:
setUsingFakeGettersWhenNotPresent(boolean)
-
-