org.datanucleus.store.rdbms.table
Class CollectionTable

java.lang.Object
  extended by org.datanucleus.store.rdbms.table.AbstractTable
      extended by org.datanucleus.store.rdbms.table.TableImpl
          extended by org.datanucleus.store.rdbms.table.JoinTable
              extended by org.datanucleus.store.rdbms.table.ElementContainerTable
                  extended by org.datanucleus.store.rdbms.table.CollectionTable
All Implemented Interfaces:
org.datanucleus.store.mapped.DatastoreContainerObject, org.datanucleus.store.mapped.DatastoreElementContainer, Table

public class CollectionTable
extends ElementContainerTable
implements org.datanucleus.store.mapped.DatastoreElementContainer

Representation of a join table for a Collection. A Collection covers a wide range of possibilities in terms of whether it allows duplicates or not, whether it allows nulls or not, whether it supports ordering via indexes, whether it supports ordering via a SELECT criteria, etc. Consequently the join table can vary depending on the required capabilities.

JoinTable Mappings

The join table consists of the following mappings :-


Field Summary
 
Fields inherited from class org.datanucleus.store.rdbms.table.ElementContainerTable
elementMapping, orderMapping, relationDiscriminatorMapping, relationDiscriminatorValue
 
Fields inherited from class org.datanucleus.store.rdbms.table.JoinTable
mmd, ownerMapping, ownerType
 
Fields inherited from class org.datanucleus.store.rdbms.table.AbstractTable
columns, columnsByName, dba, existsInDatastore, identifier, LOCALISER, state, storeMgr
 
Constructor Summary
CollectionTable(org.datanucleus.store.mapped.DatastoreIdentifier tableName, org.datanucleus.metadata.AbstractMemberMetaData mmd, RDBMSManager storeMgr)
          Constructor.
 
Method Summary
 java.lang.String getElementType()
          Accessor for the element type stored in this Collection/Set/List.
 void initialize(org.datanucleus.ClassLoaderResolver clr)
          Method to initialise the table definition.
 boolean isEmbeddedElement()
          Accessor for whether the element is embedded into this table.
 boolean isEmbeddedElementPC()
          Accessor for whether the element is a PersistenceCapable(embedded).
 boolean isSerialisedElement()
          Accessor for whether the element is serialised into this table.
 boolean isSerialisedElementPC()
          Accessor for whether the element is a PersistenceCapable(serialised)
protected  boolean requiresPrimaryKey()
          Convenience method for whether a PK is required for the join table.
 
Methods inherited from class org.datanucleus.store.rdbms.table.ElementContainerTable
applyUserPrimaryKeySpecification, getElementMapping, getExpectedCandidateKeys, getExpectedForeignKeys, getExpectedIndices, getForeignKeyToElement, getForeignKeyToOwner, getMemberMapping, getOrderMapping, getRelationDiscriminatorMapping, getRelationDiscriminatorValue
 
Methods inherited from class org.datanucleus.store.rdbms.table.JoinTable
debugMapping, getIDMapping, getOwnerMapping, getOwnerMemberMetaData, getPrimaryKey
 
Methods inherited from class org.datanucleus.store.rdbms.table.TableImpl
createConstraints, dropConstraints, getSQLAddCandidateKeyStatements, getSQLAddFKStatements, getSQLCreateIndexStatements, getSQLCreateStatements, getSQLDropStatements, initializeColumnInfoForPrimaryKeyColumns, initializeColumnInfoFromDatastore, postInitialize, preInitialize, validate, validateColumns, validateConstraints, validatePrimaryKey
 
Methods inherited from class org.datanucleus.store.rdbms.table.AbstractTable
addColumnInternal, addDatastoreField, allowDDLOutput, assertIsInitialized, assertIsInitializedModified, assertIsPKInitialized, assertIsPKUninitialized, assertIsUninitialized, assertIsValidated, create, drop, equals, executeDdlStatement, executeDdlStatementList, exists, getCatalogName, getDatastoreField, getDatastoreFields, getDatastoreIdentifierFullyQualified, getDiscriminatorMapping, getDiscriminatorMetaData, getIdentifier, getSchemaName, getStoreManager, getVersionMapping, getVersionMetaData, hasColumnName, hasDatastoreField, hashCode, isInitialized, isInitializedModified, isPKInitialized, isValidated, tableExistsInDatastore, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.datanucleus.store.mapped.DatastoreElementContainer
getElementMapping, getOwnerMapping
 
Methods inherited from interface org.datanucleus.store.mapped.DatastoreContainerObject
addDatastoreField, getDatastoreField, getDatastoreFields, getDiscriminatorMapping, getDiscriminatorMetaData, getIdentifier, getIDMapping, getMemberMapping, getStoreManager, getVersionMapping, getVersionMetaData, hasDatastoreField
 

Constructor Detail

CollectionTable

public CollectionTable(org.datanucleus.store.mapped.DatastoreIdentifier tableName,
                       org.datanucleus.metadata.AbstractMemberMetaData mmd,
                       RDBMSManager storeMgr)
Constructor.

Parameters:
tableName - Identifier name of the table
mmd - MetaData for the field of the owner
storeMgr - The Store Manager managing these tables.
Method Detail

initialize

public void initialize(org.datanucleus.ClassLoaderResolver clr)
Method to initialise the table definition.

Specified by:
initialize in interface Table
Overrides:
initialize in class ElementContainerTable
Parameters:
clr - The ClassLoaderResolver

getElementType

public java.lang.String getElementType()
Accessor for the element type stored in this Collection/Set/List.

Specified by:
getElementType in class ElementContainerTable
Returns:
Name of element type.

isSerialisedElement

public boolean isSerialisedElement()
Accessor for whether the element is serialised into this table. This can be a serialised PersistenceCapable, or a serialised simple type

Returns:
Whether the element is serialised.

isEmbeddedElement

public boolean isEmbeddedElement()
Accessor for whether the element is embedded into this table. This can be an embedded PersistenceCapable, or an embedded simple type

Returns:
Whether the element is embedded.

isSerialisedElementPC

public boolean isSerialisedElementPC()
Accessor for whether the element is a PersistenceCapable(serialised)

Returns:
Whether the element is PC and is serialised

isEmbeddedElementPC

public boolean isEmbeddedElementPC()
Accessor for whether the element is a PersistenceCapable(embedded). Currently this only defines a PC element as embedded if the MetaData has an block. This may or may not be correct depending on how you interpret the JDO2 spec "embedded-element" flag.

Returns:
Whether the element is PC and is embedded

requiresPrimaryKey

protected boolean requiresPrimaryKey()
Convenience method for whether a PK is required for the join table. Extends JoinTable allowing for "ordered List" case which do not require a primary key (so we can have duplicates).

Overrides:
requiresPrimaryKey in class JoinTable
Returns:
Whether a PK is required


Copyright © 2009. All Rights Reserved.