org.jpox.store.mapping
Class EmbeddedMapping

java.lang.Object
  extended byorg.jpox.store.mapping.JavaTypeMapping
      extended byorg.jpox.store.mapping.SingleFieldMapping
          extended byorg.jpox.store.mapping.EmbeddedMapping
All Implemented Interfaces:
SimpleDatastoreRepresentation
Direct Known Subclasses:
EmbeddedElementPCMapping, EmbeddedKeyPCMapping, EmbeddedPCMapping, EmbeddedValuePCMapping

public abstract class EmbeddedMapping
extends SingleFieldMapping
implements SimpleDatastoreRepresentation

Mapping for an embedded PC object. The PC object can be embedded directly (1-1 relation) or be the element of a collection, or be the key or value of a map.

Version:
$Revision: 1.11 $

Field Summary
protected  ClassLoaderResolver clr
          ClassLoader resolver
protected  EmbeddedMetaData emd
          EmbeddedMetaData for the object being embedded.
protected  java.util.List javaTypeMappings
          Mappings of the fields of the embedded PC.
protected  int objectType
          Type of PC object.
protected  java.lang.String typeName
          Type name for the object being embedded.
 
Fields inherited from class org.jpox.store.mapping.SingleFieldMapping
datastoreContainer, typeInfo
 
Fields inherited from class org.jpox.store.mapping.JavaTypeMapping
datastoreMappings, dba, fmd, LOCALISER, referenceMapping, type
 
Constructor Summary
EmbeddedMapping(DatastoreAdapter dba, AbstractPropertyMetaData fmd, DatastoreContainerObject datastoreContainer, ClassLoaderResolver clr, EmbeddedMetaData emd, java.lang.String typeName, int objectType)
          Constructor.
EmbeddedMapping(DatastoreAdapter dba, java.lang.String type)
          Constructor.
 
Method Summary
 void addJavaTypeMapping(JavaTypeMapping mapping)
          Add a new JavaTypeMapping to manage.
 java.lang.Class getJavaType()
          Accessor for the Java type being represented here.
 JavaTypeMapping getJavaTypeMapping(int i)
          Accessor for the java type mappings
 JavaTypeMapping getJavaTypeMapping(java.lang.String fieldName)
          Accessor for the sub type mapping for a particular field name
 int getNumberOfJavaTypeMappings()
          Accessor for the number of java type mappings
 java.lang.Object getObject(PersistenceManager pm, java.lang.Object rs, int[] param)
          Accessor for the embedded object from the result set
 java.lang.Object getObject(PersistenceManager pm, java.lang.Object rs, int[] param, StateManager ownerSM, int ownerFieldNumber)
          Accessor for the embedded object from the result set
 java.lang.Object getSampleValue()
          Accessor for the sample value for this type.
 ScalarExpression newLiteral(QueryExpression qs, java.lang.Object value)
          Creates a literal from an value.
 ScalarExpression newScalarExpression(QueryExpression qs, LogicSetExpression te)
          Creates a expression from a field name/table.
protected  void prepareDatastoreMapping()
          Method to prepare a field mapping for use in the datastore.
 void setObject(PersistenceManager pm, java.lang.Object ps, int[] param, java.lang.Object value)
          Mutator for the embedded object in the datastore.
 void setObject(PersistenceManager pm, java.lang.Object ps, int[] param, java.lang.Object value, StateManager ownerSM, int ownerFieldNumber)
          Mutator for the embedded object in the datastore.
 
Methods inherited from class org.jpox.store.mapping.SingleFieldMapping
equals, getBoolean, getByte, getChar, getDatastoreContainer, getDouble, getFloat, getInt, getLong, getShort, getString, hasValue, includeInFetchStatement, includeInInsertStatement, includeInUpdateStatement, setBoolean, setByte, setChar, setDouble, setFloat, setInt, setLong, setShort, setString
 
Methods inherited from class org.jpox.store.mapping.JavaTypeMapping
addDataStoreMapping, failureMessage, getDataStoreMapping, getDataStoreMappings, getFieldMetaData, getNumberOfDatastoreFields, getReferenceMapping, getType, isNullable, setDefault, setReferenceMapping
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

javaTypeMappings

protected java.util.List javaTypeMappings
Mappings of the fields of the embedded PC.


clr

protected ClassLoaderResolver clr
ClassLoader resolver


emd

protected EmbeddedMetaData emd
EmbeddedMetaData for the object being embedded.


typeName

protected final java.lang.String typeName
Type name for the object being embedded.


objectType

protected final int objectType
Type of PC object. Corresponds to the values in StateManagerImpl.

Constructor Detail

EmbeddedMapping

public EmbeddedMapping(DatastoreAdapter dba,
                       java.lang.String type)
Constructor.

Parameters:
dba - Datastore Adapter
type - Type represented

EmbeddedMapping

public EmbeddedMapping(DatastoreAdapter dba,
                       AbstractPropertyMetaData fmd,
                       DatastoreContainerObject datastoreContainer,
                       ClassLoaderResolver clr,
                       EmbeddedMetaData emd,
                       java.lang.String typeName,
                       int objectType)
Constructor.

Parameters:
dba - Datastore Adapter
fmd - AbstractPropertyMetaData for the field
datastoreContainer - Table for persisting this field
clr - The ClassLoaderResolver
emd - Embedded MetaData for the object being embedded
typeName - type of the embedded PC object
objectType - Type of the PC object being embedded (see StateManagerImpl object types)
Method Detail

prepareDatastoreMapping

protected void prepareDatastoreMapping()
Method to prepare a field mapping for use in the datastore. Overridden so it does nothing

Overrides:
prepareDatastoreMapping 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(java.lang.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

setObject

public void setObject(PersistenceManager pm,
                      java.lang.Object ps,
                      int[] param,
                      java.lang.Object value)
Mutator for the embedded object in the datastore.

Overrides:
setObject in class SingleFieldMapping
Parameters:
pm - The Persistence Manager managing this object
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(PersistenceManager pm,
                      java.lang.Object ps,
                      int[] param,
                      java.lang.Object value,
                      StateManager ownerSM,
                      int ownerFieldNumber)
Mutator for the embedded object in the datastore.

Overrides:
setObject in class JavaTypeMapping
Parameters:
pm - The Persistence Manager managing this object
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 java.lang.Object getObject(PersistenceManager pm,
                                  java.lang.Object rs,
                                  int[] param)
Accessor for the embedded object from the result set

Overrides:
getObject in class SingleFieldMapping
Parameters:
pm - Persistence Manager managing this object
rs - The ResultSet
param - Array of param numbers in the ResultSet for the fields of this object
Returns:
The embedded object

getObject

public java.lang.Object getObject(PersistenceManager pm,
                                  java.lang.Object rs,
                                  int[] param,
                                  StateManager ownerSM,
                                  int ownerFieldNumber)
Accessor for the embedded object from the result set

Overrides:
getObject in class JavaTypeMapping
Parameters:
pm - Persistence Manager managing this object
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

getSampleValue

public java.lang.Object getSampleValue()
Accessor for the sample value for this type.

Specified by:
getSampleValue in class JavaTypeMapping
Returns:
Sample value

getJavaType

public java.lang.Class getJavaType()
Accessor for the Java type being represented here.

Specified by:
getJavaType in class JavaTypeMapping
Returns:
The Java type

newLiteral

public ScalarExpression newLiteral(QueryExpression qs,
                                   java.lang.Object value)
Description copied from class: JavaTypeMapping
Creates a literal from an value. A string literal is enclosed in single quotes. for example: "literal". A string literal that includes a single quote is represented by two single quotes. for example: "literal''s". An exact numeric literal is a numeric value without a decimal point, such as 57, -957, +62. An approximate numeric literal is a numeric value in scientific notation, such as 7E3, -57.9E2, or a numeric value with a decimal, such as 7., -95.7, +6.2.

Specified by:
newLiteral in class JavaTypeMapping
Parameters:
qs - The Query statement
value - The object
Returns:
A Scalar Expression

newScalarExpression

public ScalarExpression newScalarExpression(QueryExpression qs,
                                            LogicSetExpression te)
Description copied from class: JavaTypeMapping
Creates a expression from a field name/table. e.g. tablename.fieldname; tablealias.fieldalias

Specified by:
newScalarExpression in class JavaTypeMapping
Parameters:
qs - The Query statement
te - the alias for the table
Returns:
A Scalar Expression


Copyright © -2007 . All Rights Reserved.