Package nz.co.gregs.dbvolution.datatypes
Class QueryableDatatypeSyncer
- java.lang.Object
-
- nz.co.gregs.dbvolution.datatypes.QueryableDatatypeSyncer
-
- All Implemented Interfaces:
java.io.Serializable
- Direct Known Subclasses:
SimpleValueQueryableDatatypeSyncer
public class QueryableDatatypeSyncer extends java.lang.Object implements java.io.SerializableAllows synchronizations to be done between two QueryableDatatypes, based on a Type Adaptor.Support DBvolution at Patreon
- Author:
- Malcolm Lett
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classQueryableDatatypeSyncer.DBSafeInternalQDTAdaptorOne-shot cycle-aware recursive QDT adaptor.
-
Constructor Summary
Constructors Constructor Description QueryableDatatypeSyncer(java.lang.String propertyName, java.lang.Class<? extends QueryableDatatype<?>> internalQdtType, java.lang.Class<?> internalQdtLiteralType, java.lang.Class<?> externalSimpleType, DBTypeAdaptor<java.lang.Object,java.lang.Object> typeAdaptor)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description QueryableDatatype<?>getInternalQueryableDatatype()supplies the QDT used internally, that is the QDT the represents the database's view of the data.protected SafeOneWaySimpleTypeAdaptorgetToExternalSimpleTypeAdaptor()Support DBvolution at Patreonprotected SafeOneWaySimpleTypeAdaptorgetToInternalSimpleTypeAdaptor()Support DBvolution at PatreonQueryableDatatype<?>setExternalFromInternalQDT(QueryableDatatype<?> externalQdt)Sets the provided external QDT from the internal QDT and returns the updated external QDT.QueryableDatatype<?>setInternalQDTFromExternalQDT(QueryableDatatype<?> externalQdt)Sets the cached internal QDT after adapting the value from the provided QDT.voidsetInternalQueryableDatatype(QueryableDatatype<?> internalQdt)Replaces the internal QDT with the one provided.protected static voidsetQDTValueUsingDangerousReflection(QueryableDatatype<?> internalQDT, java.lang.Object internalValue)
-
-
-
Constructor Detail
-
QueryableDatatypeSyncer
public QueryableDatatypeSyncer(java.lang.String propertyName, java.lang.Class<? extends QueryableDatatype<?>> internalQdtType, java.lang.Class<?> internalQdtLiteralType, java.lang.Class<?> externalSimpleType, DBTypeAdaptor<java.lang.Object,java.lang.Object> typeAdaptor)- Parameters:
propertyName- used in error messagesinternalQdtType- internalQdtTypeinternalQdtLiteralType- internalQdtLiteralTypeexternalSimpleType- externalSimpleTypetypeAdaptor- typeAdaptor typeAdaptor
-
-
Method Detail
-
getInternalQueryableDatatype
public QueryableDatatype<?> getInternalQueryableDatatype()
supplies the QDT used internally, that is the QDT the represents the database's view of the data.Support DBvolution at Patreon
- Returns:
- the internal QDT.
-
setInternalQueryableDatatype
public void setInternalQueryableDatatype(QueryableDatatype<?> internalQdt)
Replaces the internal QDT with the one provided. Validates that the provided QDT is of the correct type.- Parameters:
internalQdt- internalQdt
-
setInternalQDTFromExternalQDT
public QueryableDatatype<?> setInternalQDTFromExternalQDT(QueryableDatatype<?> externalQdt)
Sets the cached internal QDT after adapting the value from the provided QDT.- Parameters:
externalQdt- may be nullSupport DBvolution at Patreon
- Returns:
- the updated internal QDT
-
setExternalFromInternalQDT
public QueryableDatatype<?> setExternalFromInternalQDT(QueryableDatatype<?> externalQdt)
Sets the provided external QDT from the internal QDT and returns the updated external QDT.- Parameters:
externalQdt- externalQdtSupport DBvolution at Patreon
- Returns:
- the updated external QDT or null if the internal QDT is null
-
getToExternalSimpleTypeAdaptor
protected SafeOneWaySimpleTypeAdaptor getToExternalSimpleTypeAdaptor()
Support DBvolution at Patreon
- Returns:
- the toExternalSimpleTypeAdaptor
-
getToInternalSimpleTypeAdaptor
protected SafeOneWaySimpleTypeAdaptor getToInternalSimpleTypeAdaptor()
Support DBvolution at Patreon
- Returns:
- the toInternalSimpleTypeAdaptor
-
setQDTValueUsingDangerousReflection
protected static final void setQDTValueUsingDangerousReflection(QueryableDatatype<?> internalQDT, java.lang.Object internalValue)
- Parameters:
internalQDT- the internal QDTinternalValue- the internal value
-
-