Class EmbeddedMapping
- java.lang.Object
-
- org.datanucleus.store.rdbms.mapping.java.JavaTypeMapping
-
- org.datanucleus.store.rdbms.mapping.java.SingleFieldMapping
-
- org.datanucleus.store.rdbms.mapping.java.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 Summary
Fields Modifier and Type Field Description protected org.datanucleus.ClassLoaderResolver
clr
ClassLoader resolverprotected DiscriminatorMapping
discrimMapping
Mapping for a discriminator (when supporting inherited embedded objects.protected org.datanucleus.metadata.DiscriminatorMetaData
discrimMetaData
protected org.datanucleus.metadata.AbstractClassMetaData
embCmd
MetaData for the embedded class.protected org.datanucleus.metadata.EmbeddedMetaData
emd
EmbeddedMetaData for the object being embedded.protected List<JavaTypeMapping>
javaTypeMappings
Mappings of the fields of the embedded PC.protected org.datanucleus.PersistableObjectType
objectType
protected String
typeName
Type name for the object being embedded.-
Fields inherited from class org.datanucleus.store.rdbms.mapping.java.SingleFieldMapping
EXTENSION_CHECK_CONSTRAINT_VALUES
-
Fields inherited from class org.datanucleus.store.rdbms.mapping.java.JavaTypeMapping
absFieldNumber, columnMappings, mmd, referenceMapping, roleForMember, storeMgr, table, type
-
-
Constructor Summary
Constructors Constructor Description EmbeddedMapping()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addJavaTypeMapping(JavaTypeMapping mapping)
Add a new JavaTypeMapping to manage.JavaTypeMapping
getDiscriminatorMapping()
Class
getJavaType()
Accessor for the Java type being represented here.JavaTypeMapping
getJavaTypeMapping(int i)
Accessor for the java type mappingsJavaTypeMapping
getJavaTypeMapping(String fieldName)
Accessor for the sub type mapping for a particular field nameint
getNumberOfJavaTypeMappings()
Accessor for the number of java type mappingsObject
getObject(org.datanucleus.ExecutionContext ec, ResultSet rs, int[] param)
Accessor for the embedded object from the result setObject
getObject(org.datanucleus.ExecutionContext ec, ResultSet rs, int[] param, org.datanucleus.state.DNStateManager ownerSM, int ownerFieldNumber)
Accessor for the embedded object from the result setorg.datanucleus.metadata.AbstractMemberMetaData
getRealMemberMetaData()
void
initialize(org.datanucleus.metadata.AbstractMemberMetaData mmd, Table table, org.datanucleus.ClassLoaderResolver clr)
Initialize this JavaTypeMapping with the given DatastoreAdapter for the given FieldMetaData.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.protected void
prepareColumnMapping()
Method to prepare a field mapping for use in the datastore.void
setObject(org.datanucleus.ExecutionContext ec, PreparedStatement ps, int[] param, Object value)
Mutator for the embedded object in the datastore.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.-
Methods inherited from class org.datanucleus.store.rdbms.mapping.java.SingleFieldMapping
getBoolean, getByte, getChar, getDefaultLength, getDouble, getFloat, getInt, getJavaTypeForColumnMapping, getLong, getShort, getString, getValidValues, setBoolean, setByte, setChar, setDouble, setFloat, setInt, setLong, setShort, setString
-
Methods inherited from class org.datanucleus.store.rdbms.mapping.java.JavaTypeMapping
addColumnMapping, equals, failureMessage, getAbsoluteFieldNumber, getColumnMapping, getColumnMappings, getColumnMetaDataForMember, getMemberMetaData, getNumberOfColumnMappings, getReferenceMapping, getRoleForMember, getStoreManager, getTable, getType, getValueForColumnMapping, hashCode, hasSimpleDatastoreRepresentation, includeInFetchStatement, includeInInsertStatement, includeInUpdateStatement, initialize, isNullable, isSerialised, performSetPostProcessing, representableAsStringLiteralInStatement, requiresSetPostProcessing, setAbsFieldNumber, setMemberMetaData, setReferenceMapping, setRoleForMember, setTable
-
-
-
-
Field Detail
-
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.
-
-
Method Detail
-
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 classSingleFieldMapping
- Parameters:
table
- The datastore container storing this mapping (if any)clr
- the ClassLoaderResolvermmd
- FieldMetaData for the field to be mapped (if any)- 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 membertable
- Table for persisting this fieldclr
- The ClassLoaderResolveremd
- Embedded MetaData for the object being embeddedtypeName
- type of the embedded PC object being storedobjectType
- Object type of the PC object being embedded
-
prepareColumnMapping
protected void prepareColumnMapping()
Method to prepare a field mapping for use in the datastore. Overridden so it does nothing- Overrides:
prepareColumnMapping
in classSingleFieldMapping
-
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 classSingleFieldMapping
- Parameters:
ec
- execution contextps
- The Prepared Statementparam
- Param numbers in the PreparedStatement for the fields of this objectvalue
- 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 classJavaTypeMapping
- Parameters:
ec
- ExecutionContextps
- The Prepared Statementvalue
- The embedded object to useownerSM
- StateManager of the owning object containing this embedded objectownerFieldNumber
- Field number in the owning object where this is storedparam
- Param numbers in the PreparedStatement for the fields of this object
-
getObject
public Object getObject(org.datanucleus.ExecutionContext ec, ResultSet rs, int[] param)
Accessor for the embedded object from the result set- Overrides:
getObject
in classSingleFieldMapping
- Parameters:
ec
- ExecutionContextrs
- The ResultSetparam
- 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 classJavaTypeMapping
- Parameters:
ec
- ExecutionContextrs
- The ResultSetownerSM
- StateManager of the owning object containing this embedded objectownerFieldNumber
- Field number in the owning object where this is storedparam
- Array of param numbers in the ResultSet for the fields of this object- Returns:
- The embedded object
-
getJavaType
public Class getJavaType()
Accessor for the Java type being represented here.- Specified by:
getJavaType
in classJavaTypeMapping
- Returns:
- The Java type
-
getRealMemberMetaData
public org.datanucleus.metadata.AbstractMemberMetaData getRealMemberMetaData()
-
-