datastoreIdentityType If the class is using datastore identity, then this is the java type
of the identity as if it was a Java field.
public int
datastoreIdentityTypeCode If the class is using datastore identity, then this is the java type
code (
MDStatics.INT etc) of the identity as if it was a
Java field.
public boolean
deleteOrphans Must orphans be deleted? An instance is considered an orphan if it
is on the many side of at least one one-to-many (master detail)
relationship and all of its back references are null (i.e.
notifyDataStoreOnDirtyOrDelete If the DataStore requires notification before a p-clean instance is made
dirty or deleted in a datastore tx then this flag is true (e.g.
pkFields The application primary key fields in alpha (field number) order.
public boolean
postInsertKeyGenerator Must a flush be done if getObjectId is called on a new instance of
this class? This is set for classes using post-insert key generators.
This is all the managed fields. This is an array where the index
represents the absFieldNo and the value at the index the stateFieldNo. This
is used to convert between abs and stateFieldNos
The unique ID for this class. This is generated from a hash of the
fully qualified class name. Duplicates are resolved by incrementing
the classId.
See Also:ClassMetaData.setClassId(int)
The name of the DataStore this class belongs to. Any DataStore may
have multiple names for different physical stores. This may be
null indicating the default.
Must orphans be deleted? An instance is considered an orphan if it
is on the many side of at least one one-to-many (master detail)
relationship and all of its back references are null (i.e. it has
no parents).
The dependent objects fetch group (null if none i.e. this class and
its superclasses and subclasses have no references to dependent PC
objects). This is used to do a reachability search when deleting.
These are the absolute field numbers of the fields that are loaded into
an instance when it is populated with the default fetch group. This
may be a subset of the fields in the FetchGroup instance for the DFG
as extra fields (e.g. OIDs for references) may be fetched as well but
not loaded.
See Also:com.versant.core.jdo.PCStateMan.loadDFGIntoPC
The fields of the persistent fields that may contain direct (e.g.
foreign key) references to other PC classes. This must be filled in
by the dataStore owning this class. This information is used to sort
graphs of persistent objects for persisting in the correct order
(e.g. to avoid tripping database integrity constraints).
The persistent fields declared in this class (i.e. excluding
superclasses) in relative fieldNo order. This includes extra fake
fields created to hold information required by the store (e.g. row
version values for a JDBC class). The fake fields are always at the
end of this array after all the real fields.
The many-to-many fetch group (null if none i.e. this class and
its superclasses and subclasses have no many-to-many managed
collection fields). This is used to clear these fields when deleting.
It also includes all fields that must be present to persist changes
to an instance.
This holds all the nonAutoSetStateFieldNos. These fields are stateFieldNos.
notifyDataStoreOnDirtyOrDelete
public boolean notifyDataStoreOnDirtyOrDelete(Code)
If the DataStore requires notification before a p-clean instance is made
dirty or deleted in a datastore tx then this flag is true (e.g.
VdsDataStore).
The fields that must be persisted on pass 2 in fieldNo order. This
is filled using the secondaryField flag on FieldMetaData. Note that
NOT these are relative fieldNos.
See Also:FieldMetaData.secondaryField
The meta data for the persistent class heirachy. This includes
all our superclasses in order as well as our selves (i.e. a class
with no PC superclasses will have a pcHeirachy containing just
itself).
Must a flush be done if getObjectId is called on a new instance of
this class? This is set for classes using post-insert key generators.
This is also used to decide if a full graph sort is required on persist.
The referenced objects fetch group (null if none i.e. this class and
its superclasses and subclasses have no references to other PC objects).
This includes polyrefs and collections and is used to do reachability
searches.
If this class is involved in a reference cycle with other classes then
this flag will be set (e.g. this is true for classes A -> B -> C -> A).
Constraints must not be generated for any references between classes
with this flag set.
See Also:ClassMetaData.referenceGraphIndex
The position of this class in the topological sort of the graph created
by following direct references between classes. Example: If A
references B, then A.index < B.index and A must be deleted before B
to avoid tripping constraints.
See Also:ClassMetaData.referenceGraphCycle
This fetch group contains all fields that must be filled in the
original state (e.g. jdoVersion etc.) when persisting changes to
instances. It will be null if the class has no such fields (e.g.
using optimistic locking 'none').
This is only used for refFields. If the ref Field is not found then return a null
instead of a VersantObjectNotFoundException. This is a classLevel setting.
The total number of FetchGroups in all of our superclasses (i.e. the
total of fetchGroups.length for all our superclasses). This is used
to convert relative fetch group indexes to State fetch group indexes.
The total number of fields in all of our superclasses (i.e. the
total of fields.length for all our superclasses). This is useful
to convert relative fieldNo's to State fieldNos.
Calculate and set the superFieldCount and superFetchGroup value
for this class and recursively all of its subclasses. This also
initializes various arrays of fieldNos etc.
cleanupAfterMetaDataGeneration
public void cleanupAfterMetaDataGeneration()(Code)
Cleanup any data structures not needed after meta data generation.
final publicFetchGroup getFetchGroup(int fgIndex, int clsId)(Code)
Get the fetch group with index fgIndex. If the group does not match
clsId then the super fetch group is used and so on recursively. If
no fetch group is found a JDOGenieFatalInternalException is thrown.
Get an instance of our class for meta data analysis. If our class is
abstract then we may return an instance of one of our subclasses. If
we have no concrete subclasses then null is returned. The instance
is cached.
Get Map.Entry's for all of our named queries in alpha order or empty list
if none. The key of each Entry is the name and the value the QueryDetails
instance.
Is this class part of a heirachy (i.e. Does this class have super classes
or sub classes that are PesistentCapable)
true if this class has super classes or sub classes thatare PesistentCapable