org.jpox.store.mapped.mapping
Class SubclassPCMapping

java.lang.Object
  extended by org.jpox.store.mapped.mapping.JavaTypeMapping
      extended by org.jpox.store.mapped.mapping.MultiMapping
          extended by org.jpox.store.mapped.mapping.SubclassPCMapping

public class SubclassPCMapping
extends MultiMapping

Mapping for a field that stores a PC object that uses "subclass-table" inheritance and where this is mapped in the datastore as a separate FK for each subclass.

Version:
$Revision: 1.9 $

Field Summary
 
Fields inherited from class org.jpox.store.mapped.mapping.MultiMapping
javaTypeMappings
 
Fields inherited from class org.jpox.store.mapped.mapping.JavaTypeMapping
datastoreContainer, datastoreMappings, dba, fmd, LOCALISER, MAPPING_ARRAY_ELEMENT, MAPPING_COLLECTION_ELEMENT, MAPPING_FIELD, MAPPING_MAP_KEY, MAPPING_MAP_VALUE, referenceMapping, roleForField, type
 
Constructor Summary
SubclassPCMapping()
           
 
Method Summary
protected  void createColumns(DatastoreContainerObject datastoreContainer, AbstractMemberMetaData fmd, ClassLoaderResolver clr)
          Convenience method to create a column for each implementation type of this reference.
 java.lang.Class getJavaType()
          Accessor for the java type being mapped.
 java.lang.Object getSampleValue(ClassLoaderResolver clr)
          Return a sample value of the mapping type to be used for internal evaluation of type and conversion.
 void initialize(DatastoreAdapter dba, AbstractMemberMetaData fmd, DatastoreContainerObject container, ClassLoaderResolver clr)
          Initialize this JavaTypeMapping with the given DatastoreAdapter for the given FieldMetaData.
 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.
 
Methods inherited from class org.jpox.store.mapped.mapping.MultiMapping
addJavaTypeMapping, getDataStoreMapping, getJavaTypeMapping, getNumberOfDatastoreFields, getObject, setObject, setObject
 
Methods inherited from class org.jpox.store.mapped.mapping.JavaTypeMapping
addDataStoreMapping, failureMessage, getBoolean, getByte, getChar, getDatastoreContainer, getDataStoreMappings, getDouble, getFieldMetaData, getFloat, getInt, getJavaTypeForDatastoreMapping, getLong, getObject, getReferenceMapping, getRoleForField, getShort, getString, getType, includeInFetchStatement, includeInInsertStatement, includeInUpdateStatement, initialize, isNullable, isSerialised, setBoolean, setByte, setChar, setDefault, setDouble, setFieldInformation, setFloat, setInt, setLong, setReferenceMapping, setRoleForField, setShort, setString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SubclassPCMapping

public SubclassPCMapping()
Method Detail

initialize

public void initialize(DatastoreAdapter dba,
                       AbstractMemberMetaData fmd,
                       DatastoreContainerObject container,
                       ClassLoaderResolver clr)
Initialize this JavaTypeMapping with the given DatastoreAdapter for the given FieldMetaData.

Overrides:
initialize in class JavaTypeMapping
Parameters:
dba - The Datastore Adapter that this Mapping should use.
fmd - FieldMetaData for the field to be mapped (if any)
container - The datastore container storing this mapping (if any)
clr - the ClassLoaderResolver

createColumns

protected void createColumns(DatastoreContainerObject datastoreContainer,
                             AbstractMemberMetaData fmd,
                             ClassLoaderResolver clr)
Convenience method to create a column for each implementation type of this reference.

Parameters:
datastoreContainer - Table to use
fmd - MetaData for the field
clr - The ClassLoaderResolver

getJavaType

public java.lang.Class getJavaType()
Description copied from class: JavaTypeMapping
Accessor for the java type being mapped. This is the java type that the mapping represents. Some examples : The "java type" is the java-type name used in the plugin.xml mapping file

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

getSampleValue

public java.lang.Object getSampleValue(ClassLoaderResolver clr)
Description copied from class: JavaTypeMapping
Return a sample value of the mapping type to be used for internal evaluation of type and conversion.

Specified by:
getSampleValue in class JavaTypeMapping
Parameters:
clr - TODO
Returns:
The sample value.

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 © -2008 . All Rights Reserved.