org.jpox.store
Interface DatastoreClass

All Superinterfaces:
DatastoreContainerObject, DatastoreObject
All Known Implementing Classes:
ClassTable, ClassView, SecondaryTable

public interface DatastoreClass
extends DatastoreContainerObject

Representation of a Java class in a datastore. In the case of RDBMS this will be a table (primary or secondary). In the case of a file-based structure this may be a directory. In the case of an XML-based structure this may be an element.

Version:
$Revision: 1.28.2.1 $

Method Summary
 void delete(StateManager sm)
          Method to delete an object for this class.
 void deleteDependent(StateManager sm, AbstractPropertyMetaData[] fieldMetaData)
          Delete dependent objects of a persistent object.
 void fetch(StateManager sm, AbstractPropertyMetaData[] fieldMetaData)
          Method to fetch an object for this class.
 DatastoreClass getBaseDatastoreClassWithField(AbstractPropertyMetaData fmd)
          Method to return the base DatastoreClass that persists the specified field.
 JavaTypeMapping getDataStoreObjectIdMapping()
          Accessor for a mapping for the datastore ID (OID) for this object.
 JavaTypeMapping getExternalMapping(AbstractPropertyMetaData fmd, int mappingType)
          Accessor for the external mapping for the specified field of the specified type.
 JavaTypeMapping getFieldMapping(AbstractPropertyMetaData fmd)
          Accessor for the mapping for the specified field.
 JavaTypeMapping getFieldMapping(java.lang.String fieldName)
          Accessor for the mapping for the specified field name.
 IdentityType getIdentityType()
          Accessor for the identity-type used by this table.
 AbstractPropertyMetaData getMetaDataForExternalMapping(JavaTypeMapping mapping, int mappingType)
          Accessor for the owner field metadata for the specified external mapping of the specified type
 DatastoreClass getSuperDatastoreClass()
          Accessor for the supertable for this table.
 java.lang.String getType()
          Accessor for the primary class represented.
 void insert(StateManager sm)
          Method to insert an object for this class.
 boolean isBaseDatastoreClass()
          Accessor for whether this datastore class is the base datastore class for this inheritance hierarchy.
 boolean isObjectIDDatastoreAttributed()
          Accessor for whether the object id will be attributed by the datastore directly, or whether values have to be supplied.
 void locate(StateManager sm)
          Locates this object in the datastore.
 boolean managesClass(java.lang.String className)
          Accessor for whether this table manages the specified class
 java.lang.Object newOID(PersistenceManager pm, javax.jdo.spi.PersistenceCapable pcClass)
          Create a new OID.
 void provideDatastoreIdMappings(MappingConsumer consumer)
          Accessor for a mapping for the datastore ID (OID) for this table.
 void provideDiscriminatorMappings(MappingConsumer consumer)
          Provide the mappings to discriminator mappings
 void provideExternalMappings(MappingConsumer consumer, int mappingType)
          Instruction to provide all external mappings to the passed consumer.
 void provideMappingsForFields(MappingConsumer consumer, AbstractPropertyMetaData[] fieldMetaData, boolean includeSecondaryTables)
          Provide the mappings to the consumer for all absolute field Numbers in this table that are container in the fieldNumbers parameter.
 void provideNonPrimaryKeyMappings(MappingConsumer consumer)
          Provide the mappings to the consumer for all non primary-key fields mapped to this table.
 void providePrimaryKeyMappings(MappingConsumer consumer)
          Provide the mappings to the consumer for all primary-key fields mapped to this table (for application identity).
 void provideVersionMappings(MappingConsumer consumer)
          Provide the mappings to version mappings
 java.lang.String toString()
          Accessor for the name of the datastore class (table).
 void update(StateManager sm, AbstractPropertyMetaData[] fieldMetaData)
          Method to update an object for this class.
 
Methods inherited from interface org.jpox.store.DatastoreContainerObject
addDatastoreField, getDatastoreFieldsMetaData, getDiscriminatorMapping, getDiscriminatorMetaData, getIDMapping, getVersionMapping, getVersionMetaData, hasDatastoreField
 
Methods inherited from interface org.jpox.store.DatastoreObject
getIdentifier, getStoreManager
 

Method Detail

getType

java.lang.String getType()
Accessor for the primary class represented.

Returns:
Name of the class

getIdentityType

IdentityType getIdentityType()
Accessor for the identity-type used by this table.

Returns:
identity-type tag value

isObjectIDDatastoreAttributed

boolean isObjectIDDatastoreAttributed()
Accessor for whether the object id will be attributed by the datastore directly, or whether values have to be supplied.

Returns:
Whether it is attributed in the datastore

isBaseDatastoreClass

boolean isBaseDatastoreClass()
Accessor for whether this datastore class is the base datastore class for this inheritance hierarchy.

Returns:
Whether it is the base.

getBaseDatastoreClassWithField

DatastoreClass getBaseDatastoreClassWithField(AbstractPropertyMetaData fmd)
Method to return the base DatastoreClass that persists the specified field. This navigates up through the superclass tables to find a table that manages the field.

Parameters:
fmd - MetaData for the field required
Returns:
The DatastoreClass managing that field

getSuperDatastoreClass

DatastoreClass getSuperDatastoreClass()
Accessor for the supertable for this table. This is only relevant if the DatastoreClass in use supports supertables. If supertables arent supported by the datastore then null is returned.

Returns:
The supertable (if any)

managesClass

boolean managesClass(java.lang.String className)
Accessor for whether this table manages the specified class

Parameters:
className - Name of the class
Returns:
Whether it is managed by this table

insert

void insert(StateManager sm)
Method to insert an object for this class. Will insert any superclass records as well (recursive).

Parameters:
sm - StateManager for the object to insert.

fetch

void fetch(StateManager sm,
           AbstractPropertyMetaData[] fieldMetaData)
Method to fetch an object for this class. Will fetch any superclass records as well (recursive).

Parameters:
sm - StateManager for the object to fetch.
fieldMetaData - MetaData for the fields to be fetched

update

void update(StateManager sm,
            AbstractPropertyMetaData[] fieldMetaData)
Method to update an object for this class. Will update any superclass records as well (recursive).

Parameters:
sm - StateManager for the object to update.
fieldMetaData - MetaData for the fields to be updated

delete

void delete(StateManager sm)
Method to delete an object for this class. Will delete any superclass records as well (recursive).

Parameters:
sm - StateManager for the object to delete.

locate

void locate(StateManager sm)
Locates this object in the datastore.

Parameters:
sm - The StateManager for the object to be found
Throws:
javax.jdo.JDOObjectNotFoundException - If the instance does not exist in the datastore

deleteDependent

void deleteDependent(StateManager sm,
                     AbstractPropertyMetaData[] fieldMetaData)
Delete dependent objects of a persistent object.

Parameters:
sm - StateManager for the object being deleted.
fieldMetaData - MetaData for the fields to delete.
Since:
1.1

toString

java.lang.String toString()
Accessor for the name of the datastore class (table).

Overrides:
toString in class java.lang.Object
Returns:
The name

getDataStoreObjectIdMapping

JavaTypeMapping getDataStoreObjectIdMapping()
Accessor for a mapping for the datastore ID (OID) for this object.

Returns:
The (OID) mapping.

getFieldMapping

JavaTypeMapping getFieldMapping(java.lang.String fieldName)
Accessor for the mapping for the specified field name. Doesn't cope with fields of the same name in different subclasses - you should call the equivalent method passing FieldMetaData for those.

Parameters:
fieldName - Name of field
Returns:
The Mapping for the field.

getFieldMapping

JavaTypeMapping getFieldMapping(AbstractPropertyMetaData fmd)
Accessor for the mapping for the specified field.

Specified by:
getFieldMapping in interface DatastoreContainerObject
Parameters:
fmd - AbstractPropertyMetaData of the field
Returns:
The Mapping for the field.

provideDatastoreIdMappings

void provideDatastoreIdMappings(MappingConsumer consumer)
Accessor for a mapping for the datastore ID (OID) for this table.

Parameters:
consumer - Consumer for the mappings

providePrimaryKeyMappings

void providePrimaryKeyMappings(MappingConsumer consumer)
Provide the mappings to the consumer for all primary-key fields mapped to this table (for application identity).

Parameters:
consumer - Consumer for the mappings

provideNonPrimaryKeyMappings

void provideNonPrimaryKeyMappings(MappingConsumer consumer)
Provide the mappings to the consumer for all non primary-key fields mapped to this table.

Parameters:
consumer - Consumer for the mappings

provideMappingsForFields

void provideMappingsForFields(MappingConsumer consumer,
                              AbstractPropertyMetaData[] fieldMetaData,
                              boolean includeSecondaryTables)
Provide the mappings to the consumer for all absolute field Numbers in this table that are container in the fieldNumbers parameter.

Parameters:
consumer - Consumer for the mappings
fieldMetaData - MetaData of the fields to provide mappings for
includeSecondaryTables - Whether to supply fields in secondary tables

provideVersionMappings

void provideVersionMappings(MappingConsumer consumer)
Provide the mappings to version mappings

Parameters:
consumer - Consumer for the version mappings

provideDiscriminatorMappings

void provideDiscriminatorMappings(MappingConsumer consumer)
Provide the mappings to discriminator mappings

Parameters:
consumer - Consumer for the mappings

provideExternalMappings

void provideExternalMappings(MappingConsumer consumer,
                             int mappingType)
Instruction to provide all external mappings to the passed consumer.

Parameters:
consumer - The consumer for the mappings
mappingType - Type of external mapping to provide

newOID

java.lang.Object newOID(PersistenceManager pm,
                        javax.jdo.spi.PersistenceCapable pcClass)
Create a new OID. OID can be datastore identity or application identity

Parameters:
pm - The PersistenceManager
pcClass - The Persistence-Capable class
Returns:
New OID

getExternalMapping

JavaTypeMapping getExternalMapping(AbstractPropertyMetaData fmd,
                                   int mappingType)
Accessor for the external mapping for the specified field of the specified type. An external mapping is a mapping for which there is no field in the actual class to represent it (part of a relation). The type can be FK, FK discriminator, order, etc

Parameters:
fmd - MetaData for the (external) field
mappingType - The type of mapping
Returns:
The external mapping

getMetaDataForExternalMapping

AbstractPropertyMetaData getMetaDataForExternalMapping(JavaTypeMapping mapping,
                                                       int mappingType)
Accessor for the owner field metadata for the specified external mapping of the specified type

Parameters:
mapping - The external mapping
mappingType - The type of mapping
Returns:
Field MetaData in the owner class


Copyright © -2008 . All Rights Reserved.