X - The type of the user typepublic interface BasicUserType<X>
| Modifier and Type | Field and Description |
|---|---|
static String[] |
DIRTY_MARKER
The object to return from
getDirtyProperties(Object) when unsure what properties are dirty. |
| Modifier and Type | Method and Description |
|---|---|
X |
deepClone(X object)
Clones the given object if the type is mutable to be able to detect mutations.
|
String[] |
getDirtyProperties(X object)
Returns the nested properties of the object that are known to be dirty.
|
int |
hashCode(X object)
Returns the hash code of the object for lookups in hash based collections.
|
boolean |
isDeepEqual(X object1,
X object2)
Returns
true if the given objects are equal regarding their values. |
boolean |
isEqual(X object1,
X object2)
Returns
true if the given objects are equal regarding their identity. |
boolean |
isMutable()
Returns
true if the type is mutable, false otherwise. |
boolean |
shouldPersist(X entity)
Returns
true if the given entity object should be persisted. |
boolean |
supportsDeepCloning()
Returns
true if the type supports creating deep clones, false otherwise. |
boolean |
supportsDeepEqualChecking()
Returns
true if the type supports checking deep equality, false otherwise. |
boolean |
supportsDirtyChecking()
Returns
true if the type supports dirty checking, false otherwise. |
boolean |
supportsDirtyTracking()
Returns
true if the type supports dirty tracking, false otherwise. |
static final String[] DIRTY_MARKER
getDirtyProperties(Object) when unsure what properties are dirty.boolean isMutable()
true if the type is mutable, false otherwise.boolean supportsDirtyChecking()
true if the type supports dirty checking, false otherwise.
This is only relevant when the type is also mutable.boolean supportsDirtyTracking()
true if the type supports dirty tracking, false otherwise.
Support for dirty tracking implies that the type implements the BasicDirtyTracker interface.
This is only relevant when the type is also mutable. Note that if this method returns true, the supportsDirtyChecking() method should also return true.boolean supportsDeepEqualChecking()
true if the type supports checking deep equality, false otherwise.
Deep equality checking, in contrast to normal equality checking, compares objects by their actual values rather than maybe just their identity.
For value types, deep equality checking is the same as normal equality checking.boolean supportsDeepCloning()
true if the type supports creating deep clones, false otherwise.
Deep clones are only necessary for mutable types that don't support dirty checking. Immutable types can simply return true.boolean isEqual(X object1, X object2)
true if the given objects are equal regarding their identity.
For value types, this is the same as deep equality checking.object1 - The first objectobject2 - The second objectboolean isDeepEqual(X object1, X object2)
true if the given objects are equal regarding their values.
If deep equality is not supported, returns false.object1 - The first objectobject2 - The second objectint hashCode(X object)
object - The objectboolean shouldPersist(X entity)
true if the given entity object should be persisted.
This is invoked for user types where the type T is an entity type.
If the type is not an entity type, returns false.entity - The entity for which to determine whether it should be persistedString[] getDirtyProperties(X object)
null is returned.
If the properties that are dirty aren't known or the type doesn't have nested properties,
an empty array or DIRTY_MARKER is returned.object - The object for which to determine the dirty propertiesX deepClone(X object)
false or dirty checking is properly supported.object - The object to cloneCopyright © 2014–2018 Blazebit. All rights reserved.