|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.datanucleus.metadata.MetaData
org.datanucleus.metadata.AbstractClassMetaData
org.datanucleus.metadata.ClassMetaData
public class ClassMetaData
Representation of the MetaData of a class. Extends the abstract definition to include implementations, fields, embedded-only tags. Has a parent PackageMetaData that can contain the metadata for several classes.
Fields are of 2 types. The first are normal fields of this class. These have their own "relative" field number, relative to this class. The second type are "overriding" fields which override the baseline field in a superclass. These fields have no "relative" field number since they are relative to this class (and such a relative field number would make no sense). Fields are all added through addField() during the parse process, and are updated during the populate/initialise process to define their relative field numbers. Please refer to FieldMetaData for more details of fields.
<!ELEMENT class (datastore-identity?, implements*, inheritance?, version?, join*,
foreign-key*, index*, unique*, field*, column*, query*, fetch-group*, extension*)>
<!ATTLIST class name CDATA #REQUIRED>
<!ATTLIST class identity-type (application|datastore|nondurable) #IMPLIED>
<!ATTLIST class catalog CDATA #IMPLIED>
<!ATTLIST class schema CDATA #IMPLIED>
<!ATTLIST class table CDATA #IMPLIED>
<!ATTLIST class persistence-capable-superclass CDATA #IMPLIED>
<!ATTLIST class objectid-class CDATA #IMPLIED>
<!ATTLIST class requires-extent (true|false) 'true'>
<!ATTLIST class detachable (true|false) 'true'>
<!ATTLIST class embedded-only (true|false) #IMPLIED>
<!ATTLIST class persistence-modifier
(persistence-capable|persistence-aware|non-persistent) #IMPLIED>
| Field Summary | |
|---|---|
protected java.util.List |
implementations
List of implements. |
protected ImplementsMetaData[] |
implementsMetaData
ImplementsMetaData |
protected boolean |
isAbstractPersistenceCapable
is the persistable class abstract. |
| Fields inherited from class org.datanucleus.metadata.MetaData |
|---|
extensions, LOCALISER, METADATA_CREATED_STATE, METADATA_INITIALISED_STATE, METADATA_POPULATED_STATE, METADATA_USED_STATE, metaDataState, parent, VENDOR_NAME, VENDOR_NAME_OLD |
| Constructor Summary | |
|---|---|
ClassMetaData(ClassMetaData cmd,
java.lang.String implClassName)
Constructor for creating the ClassMetaData for an implementation of a "persistent-abstract-class". |
|
ClassMetaData(InterfaceMetaData imd,
java.lang.String implClassName,
boolean copyFields)
Constructor for creating the ClassMetaData for an implementation of a "persistent-interface". |
|
ClassMetaData(PackageMetaData parent,
java.lang.String name,
java.lang.String identityType,
java.lang.String objectidClass,
java.lang.String requiresExtent,
java.lang.String detachable,
java.lang.String embeddedOnly,
java.lang.String modifier,
java.lang.String persistenceCapableSuperclass,
java.lang.String catalog,
java.lang.String schema,
java.lang.String table,
java.lang.String entityName)
Constructor. |
|
| Method Summary | |
|---|---|
void |
addImplements(ImplementsMetaData implmd)
Method to add an implements to this class. |
protected void |
addMetaDataForMembersNotInMetaData(java.lang.Class cls)
Add MetaData of fields/properties not declared in MetaData. |
ImplementsMetaData[] |
getImplementsMetaData()
Accessor for the implements MetaData |
boolean |
implementsInterface(java.lang.String interfaceName)
Convenience accessor for whether this class implements a specified interface |
void |
initialise()
Method to initialise the object, creating internal convenience arrays. |
boolean |
isAbstractPersistenceCapable()
Whether the PersistenceCapable class is abstract |
protected AbstractMemberMetaData |
newDefaultedProperty(java.lang.String name)
Utility to add a defaulted FieldMetaData to the class. |
void |
populate(ClassLoaderResolver clr,
java.lang.ClassLoader primary)
Method to provide the details of the class being represented by this MetaData. |
protected void |
populateMemberMetaData(ClassLoaderResolver clr,
java.lang.Class cls,
boolean pkMembers,
java.lang.ClassLoader primary)
Populate MetaData for all members. |
java.lang.String |
toString(java.lang.String prefix,
java.lang.String indent)
Returns a string representation of the object. |
| Methods inherited from class org.datanucleus.metadata.MetaData |
|---|
addExtension, addExtension, getExtensions, getNoOfExtensions, getParent, getValueForExtension, getValuesForExtension, hasExtension, isInitialised, isPopulated, isUsed, removeExtension, setInitialised, setParent, setPopulated, setUsed, toString |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
protected java.util.List implementations
protected ImplementsMetaData[] implementsMetaData
protected boolean isAbstractPersistenceCapable
| Constructor Detail |
|---|
public ClassMetaData(PackageMetaData parent,
java.lang.String name,
java.lang.String identityType,
java.lang.String objectidClass,
java.lang.String requiresExtent,
java.lang.String detachable,
java.lang.String embeddedOnly,
java.lang.String modifier,
java.lang.String persistenceCapableSuperclass,
java.lang.String catalog,
java.lang.String schema,
java.lang.String table,
java.lang.String entityName)
parent - The package to which this class belongsname - Name of classidentityType - identity-type flagobjectidClass - Primary key class namerequiresExtent - Whether the class requires an extentdetachable - Whether the class can be detachedmodifier - persistence-modifier tagembeddedOnly - embedded-only tagpersistenceCapableSuperclass - Name of PC superclasscatalog - Name for catalogschema - Name for schematable - RDBMS table to store the class inentityName - the entity name required by JPA §4.3.1
public ClassMetaData(InterfaceMetaData imd,
java.lang.String implClassName,
boolean copyFields)
imd - MetaData for the "persistent-interface"implClassName - Name of the implementation classcopyFields - Whether to copy the fields of the interface too
public ClassMetaData(ClassMetaData cmd,
java.lang.String implClassName)
cmd - MetaData for the implementation of the "persistent-abstract-class"implClassName - Name of the implementation class| Method Detail |
|---|
public void populate(ClassLoaderResolver clr,
java.lang.ClassLoader primary)
One possible use of this method would be to take a basic ClassMetaData for a class and call this, passing in the users class. This would then add FieldMetaData for all fields in this class providing defaults for all of these.
populate in class AbstractClassMetaDataclr - ClassLoaderResolver to use in loading any classesprimary - the primary ClassLoader to use (or null)protected void addMetaDataForMembersNotInMetaData(java.lang.Class cls)
cls - Class represented by this metadata
protected void populateMemberMetaData(ClassLoaderResolver clr,
java.lang.Class cls,
boolean pkMembers,
java.lang.ClassLoader primary)
clr - The ClassLoaderResolvercls - This classpkMembers - Process pk fields/properties (or non-PK if false)primary - the primary ClassLoader to use (or null)
InvalidMetaDataException - if the Class for a declared type in a field cannot be loaded by the clr
InvalidMetaDataException - if a field declared in the MetaData does not exist in the Classpublic void initialise()
initialise in class AbstractClassMetaDataprotected AbstractMemberMetaData newDefaultedProperty(java.lang.String name)
newDefaultedProperty in class AbstractClassMetaDataname - name of field
public final ImplementsMetaData[] getImplementsMetaData()
public boolean implementsInterface(java.lang.String interfaceName)
interfaceName - The name of the interface
public boolean isAbstractPersistenceCapable()
public void addImplements(ImplementsMetaData implmd)
implmd - Meta-Data for the implements
public java.lang.String toString(java.lang.String prefix,
java.lang.String indent)
toString in class MetaDataprefix - prefix stringindent - indent string
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||