SolarMetric Kodo JDO 2.5.0 Reverse Schema Tool

com.solarmetric.rd.kodo.impl.jdbc.meta.map
Class ContainerMapping

java.lang.Object
  |
  +--com.solarmetric.rd.kodo.impl.jdbc.meta.Mapping
        |
        +--com.solarmetric.rd.kodo.impl.jdbc.meta.ExtensionsMapping
              |
              +--com.solarmetric.rd.kodo.impl.jdbc.meta.FieldMapping
                    |
                    +--com.solarmetric.rd.kodo.impl.jdbc.meta.map.ReferenceMapping
                          |
                          +--com.solarmetric.rd.kodo.impl.jdbc.meta.map.ContainerMapping
All Implemented Interfaces:
java.lang.Comparable, Extensions, FieldMetaData
Direct Known Subclasses:
AbstractCollectionMapping, AbstractMapMapping

public abstract class ContainerMapping
extends ReferenceMapping

Base class for collection and map mappings. Handles container metadata and basic query functionality.


Field Summary
 
Fields inherited from class com.solarmetric.rd.kodo.impl.jdbc.meta.FieldMapping
CONTAINER_META, DELETE_ACTION, ELEMENT_DELETE_ACTION, ELEMENT_INDEXED, ELEMENT_SIZE, EMPTY_COLUMNS, INDEXED, KEY_DELETE_ACTION, KEY_INDEXED, KEY_SIZE, ORDERED, REF_DELETE_ACTION, REF_INDEXED, SIZE, TYPE_ASCII_STREAM, TYPE_BINARY_STREAM, TYPE_BLOB, TYPE_BYTES, TYPE_CHAR_STREAM, TYPE_CLOB, TYPE_JDBC_DEFAULT, TYPE_REF, TYPE_SQL_ARRAY, TYPE_SQL_DATE, TYPE_SQL_OBJECT, TYPE_TIME, TYPE_TIMESTAMP, USE_FIELD_MAP, USE_NULL_IND, VALUE_DELETE_ACTION, VALUE_INDEXED, VALUE_SIZE
 
Fields inherited from class com.solarmetric.rd.kodo.impl.jdbc.meta.Mapping
DEFAULT, FALSE, LOB, TRUE, UNIQUE
 
Fields inherited from interface com.solarmetric.rd.kodo.meta.FieldMetaData
DEPENDENT, ELEMENT_DEPENDENT, ELEMENT_PC_CLASS, INVERSE_OWNER, KEY_DEPENDENT, KEY_PC_CLASS, MANAGE_NONE, MANAGE_PERSISTENT, MANAGE_TRANSACTIONAL, NULL_DEFAULT, NULL_EXCEPTION, NULL_NONE, PC_CLASS, TYPE_ARRAY, TYPE_BIGDECIMAL, TYPE_BIGINTEGER, TYPE_BOOLEAN, TYPE_BOOLEAN_OBJ, TYPE_BYTE, TYPE_BYTE_OBJ, TYPE_CHAR, TYPE_CHAR_OBJ, TYPE_COLLECTION, TYPE_DATE, TYPE_DOUBLE, TYPE_DOUBLE_OBJ, TYPE_FCO, TYPE_FLOAT, TYPE_FLOAT_OBJ, TYPE_INT, TYPE_INT_OBJ, TYPE_LOCALE, TYPE_LONG, TYPE_LONG_OBJ, TYPE_MAP, TYPE_NUMBER, TYPE_OBJECT, TYPE_PC_OBJECT, TYPE_SHORT, TYPE_SHORT_OBJ, TYPE_STRING, VALUE_DEPENDENT, VALUE_PC_CLASS
 
Constructor Summary
ContainerMapping(com.solarmetric.rd.kodo.meta.FieldMetaData meta)
          Constructor.
 
Method Summary
 void appendIsEmpty(com.solarmetric.rd.kodo.impl.jdbc.schema.SQLBuffer sql, com.solarmetric.rd.kodo.impl.jdbc.runtime.Joins joins)
          Create a where clause to the given statement asking if this value is empty.
 void appendIsNotNull(com.solarmetric.rd.kodo.impl.jdbc.schema.SQLBuffer sql, com.solarmetric.rd.kodo.impl.jdbc.runtime.Joins joins)
          Add a where clause to the given statement asking if this value is not null.
 void appendIsNull(com.solarmetric.rd.kodo.impl.jdbc.schema.SQLBuffer sql, com.solarmetric.rd.kodo.impl.jdbc.runtime.Joins joins)
          Add a where clause to the given statement asking if this value is null.
 boolean fromMappingInfo(com.solarmetric.rd.kodo.impl.jdbc.meta.MappingInfo info, boolean adapt)
          Deserialize this mapping from a simple MappingInfo instance parsed from XML or some other format.
 com.solarmetric.rd.kodo.impl.jdbc.schema.Column getMetaDataColumn()
          Return the column holding the collection meta data.
 com.solarmetric.rd.kodo.impl.jdbc.schema.Table getVRowTable()
          Return the table this mapping uses for the columns that are part of the 'virtual row' that this object spans in the database.
 void insert(com.solarmetric.rd.kodo.runtime.StateManagerImpl sm, com.solarmetric.rd.kodo.impl.jdbc.runtime.RowManager rm)
          Set values for the mapping into the proper rows.
 void join(com.solarmetric.rd.kodo.impl.jdbc.runtime.Joins joins)
          Join this value to the class table.
 void load(com.solarmetric.rd.kodo.runtime.StateManagerImpl sm, com.solarmetric.rd.kodo.impl.jdbc.runtime.JDBCStoreManager store, com.solarmetric.rd.kodo.impl.jdbc.runtime.Result res)
          Load virtual row data; the given result is not guaranteed to contain data for this field, so the field mapping should make sure the result contains its needed column data before loading.
 boolean map()
          Map a new instance of this mapping type.
protected  java.util.Collection newCollection(com.solarmetric.rd.kodo.runtime.StateManagerImpl sm)
          Return a new collection to fill with loaded data, taking into account the stored comparator metadata, if any.
protected  java.util.Map newMap(com.solarmetric.rd.kodo.runtime.StateManagerImpl sm)
          Return a new map to fill with loaded data, taking into account the stored comparator metadata, if any.
 void nullEmbedded(com.solarmetric.rd.kodo.runtime.StateManagerImpl sm, com.solarmetric.rd.kodo.impl.jdbc.runtime.RowManager rm)
          Null values for the mapping.
 void refSchemaComponents()
          Increment the reference count of all used schema components.
 void select(com.solarmetric.rd.kodo.impl.jdbc.runtime.Select sel, boolean multiple)
          Select the virtual row columns of this mapping.
 java.lang.Boolean selectVRowData(com.solarmetric.rd.kodo.runtime.StateManagerImpl sm)
          Return Boolean.TRUE if 'virtual row' data needs to be selected, Boolean.FALSE if it does not need to be, and null if it would be desirable to select it, but is not necessary.
 void setMetaDataColumn(com.solarmetric.rd.kodo.impl.jdbc.schema.Column col)
          Set the column holding the collection meta data.
 void toMappingInfo(com.solarmetric.rd.kodo.impl.jdbc.meta.MappingInfo info)
          Serialize this mapping to a simple MappingInfo instance for transfer to XML or some other format.
 void update(com.solarmetric.rd.kodo.runtime.StateManagerImpl sm, com.solarmetric.rd.kodo.impl.jdbc.runtime.RowManager rm)
          Set values for the mapping into the proper rows.
 
Methods inherited from class com.solarmetric.rd.kodo.impl.jdbc.meta.map.ReferenceMapping
createRefForeignKey, fromMappingInfo, getRefForeignKey, getSelectJoins, getTable, join, setRefForeignKey, wherePrimaryKey
 
Methods inherited from class com.solarmetric.rd.kodo.impl.jdbc.meta.FieldMapping
addExtension, addExtension, checkRepository, compareTo, deleteEmbedded, deleteEmbedded, getBooleanExtension, getBooleanExtension, getColumns, getContainerMeta, getDataStoreValue, getDeclaredElementType, getDeclaredIndex, getDeclaredKeyType, getDeclaredType, getDefaults, getDeleteAction, getDoubleExtension, getDoubleExtension, getElementDeleteAction, getElementIndexed, getElementPCClass, getElementSize, getElementType, getElementTypeCode, getElementTypeMapping, getElementTypeMetaData, getEmbeddedExtensions, getEmbeddedExtensions, getExtensionKeys, getExtensionKeys, getExtensionVendors, getFieldFlag, getFullName, getIndex, getIndexed, getIntExtension, getIntExtension, getInverseOwner, getInverseOwnerMapping, getInverseOwnerMetaData, getKeyColumns, getKeyDataStoreValue, getKeyDeleteAction, getKeyIndexed, getKeyPCClass, getKeySize, getKeyType, getKeyTypeCode, getKeyTypeMapping, getKeyTypeMetaData, getManagement, getMappingRepository, getMetaData, getName, getNullValue, getObjectExtension, getObjectExtension, getOrdered, getOwner, getOwnerMapping, getPCClass, getRefDeleteAction, getRefIndexed, getSize, getStringExtension, getStringExtension, getType, getTypeCode, getTypeMapping, getTypeMetaData, getUseFieldMapping, getUseNullIndicator, hasExtension, hasExtension, invalidateResolve, isCustomDeleteEmbedded, isCustomNullEmbedded, isDeleteActionDeferred, isDependent, isEager, isElementDeleteActionDeferred, isElementDependent, isElementEager, isEmbedded, isEmbeddedElement, isEmbeddedKey, isEmpty, isExplicit, isInDefaultFetchGroup, isKeyDeleteActionDeferred, isKeyDependent, isKeyEager, isPrimaryKey, isRefDeleteActionDeferred, isValue, joinKey, joinKeyRelation, joinRelation, load, newInstance, newInstance, nullEmbedded, removeEmbeddedExtensions, removeEmbeddedExtensions, removeExtension, removeExtension, resolve, setContainerMeta, setDeclaredIndex, setDeleteAction, setDependent, setElementDeleteAction, setElementDependent, setElementIndexed, setElementPCClass, setElementSize, setElementType, setEmbedded, setEmbeddedElement, setEmbeddedKey, setExplicit, setInDefaultFetchGroup, setIndex, setIndexed, setInverseOwner, setKeyDeleteAction, setKeyDependent, setKeyIndexed, setKeyPCClass, setKeySize, setKeyType, setManagement, setName, setNullValue, setOrdered, setOwner, setPCClass, setPrimaryKey, setRefDeleteAction, setRefIndexed, setSize, setType, setUseFieldMapping, setUseNullIndicator, toString
 
Methods inherited from class com.solarmetric.rd.kodo.impl.jdbc.meta.Mapping
checkIndex, createColumn, delete, delete, getDBDictionary, getForeignKey, getLog, getMappingType, getSchemaGroup, insert, invalidMapping, isCustomDelete, isCustomInsert, isCustomUpdate, reverseMap, setForeignKey, update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.solarmetric.rd.kodo.meta.Extensions
addExtension, addExtension, getBooleanExtension, getBooleanExtension, getDoubleExtension, getDoubleExtension, getEmbeddedExtensions, getEmbeddedExtensions, getExtensionKeys, getExtensionKeys, getExtensionVendors, getIntExtension, getIntExtension, getObjectExtension, getObjectExtension, getStringExtension, getStringExtension, hasExtension, hasExtension, isEmpty, removeEmbeddedExtensions, removeEmbeddedExtensions, removeExtension, removeExtension
 

Constructor Detail

ContainerMapping

public ContainerMapping(com.solarmetric.rd.kodo.meta.FieldMetaData meta)
Constructor. Supply underlying metadata.

Method Detail

getMetaDataColumn

public com.solarmetric.rd.kodo.impl.jdbc.schema.Column getMetaDataColumn()
Return the column holding the collection meta data.


setMetaDataColumn

public void setMetaDataColumn(com.solarmetric.rd.kodo.impl.jdbc.schema.Column col)
Set the column holding the collection meta data.


toMappingInfo

public void toMappingInfo(com.solarmetric.rd.kodo.impl.jdbc.meta.MappingInfo info)
Description copied from class: Mapping
Serialize this mapping to a simple MappingInfo instance for transfer to XML or some other format.

Overrides:
toMappingInfo in class ReferenceMapping

fromMappingInfo

public boolean fromMappingInfo(com.solarmetric.rd.kodo.impl.jdbc.meta.MappingInfo info,
                               boolean adapt)
Description copied from class: Mapping
Deserialize this mapping from a simple MappingInfo instance parsed from XML or some other format. If the info is incompatible and adapt is true, try to adapt to the new info, else return false. This method must validate the given mapping information using the SchemaGroup.findTable(java.lang.String) method to find any needed tables, the Table.getColumn(java.lang.String) method to retrieve columns from those tables, and the Column.isCompatible(int, int) method to check all column types. This is important, as some schema groups use these methods to build themselves up dynamically rather than reading schema information from the database.

Specified by:
fromMappingInfo in class Mapping

map

public boolean map()
Description copied from class: Mapping
Map a new instance of this mapping type. If the underlying metadata cannot be mapped using this type, return false.

Specified by:
map in class Mapping

refSchemaComponents

public void refSchemaComponents()
Description copied from class: Mapping
Increment the reference count of all used schema components.

Overrides:
refSchemaComponents in class ReferenceMapping

appendIsEmpty

public void appendIsEmpty(com.solarmetric.rd.kodo.impl.jdbc.schema.SQLBuffer sql,
                          com.solarmetric.rd.kodo.impl.jdbc.runtime.Joins joins)
Description copied from class: FieldMapping
Create a where clause to the given statement asking if this value is empty.

Specified by:
appendIsEmpty in class FieldMapping

appendIsNull

public void appendIsNull(com.solarmetric.rd.kodo.impl.jdbc.schema.SQLBuffer sql,
                         com.solarmetric.rd.kodo.impl.jdbc.runtime.Joins joins)
Description copied from class: FieldMapping
Add a where clause to the given statement asking if this value is null.

Specified by:
appendIsNull in class FieldMapping

appendIsNotNull

public void appendIsNotNull(com.solarmetric.rd.kodo.impl.jdbc.schema.SQLBuffer sql,
                            com.solarmetric.rd.kodo.impl.jdbc.runtime.Joins joins)
Description copied from class: FieldMapping
Add a where clause to the given statement asking if this value is not null.

Specified by:
appendIsNotNull in class FieldMapping

join

public void join(com.solarmetric.rd.kodo.impl.jdbc.runtime.Joins joins)
Description copied from class: FieldMapping
Join this value to the class table.

Specified by:
join in class FieldMapping

getVRowTable

public com.solarmetric.rd.kodo.impl.jdbc.schema.Table getVRowTable()
Description copied from class: FieldMapping
Return the table this mapping uses for the columns that are part of the 'virtual row' that this object spans in the database. The virtual row can include multiple tables if some fields are stored in joined tables. However, the virtual row includes only those other tables that are guaranteed to have exactly one row in them for the object's corresponding row in the primary table.

Specified by:
getVRowTable in class FieldMapping

selectVRowData

public java.lang.Boolean selectVRowData(com.solarmetric.rd.kodo.runtime.StateManagerImpl sm)
Description copied from class: FieldMapping
Return Boolean.TRUE if 'virtual row' data needs to be selected, Boolean.FALSE if it does not need to be, and null if it would be desirable to select it, but is not necessary.

Specified by:
selectVRowData in class FieldMapping

select

public void select(com.solarmetric.rd.kodo.impl.jdbc.runtime.Select sel,
                   boolean multiple)
Description copied from class: FieldMapping
Select the virtual row columns of this mapping.

Specified by:
select in class FieldMapping
Parameters:
sel - the select to add to
multiple - whether this select is expected to match multiple objects

load

public void load(com.solarmetric.rd.kodo.runtime.StateManagerImpl sm,
                 com.solarmetric.rd.kodo.impl.jdbc.runtime.JDBCStoreManager store,
                 com.solarmetric.rd.kodo.impl.jdbc.runtime.Result res)
          throws java.sql.SQLException
Description copied from class: FieldMapping
Load virtual row data; the given result is not guaranteed to contain data for this field, so the field mapping should make sure the result contains its needed column data before loading.

Specified by:
load in class FieldMapping
java.sql.SQLException

insert

public void insert(com.solarmetric.rd.kodo.runtime.StateManagerImpl sm,
                   com.solarmetric.rd.kodo.impl.jdbc.runtime.RowManager rm)
            throws java.sql.SQLException
Description copied from class: Mapping
Set values for the mapping into the proper rows. For class mappings, this method will be called only after the corresponding method has been called for all fields of this mapping.

Specified by:
insert in class Mapping
java.sql.SQLException

update

public void update(com.solarmetric.rd.kodo.runtime.StateManagerImpl sm,
                   com.solarmetric.rd.kodo.impl.jdbc.runtime.RowManager rm)
            throws java.sql.SQLException
Description copied from class: Mapping
Set values for the mapping into the proper rows.

Specified by:
update in class Mapping
java.sql.SQLException
See Also:
Mapping.insert(com.solarmetric.rd.kodo.runtime.StateManagerImpl, com.solarmetric.rd.kodo.impl.jdbc.runtime.RowManager)

nullEmbedded

public void nullEmbedded(com.solarmetric.rd.kodo.runtime.StateManagerImpl sm,
                         com.solarmetric.rd.kodo.impl.jdbc.runtime.RowManager rm)
                  throws java.sql.SQLException
Description copied from class: FieldMapping
Null values for the mapping. This method is used when embedded values are nulled or replaced. The given state manager will be the owner of the object whose fields are now being nulled.

Overrides:
nullEmbedded in class FieldMapping
java.sql.SQLException
See Also:
Mapping.insert(com.solarmetric.rd.kodo.runtime.StateManagerImpl, com.solarmetric.rd.kodo.impl.jdbc.runtime.RowManager)

newCollection

protected java.util.Collection newCollection(com.solarmetric.rd.kodo.runtime.StateManagerImpl sm)
Return a new collection to fill with loaded data, taking into account the stored comparator metadata, if any.


newMap

protected java.util.Map newMap(com.solarmetric.rd.kodo.runtime.StateManagerImpl sm)
Return a new map to fill with loaded data, taking into account the stored comparator metadata, if any.


SolarMetric Kodo JDO 2.5.0 Reverse Schema Tool

Copyright 2001,2002,2003 SolarMetric, Inc. All Rights Reserved.