Class BaseBeanDescriptorProvider
- java.lang.Object
-
- com.oracle.coherence.io.json.genson.reflect.AbstractBeanDescriptorProvider
-
- com.oracle.coherence.io.json.genson.reflect.BaseBeanDescriptorProvider
-
- All Implemented Interfaces:
BeanDescriptorProvider
- Direct Known Subclasses:
BeanViewDescriptorProvider
public class BaseBeanDescriptorProvider extends AbstractBeanDescriptorProvider
Standard implementation of AbstractBeanDescriptorProvider that usesBeanMutatorAccessorResolverandPropertyNameResolver. If you want to change the way BeanDescriptors are created you can subclass this class and override the needed methods. If you only want to create instances of your own PropertyMutators/PropertyAccessors or BeanCreators just override the corresponding createXXX methods.- Author:
- Eugen Cepoi
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.oracle.coherence.io.json.genson.reflect.AbstractBeanDescriptorProvider
AbstractBeanDescriptorProvider.ContextualConverterFactory, AbstractBeanDescriptorProvider.ContextualFactoryDecorator
-
Nested classes/interfaces inherited from interface com.oracle.coherence.io.json.genson.reflect.BeanDescriptorProvider
BeanDescriptorProvider.CompositeBeanDescriptorProvider
-
-
Field Summary
Fields Modifier and Type Field Description protected booleanfavorEmptyCreatorsprotected BeanMutatorAccessorResolvermutatorAccessorResolverprotected PropertyNameResolvernameResolverprotected booleanuseFieldsprotected booleanuseGettersAndSetters
-
Constructor Summary
Constructors Constructor Description BaseBeanDescriptorProvider(AbstractBeanDescriptorProvider.ContextualConverterFactory ctxConverterFactory, BeanPropertyFactory propertyFactory, BeanMutatorAccessorResolver mutatorAccessorResolver, PropertyNameResolver nameResolver, boolean useGettersAndSetters, boolean useFields, boolean favorEmptyCreators)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected <T extends BeanProperty>
T_mostSpecificPropertyDeclaringClass(String name, LinkedList<T> properties)protected void_throwCouldCreateBeanDescriptor(Class<?> ofClass, String reason)protected BeanCreatorcheckAndMerge(Type ofType, List<BeanCreator> creators)Implementations of this method can do some additional checks on the creators validity or do any other operations related to creators.protected PropertyAccessorcheckAndMergeAccessors(String name, LinkedList<PropertyAccessor> accessors)Implementations are supposed to merge thePropertyAccessors from accessors list into a single PropertyAccessor.protected PropertyMutatorcheckAndMergeMutators(String name, LinkedList<PropertyMutator> mutators)Implementations are supposed to merge thePropertyMutators from mutators list into a single PropertyMutator.protected voidmergeAccessorsWithCreatorProperties(Type ofType, List<PropertyAccessor> accessors, BeanCreator creator)Implementations may do additional merge operations based on the resolved creator parameters and the resolved accessors.protected voidmergeMutatorsWithCreatorProperties(Type ofType, Map<String,PropertyMutator> mutators, BeanCreator creator)Implementations may do additional merge operations based on the resolved creator parameters and the resolved mutators.List<BeanCreator>provideBeanCreators(Type ofType, Genson genson)Provides a list ofBeanCreatorfor type ofType.voidprovideBeanPropertyAccessors(Type ofType, Map<String,LinkedList<PropertyAccessor>> accessorsMap, Genson genson)Adds resolvedPropertyAccessorto accessorsMap.voidprovideBeanPropertyMutators(Type ofType, Map<String,LinkedList<PropertyMutator>> mutatorsMap, Genson genson)Adds resolvedPropertyMutatorto mutatorsMap.protected voidprovideConstructorCreators(Type ofType, List<BeanCreator> creators, Genson genson)protected voidprovideFieldAccessors(Class<?> ofClass, Map<String,LinkedList<PropertyAccessor>> accessorsMap, Type ofType, Genson genson)protected voidprovideFieldMutators(Class<?> ofClass, Map<String,LinkedList<PropertyMutator>> mutatorsMap, Type ofType, Genson genson)protected voidprovideMethodAccessors(Class<?> ofClass, Map<String,LinkedList<PropertyAccessor>> accessorsMap, Type ofType, Genson genson)protected voidprovideMethodCreators(Class<?> ofClass, List<BeanCreator> creators, Type ofType, Genson genson)protected voidprovideMethodMutators(Class<?> ofClass, Map<String,LinkedList<PropertyMutator>> mutatorsMap, Type ofType, Genson genson)protected <T extends BeanProperty>
voidupdate(T property, Map<String,LinkedList<T>> map)-
Methods inherited from class com.oracle.coherence.io.json.genson.reflect.AbstractBeanDescriptorProvider
create, provide, provide
-
-
-
-
Field Detail
-
mutatorAccessorResolver
protected final BeanMutatorAccessorResolver mutatorAccessorResolver
-
nameResolver
protected final PropertyNameResolver nameResolver
-
useGettersAndSetters
protected final boolean useGettersAndSetters
-
useFields
protected final boolean useFields
-
favorEmptyCreators
protected final boolean favorEmptyCreators
-
-
Constructor Detail
-
BaseBeanDescriptorProvider
public BaseBeanDescriptorProvider(AbstractBeanDescriptorProvider.ContextualConverterFactory ctxConverterFactory, BeanPropertyFactory propertyFactory, BeanMutatorAccessorResolver mutatorAccessorResolver, PropertyNameResolver nameResolver, boolean useGettersAndSetters, boolean useFields, boolean favorEmptyCreators)
-
-
Method Detail
-
provideBeanCreators
public List<BeanCreator> provideBeanCreators(Type ofType, Genson genson)
Description copied from class:AbstractBeanDescriptorProviderProvides a list ofBeanCreatorfor type ofType.- Specified by:
provideBeanCreatorsin classAbstractBeanDescriptorProvider- Returns:
- a list of resolved bean creators
-
provideBeanPropertyAccessors
public void provideBeanPropertyAccessors(Type ofType, Map<String,LinkedList<PropertyAccessor>> accessorsMap, Genson genson)
Description copied from class:AbstractBeanDescriptorProviderAdds resolvedPropertyAccessorto accessorsMap.- Specified by:
provideBeanPropertyAccessorsin classAbstractBeanDescriptorProvider
-
provideBeanPropertyMutators
public void provideBeanPropertyMutators(Type ofType, Map<String,LinkedList<PropertyMutator>> mutatorsMap, Genson genson)
Description copied from class:AbstractBeanDescriptorProviderAdds resolvedPropertyMutatorto mutatorsMap.- Specified by:
provideBeanPropertyMutatorsin classAbstractBeanDescriptorProvider
-
provideConstructorCreators
protected void provideConstructorCreators(Type ofType, List<BeanCreator> creators, Genson genson)
-
provideMethodCreators
protected void provideMethodCreators(Class<?> ofClass, List<BeanCreator> creators, Type ofType, Genson genson)
-
provideFieldAccessors
protected void provideFieldAccessors(Class<?> ofClass, Map<String,LinkedList<PropertyAccessor>> accessorsMap, Type ofType, Genson genson)
-
provideMethodAccessors
protected void provideMethodAccessors(Class<?> ofClass, Map<String,LinkedList<PropertyAccessor>> accessorsMap, Type ofType, Genson genson)
-
provideFieldMutators
protected void provideFieldMutators(Class<?> ofClass, Map<String,LinkedList<PropertyMutator>> mutatorsMap, Type ofType, Genson genson)
-
provideMethodMutators
protected void provideMethodMutators(Class<?> ofClass, Map<String,LinkedList<PropertyMutator>> mutatorsMap, Type ofType, Genson genson)
-
update
protected <T extends BeanProperty> void update(T property, Map<String,LinkedList<T>> map)
-
checkAndMerge
protected BeanCreator checkAndMerge(Type ofType, List<BeanCreator> creators)
Description copied from class:AbstractBeanDescriptorProviderImplementations of this method can do some additional checks on the creators validity or do any other operations related to creators. This method must merge all creators into a single one.- Specified by:
checkAndMergein classAbstractBeanDescriptorProvider- Returns:
- the creator that will be used by the BeanDescriptor
-
_throwCouldCreateBeanDescriptor
protected void _throwCouldCreateBeanDescriptor(Class<?> ofClass, String reason)
-
checkAndMergeAccessors
protected PropertyAccessor checkAndMergeAccessors(String name, LinkedList<PropertyAccessor> accessors)
Description copied from class:AbstractBeanDescriptorProviderImplementations are supposed to merge thePropertyAccessors from accessors list into a single PropertyAccessor.- Specified by:
checkAndMergeAccessorsin classAbstractBeanDescriptorProvider- Returns:
- a single property accessor for this name
-
checkAndMergeMutators
protected PropertyMutator checkAndMergeMutators(String name, LinkedList<PropertyMutator> mutators)
Description copied from class:AbstractBeanDescriptorProviderImplementations are supposed to merge thePropertyMutators from mutators list into a single PropertyMutator.- Specified by:
checkAndMergeMutatorsin classAbstractBeanDescriptorProvider- Returns:
- a single PropertyMutator or null.
-
_mostSpecificPropertyDeclaringClass
protected <T extends BeanProperty> T _mostSpecificPropertyDeclaringClass(String name, LinkedList<T> properties)
-
mergeMutatorsWithCreatorProperties
protected void mergeMutatorsWithCreatorProperties(Type ofType, Map<String,PropertyMutator> mutators, BeanCreator creator)
Description copied from class:AbstractBeanDescriptorProviderImplementations may do additional merge operations based on the resolved creator parameters and the resolved mutators.- Specified by:
mergeMutatorsWithCreatorPropertiesin classAbstractBeanDescriptorProvider
-
mergeAccessorsWithCreatorProperties
protected void mergeAccessorsWithCreatorProperties(Type ofType, List<PropertyAccessor> accessors, BeanCreator creator)
Description copied from class:AbstractBeanDescriptorProviderImplementations may do additional merge operations based on the resolved creator parameters and the resolved accessors.- Specified by:
mergeAccessorsWithCreatorPropertiesin classAbstractBeanDescriptorProvider
-
-