|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.openjpa.meta.Extensions org.apache.openjpa.meta.ClassMetaData
public class ClassMetaData
Contains metadata about a persistent type.
This metadata is available both at enhancement time and runtime.
Note that this class employs aggressive caching, and therefore it is
important to finalize the configuration of field metadatas before invoking
methods that depend on that configuration, such as
getPrimaryKeyFields()
.
Field Summary | |
---|---|
static int |
ACCESS_EXPLICIT
Persistent class has explicitly defined an access type. |
static int |
ACCESS_FIELD
Persistent attributes are accessed via direct field access. |
static int |
ACCESS_PROPERTY
Persistent attributes are accessed via setters and getters. |
static int |
ACCESS_UNKNOWN
Unknown access type. |
protected static String |
DEFAULT_STRING
|
static int |
ID_APPLICATION
Application identity type. |
static int |
ID_DATASTORE
Datastore identity type. |
static int |
ID_UNKNOWN
Unknown identity type. |
static String |
SYNTHETIC
Value for using a synthetic detached state field, which is the default. |
Fields inherited from class org.apache.openjpa.meta.Extensions |
---|
OPENJPA |
Fields inherited from interface org.apache.openjpa.lib.meta.SourceTracker |
---|
SRC_ANNOTATIONS, SRC_OTHER, SRC_XML |
Fields inherited from interface org.apache.openjpa.meta.MetaDataModes |
---|
MODE_ALL, MODE_ANN_MAPPING, MODE_MAPPING, MODE_MAPPING_INIT, MODE_META, MODE_NONE, MODE_QUERY |
Fields inherited from interface org.apache.openjpa.lib.xml.Commentable |
---|
EMPTY_COMMENTS |
Constructor Summary | |
---|---|
protected |
ClassMetaData(Class<?> type,
MetaDataRepository repos)
Constructor. |
protected |
ClassMetaData(ValueMetaData owner)
Embedded constructor. |
Method Summary | |
---|---|
FetchGroup |
addDeclaredFetchGroup(String name)
Adds fetch group of the given name, or returns existing instance. |
FieldMetaData |
addDeclaredField(String name,
Class<?> type)
Add a new field metadata to this class. |
void |
addDeclaredInterface(Class<?> iface)
Explicitly declare the given interface among the ones this class implements. |
FieldMetaData |
addDefinedSuperclassField(String name,
Class<?> type,
Class<?> sup)
Add a new defined superclass field metadata to this class. |
protected void |
addExtensionKeys(Collection exts)
Add all the known extension keys to the specified collection; any implementation that utilized new extensions should override this method to include both the known extensions of its superclass as well as its own extension keys. |
protected void |
clearAllFieldCache()
Clear cached field data. |
protected void |
clearDefinedFieldCache()
Clear defined field data. |
(package private) void |
clearExtraFieldDataTable()
Clear impl data and intermediate data table. |
protected void |
clearFieldCache()
Clear cached field data. |
protected void |
clearSubclassCache()
Clear cached subclass data. |
int |
compareTo(ClassMetaData other)
|
void |
copy(ClassMetaData meta)
Copy the metadata from the given instance to this one. |
void |
defineSuperclassFields(boolean force)
Incorporate superclass fields redefined in this subclass into this metadata. |
boolean |
equals(Object other)
|
int |
getAccessType()
The access type used by this class. |
Boolean |
getCacheEnabled()
Returns tri-state status on whether this class has been enabled for caching. |
int |
getColNumber()
Return the column number in the line of the file at which this instance was parsed. |
String[] |
getComments()
Return comments, or empty array if none. |
FetchGroup[] |
getCustomFetchGroups()
Return all fetch groups for this type, including superclass groups but excluding the standard groups such as "default" or "all". |
DataCache |
getDataCache()
Return the data cache for this class, or null if it is not cachable. |
boolean |
getDataCacheEnabled()
Affirms true if this receiver is annotated with @DataCache and is not disabled. |
String |
getDataCacheName()
The name of the data cache that stores the managed instance of this class, by default. |
int |
getDataCacheTimeout()
The cache timeout for this class. |
FetchGroup[] |
getDeclaredFetchGroups()
Return the fetch groups declared explicitly in this type. |
FieldMetaData |
getDeclaredField(int index)
Return the metadata for the persistent or transactional field with the given relative index. |
FieldMetaData |
getDeclaredField(String name)
Return the metadata for the persistent or transactional field with the given name, without including superclass fields. |
String[] |
getDeclaredFieldNames()
Utility method to get names of all declared fields excluding the superclasses' sorted in lexical order. |
FieldMetaData[] |
getDeclaredFields()
Return only the fields for this class, without superclass fields. |
Class<?>[] |
getDeclaredInterfaces()
Return all explicitly declared interfaces this class implements. |
FieldMetaData[] |
getDeclaredUnmanagedFields()
Return any fields that were added as non-managed. |
FieldMetaData[] |
getDefaultFetchGroupFields()
Return the list of fields in the default fetch group, including superclass fields, or an empty array if none. |
FieldMetaData[] |
getDefinedFields()
Returns an array of all the fields defined by this class. |
FieldMetaData[] |
getDefinedFieldsInListingOrder()
Returns all fields defined by this class in the order they are listed in the metadata file. |
FieldMetaData |
getDefinedSuperclassField(String name)
Return the defined superclass field with the given name, or null if none. |
Class<?> |
getDescribedType()
The persistence capable class described by this metadata. |
String |
getDescribedTypeString()
The persistence capable stringified class described by this metadata. |
String |
getDetachedState()
The name of the detach state field, or null if none. |
Field |
getDetachedStateField()
Return the detach state field, or null if none. |
ValueMetaData |
getEmbeddingMetaData()
If this metadata is for an embedded object, returning the owning value. |
ClassLoader |
getEnvClassLoader()
The environmental loader used when loading this metadata. |
int |
getExtraFieldDataIndex(int field)
Return the intermediate field data index of the given field in the compacted array, or -1 if the field does not use extra data. |
int |
getExtraFieldDataLength()
Return the number of fields that use impl or intermediate data, in order to create a compacted array for storage of said data. |
FetchGroup |
getFetchGroup(String name)
Gets a named fetch group. |
FieldMetaData |
getField(int index)
Return the metadata for the persistent or transactional field with the given absolute index. |
FieldMetaData |
getField(String name)
Return the metadata for the persistent or transactional field with the given name. |
String[] |
getFieldNames()
Utility method to get names of all fields including the superclasses' sorted in lexical order. |
FieldMetaData[] |
getFields()
Return all field metadata, including superclass fields. |
FieldMetaData[] |
getFieldsInListingOrder()
Returns all fields in the order they are listed in the metadata file. |
SequenceMetaData |
getIdentitySequenceMetaData()
Metadata for the datastore identity sequence. |
String |
getIdentitySequenceName()
The datastore identity sequence name, or null for none. |
int |
getIdentityStrategy()
The strategy to use for datastore identity generation. |
int |
getIdentityType()
The type of identity being used. |
String[] |
getInterfaceAliasedProperties(Class<?> iface)
Return all aliases property named for the given interface. |
Class<?> |
getInterfaceImpl()
Return the managed interface implementor if any. |
String |
getInterfacePropertyAlias(Class<?> iface,
String orig)
Get local field alias for the given interface property. |
LifecycleMetaData |
getLifecycleMetaData()
Information about lifecycle callbacks for this class. |
int |
getLineNumber()
Return the line number of the file at which this instance was parsed. |
int |
getListingIndex()
The index in which this class was listed in the metadata. |
FieldMetaData[] |
getLrsFields()
Return all large result set fields. |
ClassMetaData[] |
getMappedPCSubclassMetaDatas()
Return all mapped subclasses. |
ClassMetaData |
getMappedPCSuperclassMetaData()
Return the closest mapped superclass. |
Class<?> |
getObjectIdType()
The metadata-specified class to use for the object ID. |
Class<?>[] |
getPCSubclasses()
Return the known persistence capable subclasses of the described type, or empty array if none or if this is embedded metadata. |
ClassMetaData[] |
getPCSubclassMetaDatas()
Return the metadata for the known persistence capable subclasses of the described type, or empty array if none or if this is embedded metadata. |
Class<?> |
getPCSuperclass()
The persistence capable superclass of the described type. |
ClassMetaData |
getPCSuperclassMetaData()
The metadata for this class' superclass. |
FieldMetaData[] |
getPrimaryKeyFields()
Return primary key fields, or empty array if none. |
FieldMetaData[] |
getProxyFields()
Return all fields that are types that need to be wrappered by a proxy. |
MetaDataRepository |
getRepository()
Return the owning repository. |
boolean |
getRequiresExtent()
Whether the type requires extent management. |
int |
getResolve()
The resolve mode for this metadata. |
String |
getResourceName()
Return the domain-meaningful name of the resource that was loaded from this source. |
File |
getSourceFile()
Return the file from which this instance was parsed. |
int |
getSourceMode()
The source mode this metadata has been loaded under. |
String |
getSourceName()
|
Object |
getSourceScope()
Return the domain-dependent scope of this instance within its file. |
int |
getSourceType()
Return the type of source. |
protected FieldMetaData |
getSuperclassField(FieldMetaData supField)
Return the superclass copy of the given field. |
String |
getTypeAlias()
Returns the alias for the described type, or null if none
has been set. |
FieldMetaData |
getVersionField()
Return the version field for this class, if any. |
boolean |
hasAbstractPKField()
Convenience method to determine if the pcType modeled by this ClassMetaData object is both abstract and declares PKFields. |
int |
hashCode()
|
boolean |
hasPKFieldsFromAbstractClass()
Convenience method to determine if this type is a direct decendent of an abstract type declaring PKFields. |
protected void |
initializeMapping()
Initialize mapping. |
boolean |
isAbstract()
|
boolean |
isAccessibleField(String field)
Return whether the given name represents a managed or static field of this class, including superclass fields. |
boolean |
isDetachable()
Whether instances are detachable. |
boolean |
isEmbeddable()
|
boolean |
isEmbeddedOnly()
Whether the type can only be used as an embedded object. |
boolean |
isExplicitAccess()
Affirms if access style is explicitly defined. |
boolean |
isIntercepting()
Whether the type's fields are actively intercepted, either by redefinition or enhancement. |
boolean |
isManagedInterface()
Whether the type is a managed interface. |
boolean |
isMapped()
Whether this class is mapped to the datastore. |
boolean |
isMixedAccess()
Affirms if attributes of this class use mixed access types. |
boolean |
isObjectIdTypeShared()
Whether this type uses an application identity class that is shared with other classes, and is therefore wrapped in an ObjectId . |
boolean |
isOpenJPAIdentity()
Whether this type uses OpenJPA identity. |
(package private) void |
mergeFieldAccess(FieldMetaData fmd,
int fCode)
Asserts the the given field (which must belong to this receiver) can be set to the given access code. |
void |
registerForValueUpdate(String... values)
|
boolean |
removeDeclaredFetchGroup(FetchGroup fg)
Remove a declared fetch group. |
boolean |
removeDeclaredField(FieldMetaData field)
Remove the given field from management. |
boolean |
removeDeclaredInterface(Class<?> iface)
Remove the given interface from the declared list. |
boolean |
removeDefinedSuperclassField(FieldMetaData field)
Remove the given field from management. |
boolean |
resolve(int mode)
Resolve and validate metadata. |
protected void |
resolveMapping(boolean runtime)
Resolve mapping data. |
protected void |
resolveMeta(boolean runtime)
Resolve metadata. |
void |
setAbstract(boolean flag)
|
void |
setAccessType(int type)
Sets the access type. |
void |
setCacheEnabled(boolean enabled)
Sets the eligibility status of this class for cache. |
void |
setColNumber(int colNum)
|
void |
setComments(String[] comments)
Set comments. |
void |
setDataCacheName(String name)
Set the cache name for this class. |
void |
setDataCacheTimeout(int timeout)
The cache timeout for this class. |
protected void |
setDescribedType(Class<?> type)
Set the class described by this metadata. |
void |
setDetachable(boolean detachable)
Whether instances are detachable. |
void |
setDetachedState(String field)
The name of the detach state field, or null if none. |
void |
setEmbeddable()
|
void |
setEmbeddedOnly(boolean embed)
Whether the type can only be used as an embedded object. |
void |
setEnvClassLoader(ClassLoader loader)
The class environmental loader used when loading this metadata. |
void |
setIdentitySequenceName(String seqName)
The datastore identity sequence name, or null for none. |
void |
setIdentityStrategy(int strategy)
The strategy to use for datastore identity generation. |
void |
setIdentityType(int type)
The type of identity being used. |
void |
setIntercepting(boolean intercepting)
Whether the type's fields are actively intercepted, either by redefinition or enhancement. |
void |
setInterfaceImpl(Class<?> impl)
Set the managed interface implementor class. |
void |
setInterfacePropertyAlias(Class<?> iface,
String orig,
String local)
Alias properties from the given interface during queries to the local field. |
void |
setLineNumber(int lineNum)
|
void |
setListingIndex(int index)
The index in which this field was listed in the metadata. |
void |
setManagedInterface(boolean managedInterface)
Whether the type is a managed interface |
void |
setObjectIdType(Class<?> cls,
boolean shared)
The metadata-specified class to use for the object ID. |
void |
setPCSuperclass(Class<?> pc)
The persistence capable superclass of the described type. |
void |
setPCSuperclassMetaData(ClassMetaData meta)
The metadata for this class' superclass. |
void |
setRequiresExtent(boolean req)
Whether the type requires extent management. |
void |
setResolve(int mode)
The resolve mode for this metadata. |
void |
setResolve(int mode,
boolean on)
The resolve mode for this metadata. |
void |
setSource(File file,
int srcType,
String srcName)
|
void |
setSourceMode(int mode)
The source mode this metadata has been loaded under. |
void |
setSourceMode(int mode,
boolean on)
The source mode this metadata has been loaded under. |
void |
setTypeAlias(String alias)
Sets the alias for the described type. |
(package private) String[] |
toNames(FieldMetaData[] fields)
|
String |
toString()
|
boolean |
useIdClassFromParent()
Return true if this class uses IdClass derived from idClass of the parent entity which annotated as id in the child class. |
Boolean |
usesDetachedState()
Whether an instance of this type has detached state. |
protected void |
validateMapping(boolean runtime)
Validate mapping data. |
protected void |
validateMeta(boolean runtime)
Validate resolved metadata. |
void |
valueChanged(Value val)
Callback used by Value objects to notify listener of change. |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final int ID_UNKNOWN
public static final int ID_DATASTORE
public static final int ID_APPLICATION
public static final int ACCESS_UNKNOWN
public static final int ACCESS_FIELD
public static final int ACCESS_PROPERTY
public static final int ACCESS_EXPLICIT
public static final String SYNTHETIC
protected static final String DEFAULT_STRING
Constructor Detail |
---|
protected ClassMetaData(Class<?> type, MetaDataRepository repos)
protected ClassMetaData(ValueMetaData owner)
Method Detail |
---|
public MetaDataRepository getRepository()
getRepository
in interface MetaDataContext
getRepository
in class Extensions
public ValueMetaData getEmbeddingMetaData()
public Class<?> getDescribedType()
public String getDescribedTypeString()
protected void setDescribedType(Class<?> type)
public ClassLoader getEnvClassLoader()
public void setEnvClassLoader(ClassLoader loader)
public Class<?> getPCSuperclass()
public void setPCSuperclass(Class<?> pc)
public ClassMetaData getPCSuperclassMetaData()
public void setPCSuperclassMetaData(ClassMetaData meta)
public boolean isMapped()
public ClassMetaData getMappedPCSuperclassMetaData()
public Class<?>[] getPCSubclasses()
public ClassMetaData[] getPCSubclassMetaDatas()
public ClassMetaData[] getMappedPCSubclassMetaDatas()
public int getIdentityType()
ID_UNKNOWN
: unknown identity typeID_DATASTORE
: identity managed by the data store and
independent of the fields of the instanceID_APPLICATION
: identity managed by the application and
defined by one or more fields of the instanceID_DATASTORE
if there are no
primary key fields, and ID_APPLICATION
otherwise.
public void setIdentityType(int type)
ID_UNKNOWN
: unknown identity typeID_DATASTORE
: identity managed by the data store and
independent of the fields of the instanceID_APPLICATION
: identity managed by the application and
defined by one or more fields of the instanceID_DATASTORE
if there are no
primary key fields, and ID_APPLICATION
otherwise.
public Class<?> getObjectIdType()
public void setObjectIdType(Class<?> cls, boolean shared)
public boolean isObjectIdTypeShared()
ObjectId
.
public boolean isOpenJPAIdentity()
public int getIdentityStrategy()
ValueStrategies
.
public void setIdentityStrategy(int strategy)
ValueStrategies
.
public String getIdentitySequenceName()
public void setIdentitySequenceName(String seqName)
public SequenceMetaData getIdentitySequenceMetaData()
public LifecycleMetaData getLifecycleMetaData()
public String getTypeAlias()
null
if none
has been set.
setTypeAlias(java.lang.String)
public void setTypeAlias(String alias)
alias
- the alias name to apply to the described typepublic int getAccessType()
public void setAccessType(int type)
void mergeFieldAccess(FieldMetaData fmd, int fCode)
public boolean isExplicitAccess()
public boolean isMixedAccess()
public boolean getRequiresExtent()
public void setRequiresExtent(boolean req)
public boolean isEmbeddedOnly()
public void setEmbeddedOnly(boolean embed)
public boolean isEmbeddable()
public void setEmbeddable()
public boolean isIntercepting()
public void setIntercepting(boolean intercepting)
public boolean isManagedInterface()
public void setManagedInterface(boolean managedInterface)
public Class<?> getInterfaceImpl()
public void setInterfaceImpl(Class<?> impl)
public Class<?>[] getDeclaredInterfaces()
public void addDeclaredInterface(Class<?> iface)
public boolean removeDeclaredInterface(Class<?> iface)
public void setInterfacePropertyAlias(Class<?> iface, String orig, String local)
public String getInterfacePropertyAlias(Class<?> iface, String orig)
public String[] getInterfaceAliasedProperties(Class<?> iface)
public int getExtraFieldDataLength()
public int getExtraFieldDataIndex(int field)
getExtraFieldDataLength()
public boolean isAccessibleField(String field)
public FieldMetaData[] getProxyFields()
public FieldMetaData[] getLrsFields()
public FieldMetaData[] getFields()
protected FieldMetaData getSuperclassField(FieldMetaData supField)
public FieldMetaData[] getDeclaredFields()
public FieldMetaData[] getPrimaryKeyFields()
public FieldMetaData[] getDefaultFetchGroupFields()
public FieldMetaData getVersionField()
public FieldMetaData getField(int index)
public FieldMetaData getDeclaredField(int index)
public FieldMetaData getField(String name)
public FieldMetaData getDeclaredField(String name)
public FieldMetaData[] getDeclaredUnmanagedFields()
public FieldMetaData addDeclaredField(String name, Class<?> type)
public boolean removeDeclaredField(FieldMetaData field)
public FieldMetaData getDefinedSuperclassField(String name)
public FieldMetaData addDefinedSuperclassField(String name, Class<?> type, Class<?> sup)
public boolean removeDefinedSuperclassField(FieldMetaData field)
public void defineSuperclassFields(boolean force)
force
- whether to force re-mapping of even mapped superclass fieldspublic FieldMetaData[] getDefinedFields()
public FieldMetaData[] getFieldsInListingOrder()
public FieldMetaData[] getDefinedFieldsInListingOrder()
public String getDataCacheName()
public void setDataCacheName(String name)
can
- be null to disable cache.public boolean getDataCacheEnabled()
public int getDataCacheTimeout()
public void setDataCacheTimeout(int timeout)
public DataCache getDataCache()
public boolean isDetachable()
public void setDetachable(boolean detachable)
public String getDetachedState()
public void setDetachedState(String field)
public Field getDetachedStateField()
public Boolean usesDetachedState()
protected void clearAllFieldCache()
protected void clearDefinedFieldCache()
protected void clearFieldCache()
protected void clearSubclassCache()
void clearExtraFieldDataTable()
public int hashCode()
hashCode
in class Object
public boolean equals(Object other)
equals
in class Object
public int compareTo(ClassMetaData other)
compareTo
in interface Comparable<ClassMetaData>
public String toString()
toString
in class Object
public int getResolve()
public void setResolve(int mode)
public void setResolve(int mode, boolean on)
public boolean resolve(int mode)
protected void resolveMeta(boolean runtime)
protected void validateMeta(boolean runtime)
protected void resolveMapping(boolean runtime)
protected void validateMapping(boolean runtime)
protected void initializeMapping()
public boolean useIdClassFromParent()
public FetchGroup[] getDeclaredFetchGroups()
public FetchGroup[] getCustomFetchGroups()
public FetchGroup getFetchGroup(String name)
name
- name of a fetch group.
public FetchGroup addDeclaredFetchGroup(String name)
name
- a non-null, non-empty name. Must be unique within this
receiver's scope. The super class may have a group with
the same name.public boolean removeDeclaredFetchGroup(FetchGroup fg)
public File getSourceFile()
SourceTracker
getSourceFile
in interface SourceTracker
public Object getSourceScope()
SourceTracker
getSourceScope
in interface SourceTracker
public int getSourceType()
SourceTracker
getSourceType
in interface SourceTracker
public void setSource(File file, int srcType, String srcName)
public String getResourceName()
SourceTracker
getResourceName
in interface SourceTracker
public int getLineNumber()
SourceTracker
getLineNumber
in interface SourceTracker
public void setLineNumber(int lineNum)
public int getColNumber()
SourceTracker
getColNumber
in interface SourceTracker
public void setColNumber(int colNum)
public int getSourceMode()
public void setSourceMode(int mode)
public void setSourceMode(int mode, boolean on)
public int getListingIndex()
-1
if this class was not listed in the metadata.
public void setListingIndex(int index)
-1
if this class was not listed in the metadata.
public String[] getComments()
Commentable
getComments
in interface Commentable
public void setComments(String[] comments)
Commentable
setComments
in interface Commentable
public void copy(ClassMetaData meta)
protected void addExtensionKeys(Collection exts)
Extensions
addExtensionKeys
in class Extensions
public void registerForValueUpdate(String... values)
public void valueChanged(Value val)
ValueListener
Value
objects to notify listener of change.
valueChanged
in interface ValueListener
public String[] getFieldNames()
public String[] getDeclaredFieldNames()
String[] toNames(FieldMetaData[] fields)
public boolean isAbstract()
public void setAbstract(boolean flag)
public boolean hasAbstractPKField()
public boolean hasPKFieldsFromAbstractClass()
public void setCacheEnabled(boolean enabled)
public Boolean getCacheEnabled()
public String getSourceName()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |