Class QueryableDatatypeSyncer

  • All Implemented Interfaces:
    java.io.Serializable
    Direct Known Subclasses:
    SimpleValueQueryableDatatypeSyncer

    public class QueryableDatatypeSyncer
    extends java.lang.Object
    implements java.io.Serializable
    Allows synchronizations to be done between two QueryableDatatypes, based on a Type Adaptor.

    Support DBvolution at Patreon

    Author:
    Malcolm Lett
    See Also:
    Serialized Form
    • 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 messages
        internalQdtType - internalQdtType
        internalQdtLiteralType - internalQdtLiteralType
        externalSimpleType - externalSimpleType
        typeAdaptor - 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 null

        Support 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 - externalQdt

        Support 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 QDT
        internalValue - the internal value