public class TypeManagerImpl extends Object implements TypeManager, Serializable
Modifier and Type | Field and Description |
---|---|
protected Map<String,TypeConverter> |
autoApplyConvertersByType
Map of TypeConverter keyed by type name that we should default to for this type (user-defined).
|
protected ClassLoaderResolver |
clr |
protected Map<Class,? super ContainerHandler> |
containerHandlersByClass
Map of ContainerHandlers, keyed by the container type class name.
|
protected Map<String,org.datanucleus.store.types.TypeManagerImpl.JavaType> |
javaTypes
Map of java types, keyed by the class name.
|
protected NucleusContext |
nucCtx |
protected Map<String,TypeConverter> |
typeConverterByName
Map of TypeConverter keyed by their symbolic name.
|
protected Map<TypeConverter,Class> |
typeConverterDatastoreTypeByConverter
Cache of TypeConverter datastore type, keyed by the converter.
|
protected Map<Class,Map<Class,TypeConverter>> |
typeConverterMap
Map of (Map of TypeConverter keyed by the datastore type), keyed by the member type.
|
protected Map<TypeConverter,Class> |
typeConverterMemberTypeByConverter
Cache of TypeConverter member type, keyed by the converter.
|
Constructor and Description |
---|
TypeManagerImpl(NucleusContext nucCtx)
Constructor, loading support for type mappings using the plugin mechanism.
|
Modifier and Type | Method and Description |
---|---|
void |
close() |
String[] |
filterOutSupportedSecondClassNames(String[] inputClassNames)
Convenience method to filter out any supported classes from a list.
|
protected org.datanucleus.store.types.TypeManagerImpl.JavaType |
findJavaTypeForClass(Class cls)
Convenience method to return the JavaType for the specified class.
|
protected org.datanucleus.store.types.TypeManagerImpl.JavaType |
findJavaTypeForCollectionClass(Class cls,
Class genericType)
Convenience method to return the JavaType for the specified class.
|
TypeConverter |
getAutoApplyTypeConverterForType(Class memberType)
Method to return a TypeConverter that should be applied by default for the specified java (member) type.
|
protected ClassLoaderResolver |
getClassLoaderResolver() |
ContainerAdapter |
getContainerAdapter(Object container)
Convenience method to obtain the ContainerAdapter using the container object instance
|
<H extends ContainerHandler> |
getContainerHandler(Class containerClass)
Obtains the registered ContainerHandler for the given containerClass.
|
Class |
getDatastoreTypeForTypeConverter(TypeConverter conv,
Class memberType)
Method to return the datastore type for the specified TypeConverter.
|
TypeConverter |
getDefaultTypeConverterForType(Class memberType)
Accessor for the default type converter for the provided Java type.
|
Class |
getMemberTypeForTypeConverter(TypeConverter conv,
Class datastoreType)
Method to return the member type for the specified TypeConverter.
|
Set<String> |
getSupportedSecondClassTypes()
Accessor for the supported second-class Types.
|
TypeConverter |
getTypeConverterForName(String converterName)
Accessor for the type converter with the provided name.
|
TypeConverter |
getTypeConverterForType(Class memberType,
Class datastoreType)
Accessor for the type converter for the provided Java type and its datastore type.
|
Collection<TypeConverter> |
getTypeConvertersForType(Class memberType)
Accessor for the available type converters for the provided Java type.
|
Class |
getTypeForSecondClassWrapper(String className)
Accessor for a java type that the supplied class is a SCO wrapper for.
|
Class |
getWrappedTypeBackedForType(String className)
Accessor for the backing-store Second Class Wrapper class for the supplied class.
|
Class |
getWrapperTypeForType(String className)
Accessor for the SCO wrapper for the type
|
boolean |
isDefaultEmbeddedType(Class c)
Accessor for whether the type is by default embedded.
|
boolean |
isDefaultFetchGroup(Class c)
Accessor for whether the type is by default in the DFG.
|
boolean |
isDefaultFetchGroupForCollection(Class c,
Class genericType)
Accessor for whether the generic collection type is by default in the DFG.
|
boolean |
isDefaultPersistent(Class c)
Accessor for whether the type is by default persistent.
|
boolean |
isSecondClassMutableType(String className)
Accessor for whether the type is SCO mutable.
|
boolean |
isSecondClassWrapper(String className)
Accessor for whether the type is a SCO wrapper itself.
|
boolean |
isSupportedSecondClassType(String className)
Accessor for whether a class is supported as being second class.
|
void |
registerConverter(String name,
TypeConverter converter,
Class memberType,
Class dbType,
boolean autoApply,
String autoApplyType)
Register a TypeConverter with the TypeManager process for specific attribute/db types.
|
void |
setDefaultTypeConverterForType(Class memberType,
String converterName)
Method providing the ability for a datastore plugin to override the default converter type for the specified java type.
|
protected NucleusContext nucCtx
protected transient ClassLoaderResolver clr
protected Map<String,org.datanucleus.store.types.TypeManagerImpl.JavaType> javaTypes
protected Map<Class,? super ContainerHandler> containerHandlersByClass
protected Map<String,TypeConverter> typeConverterByName
protected Map<String,TypeConverter> autoApplyConvertersByType
protected Map<Class,Map<Class,TypeConverter>> typeConverterMap
protected Map<TypeConverter,Class> typeConverterDatastoreTypeByConverter
protected Map<TypeConverter,Class> typeConverterMemberTypeByConverter
public TypeManagerImpl(NucleusContext nucCtx)
nucCtx
- NucleusContextpublic void close()
close
in interface TypeManager
protected ClassLoaderResolver getClassLoaderResolver()
public Set<String> getSupportedSecondClassTypes()
TypeManager
getSupportedSecondClassTypes
in interface TypeManager
public boolean isSupportedSecondClassType(String className)
TypeManager
isSupportedSecondClassType
in interface TypeManager
className
- The class namepublic String[] filterOutSupportedSecondClassNames(String[] inputClassNames)
TypeManager
filterOutSupportedSecondClassNames
in interface TypeManager
inputClassNames
- Names of the classespublic boolean isDefaultPersistent(Class c)
TypeManager
isDefaultPersistent
in interface TypeManager
c
- The typepublic boolean isDefaultFetchGroup(Class c)
TypeManager
isDefaultFetchGroup
in interface TypeManager
c
- The typepublic boolean isDefaultFetchGroupForCollection(Class c, Class genericType)
TypeManager
isDefaultFetchGroupForCollection
in interface TypeManager
c
- The typegenericType
- The element generic typepublic boolean isDefaultEmbeddedType(Class c)
TypeManager
isDefaultEmbeddedType
in interface TypeManager
c
- The typepublic boolean isSecondClassMutableType(String className)
TypeManager
isSecondClassMutableType
in interface TypeManager
className
- The typepublic Class getWrapperTypeForType(String className)
TypeManager
getWrapperTypeForType
in interface TypeManager
className
- The typepublic Class getWrappedTypeBackedForType(String className)
TypeManager
getWrappedTypeBackedForType
in interface TypeManager
className
- The class namepublic boolean isSecondClassWrapper(String className)
TypeManager
isSecondClassWrapper
in interface TypeManager
className
- The typepublic Class getTypeForSecondClassWrapper(String className)
TypeManager
getTypeForSecondClassWrapper
in interface TypeManager
className
- Name of the classpublic ContainerAdapter getContainerAdapter(Object container)
TypeManager
getContainerAdapter
in interface TypeManager
container
- The container instancepublic <H extends ContainerHandler> H getContainerHandler(Class containerClass)
TypeManager
getContainerHandler
in interface TypeManager
H
- Handler typecontainerClass
- The class of the container.public TypeConverter getTypeConverterForName(String converterName)
TypeManager
getTypeConverterForName
in interface TypeManager
converterName
- Name of the converterpublic void registerConverter(String name, TypeConverter converter, Class memberType, Class dbType, boolean autoApply, String autoApplyType)
TypeManager
registerConverter
in interface TypeManager
name
- The name to register the converter underconverter
- The convertermemberType
- Type of the java memberdbType
- Type of the database columnautoApply
- Whether this should be used as an auto-apply converterautoApplyType
- Java type to auto apply this forpublic TypeConverter getAutoApplyTypeConverterForType(Class memberType)
TypeManager
getAutoApplyTypeConverterForType
in interface TypeManager
memberType
- The java (member) typepublic void setDefaultTypeConverterForType(Class memberType, String converterName)
TypeManager
setDefaultTypeConverterForType
in interface TypeManager
memberType
- Member typeconverterName
- The converter to use by default. This is assumed to exist.public TypeConverter getDefaultTypeConverterForType(Class memberType)
TypeManager
getDefaultTypeConverterForType
in interface TypeManager
memberType
- Java type for the memberpublic TypeConverter getTypeConverterForType(Class memberType, Class datastoreType)
TypeManager
getTypeConverterForType
in interface TypeManager
memberType
- Java type for the memberdatastoreType
- Java type for the datastorepublic Collection<TypeConverter> getTypeConvertersForType(Class memberType)
TypeManager
getTypeConvertersForType
in interface TypeManager
memberType
- The java typepublic Class getDatastoreTypeForTypeConverter(TypeConverter conv, Class memberType)
getDatastoreTypeForTypeConverter
in interface TypeManager
conv
- The convertermemberType
- The member typepublic Class getMemberTypeForTypeConverter(TypeConverter conv, Class datastoreType)
getMemberTypeForTypeConverter
in interface TypeManager
conv
- The converterdatastoreType
- The datastore type for this converterprotected org.datanucleus.store.types.TypeManagerImpl.JavaType findJavaTypeForClass(Class cls)
cls
- The class requiredprotected org.datanucleus.store.types.TypeManagerImpl.JavaType findJavaTypeForCollectionClass(Class cls, Class genericType)
cls
- The class requiredgenericType
- Any generic type specified for the elementCopyright © 2018. All rights reserved.