Package org.javers.core.metamodel.type
Class TypeMapper
- java.lang.Object
-
- org.javers.core.metamodel.type.TypeMapper
-
- All Implemented Interfaces:
TypeMapperLazy
public class TypeMapper extends java.lang.Object implements TypeMapperLazy
Maps Java types into Javers types
-
-
Constructor Summary
Constructors Modifier Constructor Description TypeMapper(ClassScanner classScanner, DynamicMappingStrategy dynamicMappingStrategy)
protected
TypeMapper(org.javers.core.metamodel.type.TypeFactory typeFactory, org.javers.core.metamodel.type.TypeMapperEngine engine)
Deprecated.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addPluginTypes(java.util.Collection<JaversType> jTypes)
java.lang.reflect.Type
getDehydratedType(java.lang.reflect.Type type)
Dehydrated type for JSON representationorg.javers.core.metamodel.type.ClassType
getJaversClassType(java.lang.reflect.Type javaType)
ManagedType
getJaversManagedType(java.lang.Class javaType)
If given javaClass is mapped to ManagedType, returns its JaversType<T extends ManagedType>
TgetJaversManagedType(java.lang.Class javaClass, java.lang.Class<T> expectedType)
If given javaClass is mapped to expected ManagedType, returns its JaversType<T extends ManagedType>
TgetJaversManagedType(java.lang.String typeName, java.lang.Class<T> expectedType)
ManagedType
getJaversManagedType(GlobalId globalId)
<T extends ManagedType>
TgetJaversManagedType(DuckType duckType, java.lang.Class<T> expectedType)
<T extends ManagedType>
java.util.Optional<T>getJaversManagedTypeMaybe(java.lang.String typeName, java.lang.Class<T> expectedType)
<T extends ManagedType>
java.util.Optional<T>getJaversManagedTypeMaybe(DuckType duckType, java.lang.Class<T> expectedType)
JaversType
getJaversType(java.lang.reflect.Type javaType)
Returns mapped type, spawns a new one from a prototype, or infers a new one using default mapping.<T extends JaversType>
TgetPropertyType(Property property)
boolean
isContainerOfManagedTypes(JaversType javersType)
is Set, List or Array of ManagedClassesboolean
isEnumerableOfManagedTypes(JaversType javersType)
boolean
isKeyValueTypeWithManagedTypes(JaversType enumerableType)
is Map (or Multimap) with ManagedClass on Key or Value positionboolean
isShallowReferenceType(java.lang.reflect.Type javaType)
void
registerClientsClass(ClientsClassDefinition def)
void
registerCoreTypes(CoreConfiguration javersCoreConfiguration)
Registers core types in the underlying TypeMapperEngine.
-
-
-
Constructor Detail
-
TypeMapper
public TypeMapper(ClassScanner classScanner, DynamicMappingStrategy dynamicMappingStrategy)
-
TypeMapper
@Deprecated protected TypeMapper(org.javers.core.metamodel.type.TypeFactory typeFactory, org.javers.core.metamodel.type.TypeMapperEngine engine)
Deprecated.For TypeMapperConcurrentTest only, no better idea how to writhe this test without additional constructor
-
-
Method Detail
-
registerCoreTypes
public void registerCoreTypes(CoreConfiguration javersCoreConfiguration)
Registers core types in the underlying TypeMapperEngine. Meant to be called by the JaversBuilder after ClientsClassDefinition(s) have been registered which may have registered custom value comparators too. In case a ClientsClassDefinition is already present, we assume that the client knew what he was doing because his ClientsClassDefinition will take precedence over whatever would have been registered as a core type.
-
isContainerOfManagedTypes
public boolean isContainerOfManagedTypes(JaversType javersType)
is Set, List or Array of ManagedClasses
-
isKeyValueTypeWithManagedTypes
public boolean isKeyValueTypeWithManagedTypes(JaversType enumerableType)
is Map (or Multimap) with ManagedClass on Key or Value position
-
isEnumerableOfManagedTypes
public boolean isEnumerableOfManagedTypes(JaversType javersType)
-
getJaversType
public JaversType getJaversType(java.lang.reflect.Type javaType)
Returns mapped type, spawns a new one from a prototype, or infers a new one using default mapping.- Specified by:
getJaversType
in interfaceTypeMapperLazy
-
isShallowReferenceType
public boolean isShallowReferenceType(java.lang.reflect.Type javaType)
-
getJaversClassType
public org.javers.core.metamodel.type.ClassType getJaversClassType(java.lang.reflect.Type javaType)
-
getJaversManagedType
public ManagedType getJaversManagedType(GlobalId globalId)
- Throws:
JaversException
- TYPE_NAME_NOT_FOUND if given typeName is not registered
-
getJaversManagedType
public <T extends ManagedType> T getJaversManagedType(java.lang.String typeName, java.lang.Class<T> expectedType)
- Throws:
JaversException
- TYPE_NAME_NOT_FOUND if given typeName is not registered
-
getJaversManagedType
public <T extends ManagedType> T getJaversManagedType(DuckType duckType, java.lang.Class<T> expectedType)
- Throws:
JaversException
- TYPE_NAME_NOT_FOUND if given typeName is not registered
-
getJaversManagedType
public ManagedType getJaversManagedType(java.lang.Class javaType)
If given javaClass is mapped to ManagedType, returns its JaversType- Throws:
JaversException
- MANAGED_CLASS_MAPPING_ERROR
-
getJaversManagedType
public <T extends ManagedType> T getJaversManagedType(java.lang.Class javaClass, java.lang.Class<T> expectedType)
If given javaClass is mapped to expected ManagedType, returns its JaversType- Throws:
JaversException
- MANAGED_CLASS_MAPPING_ERROR
-
getJaversManagedTypeMaybe
public <T extends ManagedType> java.util.Optional<T> getJaversManagedTypeMaybe(java.lang.String typeName, java.lang.Class<T> expectedType)
-
getJaversManagedTypeMaybe
public <T extends ManagedType> java.util.Optional<T> getJaversManagedTypeMaybe(DuckType duckType, java.lang.Class<T> expectedType)
-
getPropertyType
public <T extends JaversType> T getPropertyType(Property property)
-
registerClientsClass
public void registerClientsClass(ClientsClassDefinition def)
-
getDehydratedType
public java.lang.reflect.Type getDehydratedType(java.lang.reflect.Type type)
Dehydrated type for JSON representation
-
addPluginTypes
public void addPluginTypes(java.util.Collection<JaversType> jTypes)
-
-