Class JavaTypeMapping

  • Direct Known Subclasses:
    MultiMapping, SerialisedLocalFileMapping, SingleCollectionMapping, SingleFieldMapping, SingleFieldMultiMapping

    public abstract class JavaTypeMapping
    extends Object
    Representation of the mapping of a Java type. The java type maps to one or more column mappings. This means that a field/property in a java class can be mapped to many columns in a table. A JavaTypeMapping can exist in 2 forms
    • Constructed for a field/property managed by a datastore container, and so has metadata/container information
    • Constructed to represent a parameter in a query, so has no metadata and container information.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected int absFieldNumber
      Absolute field number for this mapping.
      protected ColumnMapping[] columnMappings
      The Column mappings for this Java type.
      protected org.datanucleus.metadata.AbstractMemberMetaData mmd
      MetaData for the field/property that we are mapping.
      protected JavaTypeMapping referenceMapping
      Mapping of the reference on the end of a bidirectional association.
      protected org.datanucleus.metadata.FieldRole roleForMember
      Role of the mapping for the field.
      protected RDBMSStoreManager storeMgr
      StoreManager for the datastore being used.
      protected Table table
      The Table storing this mapping.
      protected String type
      Actual type being mapped
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected JavaTypeMapping()
      Create a new empty JavaTypeMapping.
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      void addColumnMapping​(ColumnMapping cm)
      Method to add a column mapping
      boolean equals​(Object obj)
      Equality operator.
      protected String failureMessage​(String method)
      Utility to output any error message.
      protected int getAbsoluteFieldNumber()  
      boolean getBoolean​(org.datanucleus.ExecutionContext ec, ResultSet rs, int[] exprIndex)
      Obtains a value from datastoreResults at position specified by exprIndex.
      byte getByte​(org.datanucleus.ExecutionContext ec, ResultSet rs, int[] exprIndex)
      Obtains a value from datastoreResults at position specified by exprIndex.
      char getChar​(org.datanucleus.ExecutionContext ec, ResultSet rs, int[] exprIndex)
      Obtains a value from datastoreResults at position specified by exprIndex.
      ColumnMapping getColumnMapping​(int index)
      Accessor for a column mapping
      ColumnMapping[] getColumnMappings()
      Accessor for the column mappings for this java type
      protected static org.datanucleus.metadata.ColumnMetaData[] getColumnMetaDataForMember​(org.datanucleus.metadata.AbstractMemberMetaData mmd, org.datanucleus.metadata.FieldRole role)
      Convenience method to return the ColumnMetaData appropriate for this mapping.
      double getDouble​(org.datanucleus.ExecutionContext ec, ResultSet rs, int[] exprIndex)
      Obtains a value from datastoreResults at position specified by exprIndex.
      float getFloat​(org.datanucleus.ExecutionContext ec, ResultSet rs, int[] exprIndex)
      Obtains a value from datastoreResults at position specified by exprIndex.
      int getInt​(org.datanucleus.ExecutionContext ec, ResultSet rs, int[] exprIndex)
      Obtains a value from datastoreResults at position specified by exprIndex.
      abstract Class getJavaType()
      Accessor for the java type being mapped.
      String getJavaTypeForColumnMapping​(int index)
      Accessor for the name of the java-type actually used when mapping the particular column.
      long getLong​(org.datanucleus.ExecutionContext ec, ResultSet rs, int[] exprIndex)
      Obtains a value from datastoreResults at position specified by exprIndex.
      org.datanucleus.metadata.AbstractMemberMetaData getMemberMetaData()
      Accessor for the MetaData of the field/property being mapped.
      int getNumberOfColumnMappings()
      Accessor for the number of column mappings.
      Object getObject​(org.datanucleus.ExecutionContext ec, ResultSet rs, int[] exprIndex)
      Obtains a value from datastoreResults at position specified by exprIndex.
      Object getObject​(org.datanucleus.ExecutionContext ec, ResultSet rs, int[] exprIndex, org.datanucleus.state.ObjectProvider ownerOP, int ownerFieldNumber)
      Obtains a value from datastoreResults at position specified by exprIndex.
      JavaTypeMapping getReferenceMapping()
      Accessor for the mapping at the other end of a relation when this field is part of a 1-1, 1-N, M-N (bidirectional) relation.
      org.datanucleus.metadata.FieldRole getRoleForMember()
      Accessor for the role of this mapping for the field/property.
      short getShort​(org.datanucleus.ExecutionContext ec, ResultSet rs, int[] exprIndex)
      Obtains a value from datastoreResults at position specified by exprIndex.
      RDBMSStoreManager getStoreManager()  
      String getString​(org.datanucleus.ExecutionContext ec, ResultSet rs, int[] exprIndex)
      Obtains a value from datastoreResults at position specified by exprIndex.
      Table getTable()
      Accessor for the table.
      String getType()
      Accessor for the class name of the object that is being mapped here.
      Object getValueForColumnMapping​(org.datanucleus.NucleusContext nucleusCtx, int index, Object value)
      Method to return the value to be stored in the specified column index given the overall value for this java type.
      int hashCode()
      Hash code function.
      boolean hasSimpleDatastoreRepresentation()
      Whether the mapping has a simple (single column) datastore representation.
      boolean includeInFetchStatement()
      Accessor for whether this mapping is to be included in any fetch statement.
      boolean includeInInsertStatement()
      Accessor for whether this mapping is to be included in the insert statement.
      boolean includeInUpdateStatement()
      Accessor for whether this mapping is to be included in the update statement.
      void initialize​(org.datanucleus.metadata.AbstractMemberMetaData mmd, Table table, org.datanucleus.ClassLoaderResolver clr)
      Initialize this JavaTypeMapping for the supplied table and field/property metadata.
      void initialize​(RDBMSStoreManager storeMgr, String type)
      Initialise this JavaTypeMapping with the given StoreManager for the given type.
      void insertPostProcessing​(org.datanucleus.state.ObjectProvider op)
      Perform any INSERT post processing as required by constituent ColumnMappings.
      boolean isNullable()
      Accessor for whether this mapping is nullable
      boolean isSerialised()
      Convenience method to return if the (part of the) field being represented by this mapping is serialised.
      boolean representableAsStringLiteralInStatement()
      The vast majority of types can be added to a (SQL) statement in their String form and the statement would operate ok.
      boolean requiresInsertPostProcessing()
      Accessor for whether any of the column mappings requires INSERT post processing.
      boolean requiresUpdatePostProcessing()
      Accessor for whether any of the column mappings requires UPDATE post processing.
      void setAbsFieldNumber​(int num)  
      void setBoolean​(org.datanucleus.ExecutionContext ec, PreparedStatement ps, int[] exprIndex, boolean value)
      Sets a value into datastoreStatement at position specified by exprIndex.
      void setByte​(org.datanucleus.ExecutionContext ec, PreparedStatement ps, int[] exprIndex, byte value)
      Sets a value into datastoreStatement at position specified by exprIndex.
      void setChar​(org.datanucleus.ExecutionContext ec, PreparedStatement ps, int[] exprIndex, char value)
      Sets a value into datastoreStatement at position specified by exprIndex.
      void setDouble​(org.datanucleus.ExecutionContext ec, PreparedStatement ps, int[] exprIndex, double value)
      Sets a value into datastoreStatement at position specified by exprIndex.
      void setFloat​(org.datanucleus.ExecutionContext ec, PreparedStatement ps, int[] exprIndex, float value)
      Sets a value into datastoreStatement at position specified by exprIndex.
      void setInt​(org.datanucleus.ExecutionContext ec, PreparedStatement ps, int[] exprIndex, int value)
      Sets a value into datastoreStatement at position specified by exprIndex.
      void setLong​(org.datanucleus.ExecutionContext ec, PreparedStatement ps, int[] exprIndex, long value)
      Sets a value into datastoreStatement at position specified by exprIndex.
      void setMemberMetaData​(org.datanucleus.metadata.AbstractMemberMetaData mmd)
      Method to set the metadata of the member for which this mapping applies.
      void setObject​(org.datanucleus.ExecutionContext ec, PreparedStatement ps, int[] exprIndex, Object value)
      Sets a value into datastoreStatement at position specified by exprIndex.
      void setObject​(org.datanucleus.ExecutionContext ec, PreparedStatement ps, int[] exprIndex, Object value, org.datanucleus.state.ObjectProvider ownerOP, int ownerFieldNumber)
      Sets a value into datastoreStatement at position specified by exprIndex.
      void setReferenceMapping​(JavaTypeMapping referenceMapping)
      Method to set the mapping at the other end of the relation.
      void setRoleForMember​(org.datanucleus.metadata.FieldRole role)
      Method to set the role for the field/property.
      void setShort​(org.datanucleus.ExecutionContext ec, PreparedStatement ps, int[] exprIndex, short value)
      Sets a value into datastoreStatement at position specified by exprIndex.
      void setString​(org.datanucleus.ExecutionContext ec, PreparedStatement ps, int[] exprIndex, String value)
      Sets a value into datastoreStatement at position specified by exprIndex.
      void setTable​(Table table)  
      void updatePostProcessing​(org.datanucleus.state.ObjectProvider op)
      Perform any UPDATE post processing as required by constituent ColumnMappings.
    • Field Detail

      • mmd

        protected org.datanucleus.metadata.AbstractMemberMetaData mmd
        MetaData for the field/property that we are mapping. Null when it applies to a query parameter.
      • roleForMember

        protected org.datanucleus.metadata.FieldRole roleForMember
        Role of the mapping for the field. Whether it is for the field as a whole, or element of a collection field (in a join table), or key/value of a map field (in a join table).
      • columnMappings

        protected ColumnMapping[] columnMappings
        The Column mappings for this Java type.
      • table

        protected Table table
        The Table storing this mapping. Null when it applies to a query parameter.
      • storeMgr

        protected RDBMSStoreManager storeMgr
        StoreManager for the datastore being used.
      • type

        protected String type
        Actual type being mapped
      • referenceMapping

        protected JavaTypeMapping referenceMapping
        Mapping of the reference on the end of a bidirectional association. Only used when this mapping doesn't have columns, but the other side has.
      • absFieldNumber

        protected int absFieldNumber
        Absolute field number for this mapping. Will match "mmd" unless this is an embedded field.
    • Constructor Detail

      • JavaTypeMapping

        protected JavaTypeMapping()
        Create a new empty JavaTypeMapping. The caller must call one of the initialize() methods to initialise the instance with the DatastoreAdapter and its type. The combination of this empty constructor and one of the initialize() methods is used instead of parameterised constructors for efficiency purpose, both in execution time and code maintainability. See MappingFactory for how they are used. Concrete subclasses must have a publicly accessible empty constructor.
    • Method Detail

      • initialize

        public void initialize​(RDBMSStoreManager storeMgr,
                               String type)
        Initialise this JavaTypeMapping with the given StoreManager for the given type. Used when the mapping is for a parameter in a query. This will not set the "mmd" and "datastoreContainer" parameters. If these are required for usage of the mapping then you should call "setFieldInformation(AbstractMemberMetaData, DatastoreContainerObject)" below Subclasses should override this method to perform any datastore initialization operations.
        Parameters:
        storeMgr - The Datastore Adapter that this Mapping should use.
        type - The Class that this mapping maps to the database.
      • initialize

        public void initialize​(org.datanucleus.metadata.AbstractMemberMetaData mmd,
                               Table table,
                               org.datanucleus.ClassLoaderResolver clr)
        Initialize this JavaTypeMapping for the supplied table and field/property metadata. Subclasses should override this method to perform any datastore initialization operations. Assumes the "roleForMember" is already set
        Parameters:
        mmd - MetaData for the field/property to be mapped (if any)
        table - The table storing this mapping (if any)
        clr - the ClassLoaderResolver
      • hashCode

        public int hashCode()
        Hash code function.
        Overrides:
        hashCode in class Object
        Returns:
        The hash code for this object
      • equals

        public boolean equals​(Object obj)
        Equality operator.
        Overrides:
        equals in class Object
        Parameters:
        obj - Object to compare against
        Returns:
        Whether they are equal
      • setMemberMetaData

        public void setMemberMetaData​(org.datanucleus.metadata.AbstractMemberMetaData mmd)
        Method to set the metadata of the member for which this mapping applies. For use where the mapping was created for a particular type (using the initialize(StoreManager, String) and we now have the member that it applies for.
        Parameters:
        mmd - Field/Property MetaData
      • getMemberMetaData

        public org.datanucleus.metadata.AbstractMemberMetaData getMemberMetaData()
        Accessor for the MetaData of the field/property being mapped. Will be null if this mapping is for a literal in a query.
        Returns:
        Returns the metadata for the field or property
      • setTable

        public void setTable​(Table table)
      • getTable

        public Table getTable()
        Accessor for the table. Will be null if this mapping is for a literal in a query.
        Returns:
        The datastore class containing this mapped field.
      • getRoleForMember

        public org.datanucleus.metadata.FieldRole getRoleForMember()
        Accessor for the role of this mapping for the field/property.
        Returns:
        Role of this mapping for the field/property
      • setRoleForMember

        public void setRoleForMember​(org.datanucleus.metadata.FieldRole role)
        Method to set the role for the field/property. Should be called before initialize().
        Parameters:
        role - Role for field/property.
      • getAbsoluteFieldNumber

        protected int getAbsoluteFieldNumber()
      • setAbsFieldNumber

        public void setAbsFieldNumber​(int num)
      • isSerialised

        public boolean isSerialised()
        Convenience method to return if the (part of the) field being represented by this mapping is serialised.
        Returns:
        Whether to use Java serialisation
      • isNullable

        public boolean isNullable()
        Accessor for whether this mapping is nullable
        Returns:
        Whether it is nullable
      • hasSimpleDatastoreRepresentation

        public boolean hasSimpleDatastoreRepresentation()
        Whether the mapping has a simple (single column) datastore representation.
        Returns:
        Whether it has a simple datastore representation (single column)
      • representableAsStringLiteralInStatement

        public boolean representableAsStringLiteralInStatement()
        The vast majority of types can be added to a (SQL) statement in their String form and the statement would operate ok. Some types (e.g spatial types) cannot be used in their String form in a statement, so have to be represented as parameters to the statement.
        Returns:
        Whether a literal of this type can be considered in its String form (otherwise has to be a parameter).
      • getColumnMappings

        public ColumnMapping[] getColumnMappings()
        Accessor for the column mappings for this java type
        Returns:
        The column mapping(s)
      • getColumnMapping

        public ColumnMapping getColumnMapping​(int index)
        Accessor for a column mapping
        Parameters:
        index - The id of the column
        Returns:
        The column mapping
      • addColumnMapping

        public void addColumnMapping​(ColumnMapping cm)
        Method to add a column mapping
        Parameters:
        cm - The column mapping
      • getNumberOfColumnMappings

        public int getNumberOfColumnMappings()
        Accessor for the number of column mappings.
        Returns:
        the number of column mappings
      • getValueForColumnMapping

        public Object getValueForColumnMapping​(org.datanucleus.NucleusContext nucleusCtx,
                                               int index,
                                               Object value)
        Method to return the value to be stored in the specified column index given the overall value for this java type. All multi-column mappings must override this.
        Parameters:
        nucleusCtx - Context
        index - The datastore index
        value - The overall value for this java type
        Returns:
        The value for this datastore index
      • getReferenceMapping

        public JavaTypeMapping getReferenceMapping()
        Accessor for the mapping at the other end of a relation when this field is part of a 1-1, 1-N, M-N (bidirectional) relation. Will be null otherwise.
        Returns:
        The mapping at the other end.
      • setReferenceMapping

        public void setReferenceMapping​(JavaTypeMapping referenceMapping)
        Method to set the mapping at the other end of the relation. Only used when part of a (bidirectional) relation.
        Parameters:
        referenceMapping - The mapping at the other end
      • getJavaType

        public abstract Class getJavaType()
        Accessor for the java type being mapped. This is the java type that the mapping represents. Some examples :
        • if the field is of type "MyClass" then the mapping will be OIDMapping (or subclass) the javaType will be OID, and the type will be MyClass.
        • if the field is of type "int" then the mapping will be IntegerMapping, the javaType will be Integer, and the type will be int.
        The "java type" is the java-type name used in the plugin.xml mapping file
        Returns:
        The java type
      • getJavaTypeForColumnMapping

        public String getJavaTypeForColumnMapping​(int index)
        Accessor for the name of the java-type actually used when mapping the particular column. This java-type must have an entry in the column mappings. The default implementation throws an UnsupportedOperationException.
        Parameters:
        index - requested column index.
        Returns:
        the name of java-type for the requested column.
      • getType

        public String getType()
        Accessor for the class name of the object that is being mapped here. There are mainly two situations:
        • For a JavaTypeMapping that maps a persistable class field, this will return the type of the field. For example with a field of type "MyClass" this will return "MyClass"
        • For a JavaTypeMapping that maps a variable or parameter in a query, this will return the type declared in the query.
        Returns:
        The actual type that this Mapping maps.
      • includeInFetchStatement

        public boolean includeInFetchStatement()
        Accessor for whether this mapping is to be included in any fetch statement.
        Returns:
        Whether to include this mapping in a fetch statement
      • includeInUpdateStatement

        public boolean includeInUpdateStatement()
        Accessor for whether this mapping is to be included in the update statement.
        Returns:
        Whether to include in update statement
      • includeInInsertStatement

        public boolean includeInInsertStatement()
        Accessor for whether this mapping is to be included in the insert statement.
        Returns:
        Whether to include in insert statement
      • failureMessage

        protected String failureMessage​(String method)
        Utility to output any error message.
        Parameters:
        method - The method that failed.
        Returns:
        the localised failure message
      • setBoolean

        public void setBoolean​(org.datanucleus.ExecutionContext ec,
                               PreparedStatement ps,
                               int[] exprIndex,
                               boolean value)
        Sets a value into datastoreStatement at position specified by exprIndex.
        Parameters:
        ec - ExecutionContext
        ps - PreparedStatement
        exprIndex - the position of the value in the statement
        value - the value
      • getBoolean

        public boolean getBoolean​(org.datanucleus.ExecutionContext ec,
                                  ResultSet rs,
                                  int[] exprIndex)
        Obtains a value from datastoreResults at position specified by exprIndex.
        Parameters:
        ec - ExecutionContext
        rs - ResultSet
        exprIndex - the position of the value in the result
        Returns:
        the value
      • setChar

        public void setChar​(org.datanucleus.ExecutionContext ec,
                            PreparedStatement ps,
                            int[] exprIndex,
                            char value)
        Sets a value into datastoreStatement at position specified by exprIndex.
        Parameters:
        ec - ExecutionContext
        ps - PreparedStatement
        exprIndex - the position of the value in the statement
        value - the value
      • getChar

        public char getChar​(org.datanucleus.ExecutionContext ec,
                            ResultSet rs,
                            int[] exprIndex)
        Obtains a value from datastoreResults at position specified by exprIndex.
        Parameters:
        ec - ExecutionContext
        rs - ResultSet
        exprIndex - the position of the value in the result
        Returns:
        the value
      • setByte

        public void setByte​(org.datanucleus.ExecutionContext ec,
                            PreparedStatement ps,
                            int[] exprIndex,
                            byte value)
        Sets a value into datastoreStatement at position specified by exprIndex.
        Parameters:
        ec - ExecutionContext
        ps - PreparedStatement
        exprIndex - the position of the value in the statement
        value - the value
      • getByte

        public byte getByte​(org.datanucleus.ExecutionContext ec,
                            ResultSet rs,
                            int[] exprIndex)
        Obtains a value from datastoreResults at position specified by exprIndex.
        Parameters:
        ec - ExecutionContext
        rs - ResultSet
        exprIndex - the position of the value in the result
        Returns:
        the value
      • setShort

        public void setShort​(org.datanucleus.ExecutionContext ec,
                             PreparedStatement ps,
                             int[] exprIndex,
                             short value)
        Sets a value into datastoreStatement at position specified by exprIndex.
        Parameters:
        ec - execution context
        ps - PreparedStatement
        exprIndex - the position of the value in the statement
        value - the value
      • getShort

        public short getShort​(org.datanucleus.ExecutionContext ec,
                              ResultSet rs,
                              int[] exprIndex)
        Obtains a value from datastoreResults at position specified by exprIndex.
        Parameters:
        ec - ExecutionContext
        rs - ResultSet
        exprIndex - the position of the value in the result
        Returns:
        the value
      • setInt

        public void setInt​(org.datanucleus.ExecutionContext ec,
                           PreparedStatement ps,
                           int[] exprIndex,
                           int value)
        Sets a value into datastoreStatement at position specified by exprIndex.
        Parameters:
        ec - ExecutionContext
        ps - PreparedStatement
        exprIndex - the position of the value in the statement
        value - the value
      • getInt

        public int getInt​(org.datanucleus.ExecutionContext ec,
                          ResultSet rs,
                          int[] exprIndex)
        Obtains a value from datastoreResults at position specified by exprIndex.
        Parameters:
        ec - ExecutionContext
        rs - ResultSet
        exprIndex - the position of the value in the result
        Returns:
        the value
      • setLong

        public void setLong​(org.datanucleus.ExecutionContext ec,
                            PreparedStatement ps,
                            int[] exprIndex,
                            long value)
        Sets a value into datastoreStatement at position specified by exprIndex.
        Parameters:
        ec - ExecutionContext
        ps - PreparedStatement
        exprIndex - the position of the value in the statement
        value - the value
      • getLong

        public long getLong​(org.datanucleus.ExecutionContext ec,
                            ResultSet rs,
                            int[] exprIndex)
        Obtains a value from datastoreResults at position specified by exprIndex.
        Parameters:
        ec - ExecutionContext
        rs - ResultSet
        exprIndex - the position of the value in the result
        Returns:
        the value
      • setFloat

        public void setFloat​(org.datanucleus.ExecutionContext ec,
                             PreparedStatement ps,
                             int[] exprIndex,
                             float value)
        Sets a value into datastoreStatement at position specified by exprIndex.
        Parameters:
        ec - ExecutionContext
        ps - PreparedStatement
        exprIndex - the position of the value in the statement
        value - the value
      • getFloat

        public float getFloat​(org.datanucleus.ExecutionContext ec,
                              ResultSet rs,
                              int[] exprIndex)
        Obtains a value from datastoreResults at position specified by exprIndex.
        Parameters:
        ec - ExecutionContext
        rs - ResultSet
        exprIndex - the position of the value in the result
        Returns:
        the value
      • setDouble

        public void setDouble​(org.datanucleus.ExecutionContext ec,
                              PreparedStatement ps,
                              int[] exprIndex,
                              double value)
        Sets a value into datastoreStatement at position specified by exprIndex.
        Parameters:
        ec - ExecutionContext
        ps - PreparedStatement
        exprIndex - the position of the value in the statement
        value - the value
      • getDouble

        public double getDouble​(org.datanucleus.ExecutionContext ec,
                                ResultSet rs,
                                int[] exprIndex)
        Obtains a value from datastoreResults at position specified by exprIndex.
        Parameters:
        ec - ExecutionContext
        rs - ResultSet
        exprIndex - the position of the value in the result
        Returns:
        the value
      • setString

        public void setString​(org.datanucleus.ExecutionContext ec,
                              PreparedStatement ps,
                              int[] exprIndex,
                              String value)
        Sets a value into datastoreStatement at position specified by exprIndex.
        Parameters:
        ec - ExecutionContext
        ps - PreparedStatement
        exprIndex - the position of the value in the statement
        value - the value
      • getString

        public String getString​(org.datanucleus.ExecutionContext ec,
                                ResultSet rs,
                                int[] exprIndex)
        Obtains a value from datastoreResults at position specified by exprIndex.
        Parameters:
        ec - ExecutionContext
        rs - ResultSet
        exprIndex - the position of the value in the result
        Returns:
        the value
      • setObject

        public void setObject​(org.datanucleus.ExecutionContext ec,
                              PreparedStatement ps,
                              int[] exprIndex,
                              Object value,
                              org.datanucleus.state.ObjectProvider ownerOP,
                              int ownerFieldNumber)
        Sets a value into datastoreStatement at position specified by exprIndex.
        Parameters:
        ec - ExecutionContext
        ps - PreparedStatement
        exprIndex - the position of the value in the statement
        value - the value
        ownerOP - the owner ObjectProvider
        ownerFieldNumber - the owner absolute field number
      • setObject

        public void setObject​(org.datanucleus.ExecutionContext ec,
                              PreparedStatement ps,
                              int[] exprIndex,
                              Object value)
        Sets a value into datastoreStatement at position specified by exprIndex.
        Parameters:
        ec - ExecutionContext
        ps - PreparedStatement
        exprIndex - the position of the value in the statement
        value - the value
      • getObject

        public Object getObject​(org.datanucleus.ExecutionContext ec,
                                ResultSet rs,
                                int[] exprIndex,
                                org.datanucleus.state.ObjectProvider ownerOP,
                                int ownerFieldNumber)
        Obtains a value from datastoreResults at position specified by exprIndex.
        Parameters:
        ec - ExecutionContext
        rs - an object returned from the datastore with values
        exprIndex - the position of the value in the result
        ownerOP - the owner ObjectProvider
        ownerFieldNumber - the owner absolute field number
        Returns:
        the value
      • getObject

        public Object getObject​(org.datanucleus.ExecutionContext ec,
                                ResultSet rs,
                                int[] exprIndex)
        Obtains a value from datastoreResults at position specified by exprIndex.
        Parameters:
        ec - ExecutionContext
        rs - ResultSet
        exprIndex - the position of the value in the result
        Returns:
        the value
      • getColumnMetaDataForMember

        protected static org.datanucleus.metadata.ColumnMetaData[] getColumnMetaDataForMember​(org.datanucleus.metadata.AbstractMemberMetaData mmd,
                                                                                              org.datanucleus.metadata.FieldRole role)
        Convenience method to return the ColumnMetaData appropriate for this mapping. If the mapping is in a join table then picks the correct component for the column definition.
        Parameters:
        mmd - Metadata for the member
        role - The role this mapping plays for the specified member
        Returns:
        The column metadata (if any)
      • requiresInsertPostProcessing

        public boolean requiresInsertPostProcessing()
        Accessor for whether any of the column mappings requires INSERT post processing. TODO Not yet utilised, see RDBMS-14
        Returns:
        True if a column needs an INSERT post processing call
      • insertPostProcessing

        public void insertPostProcessing​(org.datanucleus.state.ObjectProvider op)
        Perform any INSERT post processing as required by constituent ColumnMappings. TODO Not yet utilised, see RDBMS-14
        Parameters:
        op - ObjectProvider of the object with this mapping
      • requiresUpdatePostProcessing

        public boolean requiresUpdatePostProcessing()
        Accessor for whether any of the column mappings requires UPDATE post processing. TODO Not yet utilised, see RDBMS-14
        Returns:
        True if a column needs an UPDATE post processing call
      • updatePostProcessing

        public void updatePostProcessing​(org.datanucleus.state.ObjectProvider op)
        Perform any UPDATE post processing as required by constituent ColumnMappings. TODO Not yet utilised, see RDBMS-14
        Parameters:
        op - ObjectProvider of the object with this mapping