|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.jdo.impl.enhancer.util.Assertion
org.apache.jdo.impl.enhancer.util.Support
org.apache.jdo.impl.enhancer.meta.util.EnhancerMetaDataTimer
public final class EnhancerMetaDataTimer
Field Summary | |
---|---|
protected EnhancerMetaData |
delegate
|
Fields inherited from class org.apache.jdo.impl.enhancer.util.Support |
---|
timer |
Fields inherited from interface org.apache.jdo.impl.enhancer.meta.EnhancerMetaData |
---|
CHECK_READ, CHECK_WRITE, MEDIATE_READ, MEDIATE_WRITE, SERIALIZABLE |
Constructor Summary | |
---|---|
EnhancerMetaDataTimer(EnhancerMetaData delegate)
Creates an instance. |
Method Summary | |
---|---|
void |
declareField(java.lang.String classPath,
java.lang.String fieldName,
java.lang.String signature)
Declares a field to the JDO model passing its type information. |
java.lang.String |
getDeclaringClass(java.lang.String classPath,
java.lang.String fieldName)
Returns the JVM-qualified name of the specified field's declaring class. |
int |
getFieldFlags(java.lang.String classPath,
java.lang.String fieldName)
Returns the field flags for a declared field of a class. |
int[] |
getFieldFlags(java.lang.String classPath,
java.lang.String[] fieldNames)
Returns the field flags for some declared, managed fields of a class. |
int |
getFieldNumber(java.lang.String classPath,
java.lang.String fieldName)
Returns the unique field index of a declared, managed field of a class. |
int[] |
getFieldNumber(java.lang.String classPath,
java.lang.String[] fieldNames)
Returns the unique field index of some declared, managed fields of a class. |
java.lang.String |
getKeyClass(java.lang.String classPath)
Returns the name of the key class of a class. |
java.lang.String[] |
getKeyFields(java.lang.String classPath)
Returns an array of field names of all key fields of a class. |
java.lang.String[] |
getManagedFields(java.lang.String classPath)
Returns an array of field names of all declared persistent and transactional fields of a class. |
java.lang.String |
getPersistenceCapableRootClass(java.lang.String classPath)
Returns the name of the persistence-capable root class of a class. |
java.lang.String |
getPersistenceCapableSuperClass(java.lang.String classPath)
Returns the name of the persistence-capable superclass of a class. |
java.lang.String |
getSuperKeyClass(java.lang.String classPath)
Returns the name of the key class of the next persistence-capable superclass that defines one. |
boolean |
isDefaultFetchGroupField(java.lang.String classPath,
java.lang.String fieldName)
Returns whether a field of a class is part of the default fetch group. |
boolean |
isKeyField(java.lang.String classPath,
java.lang.String fieldName)
Returns whether a field of a class is key. |
boolean |
isKnownNonManagedField(java.lang.String classPath,
java.lang.String fieldName,
java.lang.String fieldSig)
Returns whether a field of a class is known to be non-managed. |
boolean |
isKnownUnenhancableClass(java.lang.String classPath)
Returns whether a class is not to be modified by the enhancer. |
boolean |
isManagedField(java.lang.String classPath,
java.lang.String fieldName)
Returns whether a field of a class is transient transactional or persistent. |
boolean |
isPersistenceCapableClass(java.lang.String classPath)
Returns whether a class is persistence-capable. |
boolean |
isPersistenceCapableRootClass(java.lang.String classPath)
Returns whether a class is persistence-capable root class. |
boolean |
isPersistentField(java.lang.String classPath,
java.lang.String fieldName)
Returns whether a field of a class is persistent. |
boolean |
isSerializableClass(java.lang.String classPath)
Returns whether a class implements java.io.Serializable. |
boolean |
isTransactionalField(java.lang.String classPath,
java.lang.String fieldName)
Returns whether a field of a class is transient transactional. |
Methods inherited from class org.apache.jdo.impl.enhancer.util.Support |
---|
getI18N, getI18N, getI18N, getI18N, getI18N, getI18N |
Methods inherited from class org.apache.jdo.impl.enhancer.util.Assertion |
---|
affirm, affirm, affirm, affirm |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected final EnhancerMetaData delegate
Constructor Detail |
---|
public EnhancerMetaDataTimer(EnhancerMetaData delegate) throws EnhancerMetaDataUserException, EnhancerMetaDataFatalError
EnhancerMetaDataUserException
EnhancerMetaDataFatalError
Method Detail |
---|
public java.lang.String getDeclaringClass(java.lang.String classPath, java.lang.String fieldName) throws EnhancerMetaDataUserException, EnhancerMetaDataFatalError
EnhancerMetaData
null
for an unkown field.
getDeclaringClass
in interface EnhancerMetaData
classPath
- the non-null JVM-qualified name of the classfieldName
- the non-null name of the field
null
if there is no such field.
EnhancerMetaDataUserException
EnhancerMetaDataFatalError
public void declareField(java.lang.String classPath, java.lang.String fieldName, java.lang.String signature) throws EnhancerMetaDataUserException, EnhancerMetaDataFatalError
EnhancerMetaData
By the new JDO model, it's a requirement to declare fields to the model for their type information before any field information based on persistence-modifiers can be retrieved. This method passes a field's type information to the underlying JDO model.
There's one important exception: The method isKnownNonManagedField() may be called at any time.
The class must be persistence-capable, otherwise an exception is thrown.
declareField
in interface EnhancerMetaData
classPath
- the non-null JVM-qualified name of the classfieldName
- the non-null name of the fieldsignature
- the non-null JVM signature of the field
EnhancerMetaDataUserException
EnhancerMetaDataFatalError
EnhancerMetaData.isPersistenceCapableClass(String)
public boolean isPersistenceCapableClass(java.lang.String classPath) throws EnhancerMetaDataUserException, EnhancerMetaDataFatalError
EnhancerMetaData
If a persistence-capable class is also known to be unenhancable, an exception is thrown. The following holds: isPersistenceCapableClass(classPath) ==> !isKnownUnenhancableClass(classPath)
isPersistenceCapableClass
in interface EnhancerMetaData
classPath
- the non-null JVM-qualified name of the class
EnhancerMetaDataUserException
EnhancerMetaDataFatalError
EnhancerMetaData.isKnownUnenhancableClass(String)
public boolean isSerializableClass(java.lang.String classPath) throws EnhancerMetaDataUserException, EnhancerMetaDataFatalError
EnhancerMetaData
isSerializableClass
in interface EnhancerMetaData
classPath
- the non-null JVM-qualified name of the class
EnhancerMetaDataUserException
EnhancerMetaDataFatalError
public boolean isKnownUnenhancableClass(java.lang.String classPath) throws EnhancerMetaDataUserException, EnhancerMetaDataFatalError
EnhancerMetaData
It is an error if an unenhanceable class is persistence-capable (or persistence-aware). The following holds: isKnownUnenhancableClass(classPath) ==> !isPersistenceCapableClass(classPath)
isKnownUnenhancableClass
in interface EnhancerMetaData
classPath
- the non-null JVM-qualified name of the class
EnhancerMetaDataUserException
EnhancerMetaDataFatalError
EnhancerMetaData.isPersistenceCapableClass(String)
public boolean isPersistenceCapableRootClass(java.lang.String classPath) throws EnhancerMetaDataUserException, EnhancerMetaDataFatalError
EnhancerMetaData
The following holds: isPersistenceCapableRootClass(classPath) <==> isPersistenceCapableClass(classPath) && getPersistenceCapableSuperClass(classPath) == null
isPersistenceCapableRootClass
in interface EnhancerMetaData
classPath
- the non-null JVM-qualified name of the class
EnhancerMetaDataUserException
EnhancerMetaDataFatalError
public java.lang.String getPersistenceCapableRootClass(java.lang.String classPath) throws EnhancerMetaDataUserException, EnhancerMetaDataFatalError
EnhancerMetaData
The following holds: (String s = getPersistenceCapableRootClass(classPath)) != null ==> isPersistenceCapableClass(classPath) && getPersistenceCapableSuperClass(classPath) == null
getPersistenceCapableRootClass
in interface EnhancerMetaData
classPath
- the non-null JVM-qualified name of the class
EnhancerMetaDataUserException
EnhancerMetaDataFatalError
public java.lang.String getPersistenceCapableSuperClass(java.lang.String classPath) throws EnhancerMetaDataUserException, EnhancerMetaDataFatalError
EnhancerMetaData
The following holds: (String s = getPersistenceCapableSuperClass(classPath)) != null ==> isPersistenceCapableClass(classPath) && !isPersistenceCapableRootClass(classPath)
getPersistenceCapableSuperClass
in interface EnhancerMetaData
classPath
- the non-null JVM-qualified name of the class
EnhancerMetaDataUserException
EnhancerMetaDataFatalError
EnhancerMetaData.isPersistenceCapableClass(String)
,
EnhancerMetaData.getPersistenceCapableRootClass(String)
public java.lang.String getKeyClass(java.lang.String classPath) throws EnhancerMetaDataUserException, EnhancerMetaDataFatalError
EnhancerMetaData
The following holds: (String s = getKeyClass(classPath)) != null ==> !isPersistenceCapableClass(s) && isPersistenceCapableClass(classPath)
getKeyClass
in interface EnhancerMetaData
classPath
- the non-null JVM-qualified name of the class
EnhancerMetaDataUserException
EnhancerMetaDataFatalError
EnhancerMetaData.isPersistenceCapableClass(String)
public java.lang.String getSuperKeyClass(java.lang.String classPath) throws EnhancerMetaDataUserException, EnhancerMetaDataFatalError
EnhancerMetaData
The following holds: (String s = getSuperKeyClass(classPath)) != null ==> !isPersistenceCapableClass(s) && isPersistenceCapableClass(classPath) && !isPersistenceCapableRootClass(classPath)
getSuperKeyClass
in interface EnhancerMetaData
classPath
- the non-null JVM-qualified name of the class
EnhancerMetaDataUserException
EnhancerMetaDataFatalError
EnhancerMetaData.getKeyClass(String)
,
EnhancerMetaData.getPersistenceCapableSuperClass(String)
public boolean isKnownNonManagedField(java.lang.String classPath, java.lang.String fieldName, java.lang.String fieldSig) throws EnhancerMetaDataUserException, EnhancerMetaDataFatalError
EnhancerMetaData
This method differs from isManagedField() in that a field may or may not be managed if its not known as non-managed. The following holds (not vice versa!): isKnownNonManagedField(classPath, fieldName, fieldSig) ==> !isManagedField(classPath, fieldName)
This method doesn't require the field having been declared by declareField().
isKnownNonManagedField
in interface EnhancerMetaData
classPath
- the non-null JVM-qualified name of the classfieldName
- the non-null name of the fieldfieldSig
- the non-null type signature of the field
EnhancerMetaDataUserException
EnhancerMetaDataFatalError
EnhancerMetaData.isManagedField(String, String)
,
EnhancerMetaData.declareField(String, String, String)
public boolean isManagedField(java.lang.String classPath, java.lang.String fieldName) throws EnhancerMetaDataUserException, EnhancerMetaDataFatalError
EnhancerMetaData
A managed field must not be known as non-managed and must be either transient transactional or persistent. The following holds: isManagedField(classPath, fieldName) ==> !isKnownNonManagedField(classPath, fieldName, fieldSig) && (isPersistentField(classPath, fieldName) ^ isTransactionalField(classPath, fieldName))
This method requires the field having been declared by declareField().
isManagedField
in interface EnhancerMetaData
classPath
- the non-null JVM-qualified name of the classfieldName
- the non-null name of the field
EnhancerMetaDataUserException
EnhancerMetaDataFatalError
EnhancerMetaData.isKnownNonManagedField(String, String, String)
,
EnhancerMetaData.isPersistentField(String, String)
,
EnhancerMetaData.isTransactionalField(String, String)
,
EnhancerMetaData.isPersistenceCapableClass(String)
public boolean isPersistentField(java.lang.String classPath, java.lang.String fieldName) throws EnhancerMetaDataUserException, EnhancerMetaDataFatalError
EnhancerMetaData
A persistent field cannot be transient transactional. The following holds: isPersistentField(classPath, fieldName) ==> isManagedField(classPath, fieldName) && !isTransactionalField(classPath, fieldName)
This method requires the field having been declared by declareField().
isPersistentField
in interface EnhancerMetaData
classPath
- the non-null JVM-qualified name of the classfieldName
- the non-null name of the field
EnhancerMetaDataUserException
EnhancerMetaDataFatalError
EnhancerMetaData.isManagedField(String, String)
,
EnhancerMetaData.declareField(String, String, String)
public boolean isTransactionalField(java.lang.String classPath, java.lang.String fieldName) throws EnhancerMetaDataUserException, EnhancerMetaDataFatalError
EnhancerMetaData
A transient transactional field cannot be persistent. The following holds: isTransactionalField(classPath, fieldName) ==> isManagedField(classPath, fieldName) && !isPersistentField(classPath, fieldName)
This method requires the field having been declared by declareField().
isTransactionalField
in interface EnhancerMetaData
classPath
- the non-null JVM-qualified name of the classfieldName
- the non-null name of the field
EnhancerMetaDataUserException
EnhancerMetaDataFatalError
EnhancerMetaData.isManagedField(String, String)
,
EnhancerMetaData.declareField(String, String, String)
public boolean isKeyField(java.lang.String classPath, java.lang.String fieldName) throws EnhancerMetaDataUserException, EnhancerMetaDataFatalError
EnhancerMetaData
A key field must be persistent. The following holds: isKeyField(classPath, fieldName) ==> isPersistentField(classPath, fieldName) && !isDefaultFetchGroupField(classPath, fieldName)
This method requires the field having been declared by declareField().
isKeyField
in interface EnhancerMetaData
classPath
- the non-null JVM-qualified name of the classfieldName
- the non-null name of the field
EnhancerMetaDataUserException
EnhancerMetaDataFatalError
EnhancerMetaData.isPersistentField(String, String)
,
EnhancerMetaData.declareField(String, String, String)
public boolean isDefaultFetchGroupField(java.lang.String classPath, java.lang.String fieldName) throws EnhancerMetaDataUserException, EnhancerMetaDataFatalError
EnhancerMetaData
A field in the default fetch group must be persistent. The following holds: isDefaultFetchGroupField(classPath, fieldName) ==> isPersistentField(classPath, fieldName) && !isKeyField(classPath, fieldName)
This method requires the field having been declared by declareField().
isDefaultFetchGroupField
in interface EnhancerMetaData
classPath
- the non-null JVM-qualified name of the classfieldName
- the non-null name of the field
EnhancerMetaDataUserException
EnhancerMetaDataFatalError
EnhancerMetaData.isPersistentField(String, String)
,
EnhancerMetaData.declareField(String, String, String)
public int getFieldFlags(java.lang.String classPath, java.lang.String fieldName) throws EnhancerMetaDataUserException, EnhancerMetaDataFatalError
EnhancerMetaData
The following holds for the field flags: int f = getFieldFlags(classPath, fieldName); !isManagedField(classPath, fieldName) ==> (f & CHECK_READ == 0) && (f & MEDIATE_READ == 0) && (f & CHECK_WRITE == 0) && (f & MEDIATE_WRITE == 0) isTransactionalField(classPath, fieldName) ==> (f & CHECK_READ == 0) && (f & MEDIATE_READ == 0) && (f & CHECK_WRITE != 0) && (f & MEDIATE_WRITE == 0) isKeyField(classPath, fieldName) ==> (f & CHECK_READ == 0) && (f & MEDIATE_READ == 0) && (f & CHECK_WRITE == 0) && (f & MEDIATE_WRITE != 0) isDefaultFetchGroupField(classPath, fieldName) ==> (f & CHECK_READ != 0) && (f & MEDIATE_READ != 0) && (f & CHECK_WRITE == 0) && (f & MEDIATE_WRITE == 0) isPersistentField(classPath, fieldName) && isKeyField(classPath, fieldName) && isDefaultFetchGroupField(classPath, fieldName) ==> (f & CHECK_READ == 0) && (f & MEDIATE_READ == 0) && (f & CHECK_WRITE != 0) && (f & MEDIATE_WRITE != 0)
This method requires the field having been declared by declareField().
getFieldFlags
in interface EnhancerMetaData
classPath
- the non-null JVM-qualified name of the classfieldName
- the non-null name of the field
EnhancerMetaDataUserException
EnhancerMetaDataFatalError
EnhancerMetaData.declareField(String, String, String)
public int getFieldNumber(java.lang.String classPath, java.lang.String fieldName) throws EnhancerMetaDataUserException, EnhancerMetaDataFatalError
EnhancerMetaData
The following holds: int i = getFieldFlags(classPath, fieldName); i > 0 ==> getManagedFields(classPath)[i] == fieldName
This method requires the field having been declared by declareField().
getFieldNumber
in interface EnhancerMetaData
classPath
- the non-null JVM-qualified name of the classfieldName
- the non-null name of the field
EnhancerMetaDataUserException
EnhancerMetaDataFatalError
EnhancerMetaData.getManagedFields(String)
,
EnhancerMetaData.declareField(String, String, String)
public java.lang.String[] getManagedFields(java.lang.String classPath) throws EnhancerMetaDataUserException, EnhancerMetaDataFatalError
EnhancerMetaData
The position of the field names in the result array corresponds to their unique field index as returned by getFieldNumber such that these equations hold:
getFieldNumber(getManagedFields(classPath)[i]) == i
getManagedFields(classPath)[getFieldNumber(fieldName)] == fieldName
This method requires all fields having been declared by declareField().
getManagedFields
in interface EnhancerMetaData
classPath
- the non-null JVM-qualified name of the class
EnhancerMetaDataUserException
EnhancerMetaDataFatalError
EnhancerMetaData.getFieldNumber(String, String)
,
EnhancerMetaData.declareField(String, String, String)
public java.lang.String[] getKeyFields(java.lang.String classPath) throws EnhancerMetaDataUserException, EnhancerMetaDataFatalError
EnhancerMetaData
This method requires all fields having been declared by declareField().
getKeyFields
in interface EnhancerMetaData
classPath
- the non-null JVM-qualified name of the class
EnhancerMetaDataUserException
EnhancerMetaDataFatalError
EnhancerMetaData.declareField(String, String, String)
public int[] getFieldFlags(java.lang.String classPath, java.lang.String[] fieldNames) throws EnhancerMetaDataUserException, EnhancerMetaDataFatalError
EnhancerMetaData
This method requires all fields having been declared by declareField().
getFieldFlags
in interface EnhancerMetaData
classPath
- the non-null JVM-qualified name of the classfieldNames
- the non-null array of names of the declared fields
EnhancerMetaDataUserException
EnhancerMetaDataFatalError
EnhancerMetaData.declareField(String, String, String)
public int[] getFieldNumber(java.lang.String classPath, java.lang.String[] fieldNames) throws EnhancerMetaDataUserException, EnhancerMetaDataFatalError
EnhancerMetaData
This method requires all fields having been declared by declareField().
getFieldNumber
in interface EnhancerMetaData
classPath
- the non-null JVM-qualified name of the classfieldNames
- the non-null array of names of the declared fields
EnhancerMetaDataUserException
EnhancerMetaDataFatalError
EnhancerMetaData.declareField(String, String, String)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |