Package org.javers.core.metamodel.type
Class CustomType<T>
- java.lang.Object
-
- org.javers.core.metamodel.type.JaversType
-
- org.javers.core.metamodel.type.CustomType<T>
-
- Type Parameters:
T- Custom Type
- All Implemented Interfaces:
CustomComparableType
public class CustomType<T> extends JaversType implements CustomComparableType
Custom Types are not easy to manage, use it as a last resort,
only for corner cases like comparing custom Collection types.
JaVers treats a Custom Type as a black box and doesn't take any assumptions about its content or behaviour. It's a "not modeled" type, somehow similar to unbounded wildcard<?>.
Objects of Custom Type are compared by aCustomPropertyComparator. Registering this comparator is the only way to map a Custom Type.
Custom Types are serialized to JSON using Gson defaults.
-
-
Field Summary
-
Fields inherited from class org.javers.core.metamodel.type.JaversType
DEFAULT_TYPE_PARAMETER
-
-
Constructor Summary
Constructors Constructor Description CustomType(java.lang.reflect.Type baseJavaType, CustomPropertyComparator<T,?> comparator)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleancanBePrototype()booleanequals(java.lang.Object left, java.lang.Object right)Used for comparing as Valuesjava.lang.ClassgetBaseJavaClass()protected java.lang.reflect.TypegetRawDehydratedType()Type for JSON representation.booleanhasCustomValueComparator()booleanisInstance(java.lang.Object cdo)java.lang.StringvalueToString(java.lang.Object value)-
Methods inherited from class org.javers.core.metamodel.type.JaversType
equals, getBaseJavaType, getConcreteClassTypeArguments, getName, hashCode, isGenericType, prettyPrint, prettyPrintBuilder, spawnConstructorArgs, spawnConstructorArgTypes, toString
-
-
-
-
Constructor Detail
-
CustomType
public CustomType(java.lang.reflect.Type baseJavaType, CustomPropertyComparator<T,?> comparator)
-
-
Method Detail
-
equals
public boolean equals(java.lang.Object left, java.lang.Object right)Description copied from class:JaversTypeUsed for comparing as Values- Overrides:
equalsin classJaversType
-
hasCustomValueComparator
public boolean hasCustomValueComparator()
- Specified by:
hasCustomValueComparatorin interfaceCustomComparableType
-
valueToString
public java.lang.String valueToString(java.lang.Object value)
- Specified by:
valueToStringin interfaceCustomComparableType
-
canBePrototype
public boolean canBePrototype()
- Specified by:
canBePrototypein classJaversType
-
isInstance
public boolean isInstance(java.lang.Object cdo)
- Specified by:
isInstancein classJaversType
-
getRawDehydratedType
protected java.lang.reflect.Type getRawDehydratedType()
Type for JSON representation. For Values it's simply baseJavaType. For ManagedTypes (references to Entities and ValueObjects) it's GlobalId because JaVers serializes references in the 'dehydrated' form.
-
getBaseJavaClass
public java.lang.Class getBaseJavaClass()
-
-