Class EmbeddedMapping

Direct Known Subclasses:
EmbeddedElementPCMapping, EmbeddedKeyPCMapping, EmbeddedPCMapping, EmbeddedValuePCMapping

public abstract class EmbeddedMapping extends SingleFieldMapping
Mapping for an embedded PC object. The PC object can be embedded directly (1-1 relation) or be the element of a collection/array, or be the key/value of a map.

Note that the mmd can be for the override of an embedded member rather than for the basic member itself. This can be the source of problems when nested. Refer to

getRealMemberMetaData
for the (base) metadata of the member that is embedded.
  • Field Details

    • discrimMetaData

      protected org.datanucleus.metadata.DiscriminatorMetaData discrimMetaData
    • discrimMapping

      protected DiscriminatorMapping discrimMapping
      Mapping for a discriminator (when supporting inherited embedded objects.
    • javaTypeMappings

      protected List<JavaTypeMapping> javaTypeMappings
      Mappings of the fields of the embedded PC.
    • clr

      protected org.datanucleus.ClassLoaderResolver clr
      ClassLoader resolver
    • emd

      protected org.datanucleus.metadata.EmbeddedMetaData emd
      EmbeddedMetaData for the object being embedded.
    • typeName

      protected String typeName
      Type name for the object being embedded.
    • objectType

      protected org.datanucleus.PersistableObjectType objectType
    • embCmd

      protected org.datanucleus.metadata.AbstractClassMetaData embCmd
      MetaData for the embedded class.
  • Constructor Details

    • EmbeddedMapping

      public EmbeddedMapping()
  • Method Details

    • initialize

      public void initialize(org.datanucleus.metadata.AbstractMemberMetaData mmd, Table table, org.datanucleus.ClassLoaderResolver clr)
      Initialize this JavaTypeMapping with the given DatastoreAdapter for the given FieldMetaData.
      Overrides:
      initialize in class SingleFieldMapping
      Parameters:
      mmd - FieldMetaData for the field to be mapped (if any)
      table - The datastore container storing this mapping (if any)
      clr - the ClassLoaderResolver
      Throws:
      org.datanucleus.exceptions.NucleusException - if an error occurs
    • initialize

      public void initialize(org.datanucleus.metadata.AbstractMemberMetaData mmd, Table table, org.datanucleus.ClassLoaderResolver clr, org.datanucleus.metadata.EmbeddedMetaData emd, String typeName, org.datanucleus.PersistableObjectType objectType)
      Initialize for the specified member.
      Parameters:
      mmd - metadata for the embedded member
      table - Table for persisting this field
      clr - The ClassLoaderResolver
      emd - Embedded MetaData for the object being embedded
      typeName - type of the embedded PC object being stored
      objectType - Object type of the PC object being embedded
    • addMappingForMember

      private void addMappingForMember(org.datanucleus.metadata.AbstractClassMetaData embCmd, org.datanucleus.metadata.AbstractMemberMetaData embMmd, List<org.datanucleus.metadata.AbstractMemberMetaData> embmdMmds)
      Method to add a mapping for the specified member to this mapping.
      Parameters:
      embCmd - Class that the member belongs to
      embMmd - Member to be added
      embmdMmds - Metadata for embedded members in the "embedded" specification (if any)
    • prepareColumnMapping

      protected void prepareColumnMapping()
      Method to prepare a field mapping for use in the datastore. Overridden so it does nothing
      Overrides:
      prepareColumnMapping in class SingleFieldMapping
    • addJavaTypeMapping

      public void addJavaTypeMapping(JavaTypeMapping mapping)
      Add a new JavaTypeMapping to manage.
      Parameters:
      mapping - the JavaTypeMapping
    • getNumberOfJavaTypeMappings

      public int getNumberOfJavaTypeMappings()
      Accessor for the number of java type mappings
      Returns:
      Number of java type mappings of the fields of the embedded PC element
    • getJavaTypeMapping

      public JavaTypeMapping getJavaTypeMapping(int i)
      Accessor for the java type mappings
      Parameters:
      i - the index position of the java type mapping
      Returns:
      the java type mapping
    • getJavaTypeMapping

      public JavaTypeMapping getJavaTypeMapping(String fieldName)
      Accessor for the sub type mapping for a particular field name
      Parameters:
      fieldName - The field name
      Returns:
      The type mapping for that field in the embedded object
    • getDiscriminatorMapping

      public JavaTypeMapping getDiscriminatorMapping()
    • setObject

      public void setObject(org.datanucleus.ExecutionContext ec, PreparedStatement ps, int[] param, Object value)
      Mutator for the embedded object in the datastore.
      Overrides:
      setObject in class SingleFieldMapping
      Parameters:
      ec - execution context
      ps - The Prepared Statement
      param - Param numbers in the PreparedStatement for the fields of this object
      value - The embedded object to use
    • setObject

      public void setObject(org.datanucleus.ExecutionContext ec, PreparedStatement ps, int[] param, Object value, org.datanucleus.state.DNStateManager ownerSM, int ownerFieldNumber)
      Mutator for the embedded object in the datastore.
      Overrides:
      setObject in class JavaTypeMapping
      Parameters:
      ec - ExecutionContext
      ps - The Prepared Statement
      param - Param numbers in the PreparedStatement for the fields of this object
      value - The embedded object to use
      ownerSM - StateManager of the owning object containing this embedded object
      ownerFieldNumber - Field number in the owning object where this is stored
    • getObject

      public Object getObject(org.datanucleus.ExecutionContext ec, ResultSet rs, int[] param)
      Accessor for the embedded object from the result set
      Overrides:
      getObject in class SingleFieldMapping
      Parameters:
      ec - ExecutionContext
      rs - The ResultSet
      param - Array of param numbers in the ResultSet for the fields of this object
      Returns:
      The embedded object
    • getObject

      public Object getObject(org.datanucleus.ExecutionContext ec, ResultSet rs, int[] param, org.datanucleus.state.DNStateManager ownerSM, int ownerFieldNumber)
      Accessor for the embedded object from the result set
      Overrides:
      getObject in class JavaTypeMapping
      Parameters:
      ec - ExecutionContext
      rs - The ResultSet
      param - Array of param numbers in the ResultSet for the fields of this object
      ownerSM - StateManager of the owning object containing this embedded object
      ownerFieldNumber - Field number in the owning object where this is stored
      Returns:
      The embedded object
    • getJavaType

      public Class getJavaType()
      Accessor for the Java type being represented here.
      Specified by:
      getJavaType in class JavaTypeMapping
      Returns:
      The Java type
    • getRealMemberMetaData

      public org.datanucleus.metadata.AbstractMemberMetaData getRealMemberMetaData()