org.jpox.enhancer.metadata
Class EnhancerClassMetaData

java.lang.Object
  extended byorg.jpox.metadata.MetaData
      extended byorg.jpox.metadata.ExtendableMetaData
          extended byorg.jpox.metadata.AbstractClassMetaData
              extended byorg.jpox.metadata.ClassMetaData
                  extended byorg.jpox.enhancer.metadata.EnhancerClassMetaData
All Implemented Interfaces:
java.io.Serializable

public class EnhancerClassMetaData
extends org.jpox.metadata.ClassMetaData

Extension of the standard ClassMetaData adding on attributes for enhancement of the class.

Version:
$Revision: 1.10 $
See Also:
Serialized Form

Field Summary
protected  org.apache.bcel.generic.ClassGen classGen
          BCEL class gen.
protected  org.apache.bcel.classfile.JavaClass enhanceClass
          Original BCEL java class.
protected static org.jpox.util.Localiser LOCALISER_ENH
           
 
Fields inherited from class org.jpox.metadata.ClassMetaData
implementations, implementsMetaData, isAbstractPersistenceCapable
 
Fields inherited from class org.jpox.metadata.AbstractClassMetaData
allFieldNumbers, catalog, defaultFetchGroupFieldFlags, defaultFetchGroupFieldNumbers, detachable, embeddedOnly, fetchGroupMetaData, fetchGroupMetaDataByName, fetchGroups, fieldNumbersByName, foreignKeyMetaData, foreignKeys, fullName, identityMetaData, identitySpecified, identityType, indexes, indexMetaData, inheritanceMetaData, joinMetaData, joins, managedFields, name, nonPrimaryKeyFieldFlags, nonPrimaryKeyFieldNumbers, noOfInheritedManagedFields, objectidClass, overriddenFields, pcSuperclassMetaData, persistenceCapableFieldNumbers, persistenceCapableSuperclass, persistenceModifier, persistentInterfaceImplNeedingTableFromSubclass, persistentInterfaceImplNeedingTableFromSuperclass, primaryKeyFieldNumbers, primaryKeyMetaData, properties, propertyMetaData, queries, requiresExtent, schema, secondClassMutableFieldFlags, secondClassMutableFieldNumbers, table, uniqueConstraints, uniqueMetaData, unmappedColumns, usesSingleFieldIdentityClass, versionMetaData
 
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
EnhancerClassMetaData(org.jpox.metadata.InterfaceMetaData imd, java.lang.String implClassName, org.apache.bcel.classfile.JavaClass enhanceClass)
          Constructor for creating the ClassMetaData for an implementation of a "persistent-interface".
EnhancerClassMetaData(org.jpox.metadata.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.
EnhancerClassMetaData(org.jpox.metadata.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, org.apache.bcel.classfile.JavaClass enhanceClass)
          Constructor.
 
Method Summary
protected  void copyFieldsFromInterface(org.jpox.metadata.InterfaceMetaData imd)
          Convenience method to copy the fields from an existing interface
 EnhancerFieldMetaData findField(org.apache.bcel.classfile.Field f)
          Find the specified field.
 org.apache.bcel.generic.ClassGen getClassGen()
          Return ClassGen instance of bcel
 org.apache.bcel.classfile.JavaClass getEnhanceClass()
          Return original JavaClass instance of bcel
 EnhancerFieldMetaData[] getManagedFieldConfigs()
          Utility to access the array of managed fields as JDOConfigField objects instead of FieldMetaData.
 int getNoOfManagedFields()
          Accessor for the number of managed fields (for enhancing).
protected  org.jpox.metadata.AbstractPropertyMetaData newDefaultedField(java.lang.String name)
          Utility to add a defaulted FieldMetaData to the class.
 
Methods inherited from class org.jpox.metadata.ClassMetaData
addField, addImplements, addPropertiesNotInMetaData, getImplementsMetaData, implementsInterface, initialise, isAbstractPersistenceCapable, populate, populatePropertyMetaData, toString, toString
 
Methods inherited from class org.jpox.metadata.AbstractClassMetaData
addFetchGroup, addForeignKey, addIndex, addJoin, addProperty, addQuery, addUniqueConstraint, addUnmappedColumn, checkInitialised, checkPopulated, determineIdentity, determineInheritanceMetaData, determineObjectIdClass, determineSuperClassName, getAbsoluteFieldNumberForRelativeFieldNumber, getAllFieldNumbers, getBaseAbstractClassMetaData, getCatalog, getDefaultFetchGroupFieldFlags, getDefaultFetchGroupFieldNumbers, getDiscriminatorStrategy, getFetchGroupMetaData, getFetchGroupMetaData, getFetchGroupMetaData, getField, getField, getFieldNumber, getFieldNumberAbsolute, getFieldNumberAbsolute, getForeignKeyMetaData, getFullClassName, getIdentityMetaData, getIdentityType, getIndexMetaData, getInheritanceMetaData, getJoinMetaData, getManagedField, getManagedFieldAbsolute, getManagedFieldAbsoluteInternal, getManagedFields, getMetaDataManager, getName, getNonPrimaryKeyFieldFlags, getNonPrimaryKeyFieldNumbers, getNoOfFields, getNoOfInheritedManagedFields, getNoOfOverriddenFields, getNoOfPrimaryKeyFields, getNoOfProperties, getNoOfQueries, getObjectidClass, getOverriddenField, getOverriddenField, getOverriddenFields, getPackageMetaData, getPackageName, getPersistenceCapableFieldNumbers, getPersistenceCapableSuperclass, getPersistenceModifier, getPrimaryKeyFieldNumbers, getPrimaryKeyMetaData, getQuery, getSchema, getSecondClassMutableFieldFlags, getSecondClassMutableFieldNumbers, getSuperAbstractClassMetaData, getTable, getUniqueMetaData, getUnmappedColumns, getVersionMetaData, hasField, inheritDetachableSettings, inheritIdentity, isDetachable, isEmbeddedOnly, isRequiresExtent, isSameOrAncestorOf, loadClass, mergeORMData, newDefaultedProperty, setIdentityMetaData, setInheritanceMetaData, setPrimaryKeyMetaData, setTable, setVersionMetaData, usesSingleFieldIdentityClass, validateDeprecatedMetaData, validateUserInputForIdentity, validateUserInputForInheritanceMetaData
 
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

LOCALISER_ENH

protected static final org.jpox.util.Localiser LOCALISER_ENH

classGen

protected final org.apache.bcel.generic.ClassGen classGen
BCEL class gen.


enhanceClass

protected final org.apache.bcel.classfile.JavaClass enhanceClass
Original BCEL java class.

Constructor Detail

EnhancerClassMetaData

public EnhancerClassMetaData(org.jpox.metadata.InterfaceMetaData imd,
                             java.lang.String implClassName,
                             org.apache.bcel.classfile.JavaClass enhanceClass)
Constructor for creating the ClassMetaData for an implementation of a "persistent-interface".

Parameters:
imd - MetaData for the "persistent-interface"
implClassName - Name of the implementation class
enhanceClass - The enhanced class

EnhancerClassMetaData

public EnhancerClassMetaData(org.jpox.metadata.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.


EnhancerClassMetaData

public EnhancerClassMetaData(org.jpox.metadata.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,
                             org.apache.bcel.classfile.JavaClass enhanceClass)
Constructor.

Method Detail

copyFieldsFromInterface

protected void copyFieldsFromInterface(org.jpox.metadata.InterfaceMetaData imd)
Convenience method to copy the fields from an existing interface

Parameters:
imd - The class/interface that we copy from

newDefaultedField

protected org.jpox.metadata.AbstractPropertyMetaData newDefaultedField(java.lang.String name)
Utility to add a defaulted FieldMetaData to the class. Override the method in ClassMetaData because we want to add JDOConfigField type. This is called when using populate() and the class has a field that isn't in the MetaData.

Parameters:
name - name of field

getManagedFieldConfigs

public EnhancerFieldMetaData[] getManagedFieldConfigs()
Utility to access the array of managed fields as JDOConfigField objects instead of FieldMetaData. Only returns the fields that

Returns:
Array of JDOConfigField objects

getNoOfManagedFields

public int getNoOfManagedFields()
Accessor for the number of managed fields (for enhancing).

Returns:
The number of managed fields

getClassGen

public org.apache.bcel.generic.ClassGen getClassGen()
Return ClassGen instance of bcel

Returns:
ClassGen instance of bcel

getEnhanceClass

public org.apache.bcel.classfile.JavaClass getEnhanceClass()
Return original JavaClass instance of bcel

Returns:
original JavaClass instance of bcel

findField

public EnhancerFieldMetaData findField(org.apache.bcel.classfile.Field f)
Find the specified field. Caters for the field being in this class, or in its superclass(es).

Parameters:
f - The field
Returns:
The metadata for the field


Copyright © -2007 . All Rights Reserved.