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.ClassLoaderResolverclrClassLoader resolverprotected DiscriminatorMappingdiscrimMappingMapping for a discriminator (when supporting inherited embedded objects.protected org.datanucleus.metadata.DiscriminatorMetaDatadiscrimMetaDataprotected org.datanucleus.metadata.AbstractClassMetaDataembCmdMetaData for the embedded class.protected org.datanucleus.metadata.EmbeddedMetaDataemdEmbeddedMetaData for the object being embedded.protected List<JavaTypeMapping>javaTypeMappingsMappings of the fields of the embedded PC.protected org.datanucleus.PersistableObjectTypeobjectTypeprotected StringtypeNameType 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 voidaddJavaTypeMapping(JavaTypeMapping mapping)Add a new JavaTypeMapping to manage.JavaTypeMappinggetDiscriminatorMapping()ClassgetJavaType()Accessor for the Java type being represented here.JavaTypeMappinggetJavaTypeMapping(int i)Accessor for the java type mappingsJavaTypeMappinggetJavaTypeMapping(String fieldName)Accessor for the sub type mapping for a particular field nameintgetNumberOfJavaTypeMappings()Accessor for the number of java type mappingsObjectgetObject(org.datanucleus.ExecutionContext ec, ResultSet rs, int[] param)Accessor for the embedded object from the result setObjectgetObject(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.AbstractMemberMetaDatagetRealMemberMetaData()voidinitialize(org.datanucleus.metadata.AbstractMemberMetaData mmd, Table table, org.datanucleus.ClassLoaderResolver clr)Initialize this JavaTypeMapping with the given DatastoreAdapter for the given FieldMetaData.voidinitialize(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 voidprepareColumnMapping()Method to prepare a field mapping for use in the datastore.voidsetObject(org.datanucleus.ExecutionContext ec, PreparedStatement ps, int[] param, Object value)Mutator for the embedded object in the datastore.voidsetObject(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:
initializein 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:
prepareColumnMappingin 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:
setObjectin 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:
setObjectin 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:
getObjectin 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:
getObjectin 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:
getJavaTypein classJavaTypeMapping- Returns:
- The Java type
-
getRealMemberMetaData
public org.datanucleus.metadata.AbstractMemberMetaData getRealMemberMetaData()
-
-