Class TypeMapper

  • All Implemented Interfaces:
    TypeMapperLazy

    public class TypeMapper
    extends java.lang.Object
    implements TypeMapperLazy
    Maps Java types into Javers types
    • Constructor Detail

      • 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 interface TypeMapperLazy
      • 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 <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)
      • 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)