|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.jpox.metadata.MetaData
org.jpox.metadata.ExtendableMetaData
org.jpox.metadata.AbstractClassMetaData
org.jpox.metadata.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 abstract the PersistenceCapable class |
Fields inherited from class org.jpox.metadata.ExtendableMetaData |
extensions, JPOX_VENDOR_NAME |
Fields inherited from class org.jpox.metadata.MetaData |
LOCALISER, METADATA_CREATED_STATE, METADATA_INITIALISED_STATE, METADATA_POPULATED_STATE, METADATA_USED_STATE, metaDataState, parent |
Constructor Summary | |
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)
Constructor. |
Method Summary | |
void |
addField(FieldMetaData fmd)
Method to add a field to this class. |
void |
addImplements(ImplementsMetaData implmd)
Method to add an implements to this class. |
protected void |
addPropertiesNotInMetaData(java.lang.Class cls)
Add FieldMetaData of fields 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 AbstractPropertyMetaData |
newDefaultedField(java.lang.String name)
Utility to add a defaulted FieldMetaData to the class. |
void |
populate(ClassLoaderResolver clr)
Method to provide the details of the class being represented by this MetaData. |
protected void |
populatePropertyMetaData(ClassLoaderResolver clr,
java.lang.Class cls)
Populate FieldMetaData |
java.lang.String |
toString()
Returns a string representation of the object. |
java.lang.String |
toString(java.lang.String prefix,
java.lang.String indent)
Returns a string representation of the object. |
Methods inherited from class org.jpox.metadata.ExtendableMetaData |
addExtension, addExtension, getExtension, getExtensions, getNoOfExtensions, getValueForExtension, getValuesForExtension, getValuesForExtensionStartingWith, hasExtension, removeExtension |
Methods inherited from class org.jpox.metadata.MetaData |
getParent, isCreated, isInitialised, isPopulated, isUsed, populate, setInitialised, setPopulated, setUsed |
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)
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 inpublic 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 tooMethod Detail |
public void populate(ClassLoaderResolver clr)
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 AbstractClassMetaData
clr
- ClassLoaderResolver to use in loading any classesprotected void addPropertiesNotInMetaData(java.lang.Class cls)
addPropertiesNotInMetaData
in class AbstractClassMetaData
cls
- This classprotected void populatePropertyMetaData(ClassLoaderResolver clr, java.lang.Class cls)
populatePropertyMetaData
in class AbstractClassMetaData
clr
- The ClassLoaderResolvercls
- This class
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 AbstractClassMetaData
protected AbstractPropertyMetaData newDefaultedField(java.lang.String name)
name
- 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 addField(FieldMetaData fmd)
fmd
- Meta-Data for the field.public void addImplements(ImplementsMetaData implmd)
implmd
- Meta-Data for the implementspublic java.lang.String toString()
toString
in class ExtendableMetaData
public java.lang.String toString(java.lang.String prefix, java.lang.String indent)
toString
in class ExtendableMetaData
prefix
- prefix stringindent
- indent string
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |