Class TypeMapper

java.lang.Object
org.javers.core.metamodel.type.TypeMapper
All Implemented Interfaces:
TypeMapperLazy

public class TypeMapper extends Object implements TypeMapperLazy
Maps Java types into Javers types
  • Constructor Details

    • 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 Details

    • registerCoreTypes

      public void registerCoreTypes(CoreConfiguration javersCoreConfiguration, Collection<ClientsClassDefinition> classesToSkip)
      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(Type javaType)
      Returns mapped type, spawns a new one from a prototype, or infers a new one using default mapping.
      Specified by:
      getJaversType in interface TypeMapperLazy
    • getJaversClassType

      public org.javers.core.metamodel.type.ClassType getJaversClassType(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(String typeName, Class<T> expectedType)
      Throws:
      JaversException - TYPE_NAME_NOT_FOUND if given typeName is not registered
    • getJaversManagedType

      public <T extends ManagedType> T getJaversManagedType(DuckType duckType, Class<T> expectedType)
      Throws:
      JaversException - TYPE_NAME_NOT_FOUND if given typeName is not registered
    • getJaversManagedType

      public ManagedType getJaversManagedType(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(Class javaClass, 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> Optional<T> getJaversManagedTypeMaybe(String typeName, Class<T> expectedType)
    • getJaversManagedTypeMaybe

      public <T extends ManagedType> Optional<T> getJaversManagedTypeMaybe(DuckType duckType, Class<T> expectedType)
    • getPropertyType

      public <T extends JaversType> T getPropertyType(Property property)
    • registerClientsClass

      public void registerClientsClass(ClientsClassDefinition def)
    • getDehydratedType

      public Type getDehydratedType(Type type)
      Dehydrated type for JSON representation
    • addPluginTypes

      public void addPluginTypes(Collection<JaversType> jTypes)