org.jpox.enhancer.metadata
Class EnhancerFieldMetaData

java.lang.Object
  extended byorg.jpox.metadata.MetaData
      extended byorg.jpox.metadata.ExtendableMetaData
          extended byorg.jpox.metadata.AbstractPropertyMetaData
              extended byorg.jpox.metadata.FieldMetaData
                  extended byorg.jpox.enhancer.metadata.EnhancerFieldMetaData
All Implemented Interfaces:
org.jpox.metadata.ColumnMetaDataContainer, java.lang.Comparable, java.io.Serializable

public class EnhancerFieldMetaData
extends org.jpox.metadata.FieldMetaData

Extension of FieldMetaData providing hooks for BCEL enhancement process.

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

Field Summary
protected  org.apache.bcel.classfile.Field enhanceField
          BCEL Field for use in enhancement process.
protected  byte jdoFieldFlag
          JDO Flags for use in enhancement process.
protected static org.jpox.util.Localiser LOCALISER_ENH
           
 
Fields inherited from class org.jpox.metadata.AbstractPropertyMetaData
className, column, columnMetaData, columns, container, DEFAULT_RECURSION_DEPTH, defaultFetchGroup, dependent, elementMetaData, embedded, embeddedMetaData, fieldId, fieldType, foreignKeyMetaData, indexed, indexMetaData, joinMetaData, keyMetaData, loadFetchGroup, mappedBy, modifiers, name, nullValue, orderMetaData, persistenceModifier, primaryKey, recursionDepth, relatedFieldMetaData, relationType, sequence, serialized, table, type, UNDEFINED_RECURSION_DEPTH, uniqueConstraint, uniqueMetaData, valueMetaData, valueStrategy
 
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
EnhancerFieldMetaData(org.jpox.metadata.MetaData parent, org.jpox.metadata.AbstractPropertyMetaData fmd)
          Convenience constructor to copy the specification from the passed field.
EnhancerFieldMetaData(org.jpox.metadata.MetaData parent, java.lang.String name)
          Convenience constructor.
EnhancerFieldMetaData(org.jpox.metadata.MetaData parent, java.lang.String name, java.lang.String pk, java.lang.String modifier, java.lang.String defaultFetchGroup, java.lang.String nullValue, java.lang.String embedded, java.lang.String serialized, java.lang.String dependent, java.lang.String mappedBy, java.lang.String column, java.lang.String table, java.lang.String defaultAction, java.lang.String indexed, java.lang.String unique, java.lang.String fetchDepth, java.lang.String loadFetchGroup, java.lang.String valueStrategy, java.lang.String foreignKey, java.lang.String sequence, java.lang.String fieldType)
          Constructor
 
Method Summary
 org.apache.bcel.classfile.Field getEnhanceField()
          Accessor for the byte-code enhancer field.
 byte getJdoFieldFlag()
          Return JDO Field flags for enhancement process.
 boolean isFieldArrayTypePersistenceCapable()
          Utility to return if this array field has elements that are persistence capable.
 boolean isFieldTypePersistenceCapable()
          Utility to return if this field is persistence capable.
 void populate(org.jpox.ClassLoaderResolver loader, java.lang.Class fieldType, int modifiers)
          Method to populate the JDOConfigField.
 
Methods inherited from class org.jpox.metadata.FieldMetaData
compareTo, toString
 
Methods inherited from class org.jpox.metadata.AbstractPropertyMetaData
addColumn, fieldBelongsToClass, getAbsoluteFieldNumber, getAbstractClassMetaData, getArray, getClassName, getClassName, getCollection, getColumn, getColumnMetaData, getContainer, getElementMetaData, getEmbeddedMetaData, getFieldId, getFieldType, getForeignKeyMetaData, getFullFieldName, getIndexMetaData, getJoinMetaData, getKeyMetaData, getLoadFetchGroup, getMap, getMappedBy, getMetaDataManager, getName, getNullValue, getOrderMetaData, getPersistenceModifier, getRecursionDepth, getRelatedFieldMetaData, getRelationType, getSequence, getTable, getType, getTypeName, getUniqueMetaData, getValueMetaData, getValueStrategy, hasArray, hasCollection, hasContainer, hasMap, initialise, isDefaultFetchGroup, isDependent, isEmbedded, isFinal, isJdoField, isPrimaryKey, isSerialized, isStatic, isTransient, mergeORMData, setContainer, setDependent, setElementMetaData, setEmbeddedMetaData, setForeignKeyMetaData, setIndexMetaData, setJoinMetaData, setKeyMetaData, setMappedBy, setOrderMetaData, setRelation, setSequence, setTable, setUniqueMetaData, setValueMetaData, setValueStrategy, toString
 
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

enhanceField

protected final org.apache.bcel.classfile.Field enhanceField
BCEL Field for use in enhancement process.


jdoFieldFlag

protected byte jdoFieldFlag
JDO Flags for use in enhancement process.

Constructor Detail

EnhancerFieldMetaData

public EnhancerFieldMetaData(org.jpox.metadata.MetaData parent,
                             java.lang.String name)
Convenience constructor.

Parameters:
parent - Parent component
name - Name of the field

EnhancerFieldMetaData

public EnhancerFieldMetaData(org.jpox.metadata.MetaData parent,
                             org.jpox.metadata.AbstractPropertyMetaData fmd)
Convenience constructor to copy the specification from the passed field. This is used when we have an overriding field and we make a copy of the baseline field as a starting point.

Parameters:
parent - The parent
fmd - The field to copy

EnhancerFieldMetaData

public EnhancerFieldMetaData(org.jpox.metadata.MetaData parent,
                             java.lang.String name,
                             java.lang.String pk,
                             java.lang.String modifier,
                             java.lang.String defaultFetchGroup,
                             java.lang.String nullValue,
                             java.lang.String embedded,
                             java.lang.String serialized,
                             java.lang.String dependent,
                             java.lang.String mappedBy,
                             java.lang.String column,
                             java.lang.String table,
                             java.lang.String defaultAction,
                             java.lang.String indexed,
                             java.lang.String unique,
                             java.lang.String fetchDepth,
                             java.lang.String loadFetchGroup,
                             java.lang.String valueStrategy,
                             java.lang.String foreignKey,
                             java.lang.String sequence,
                             java.lang.String fieldType)
Constructor

Parameters:
parent - parent MetaData instance
name - field name
pk - attribute primary-key value
modifier - attribute persistence-modifier value
defaultFetchGroup - attribute default-fetch-group value
nullValue - attribute null-value value
embedded - attribute embedded value
serialized - attribute serialized value
dependent - attribute dependent value
mappedBy - attribute mapped-by value
column - attribute column value
table - attribute table value
indexed - attribute indexed value
unique - attribute unique value
fetchDepth - The depth of fetch to use
loadFetchGroup - Name of the additional fetch group to use when loading
valueStrategy - attribute value-strategy value
foreignKey - Foreign-key name
sequence - attribute sequence value
fieldType - Implementation type of field (when reference type)
Method Detail

isFieldTypePersistenceCapable

public boolean isFieldTypePersistenceCapable()
Utility to return if this field is persistence capable. Overrides method in FieldMetaData because we don't have classes already enhanced - we're going to enhance them.

Returns:
Whether the field type is persistence capable.

isFieldArrayTypePersistenceCapable

public boolean isFieldArrayTypePersistenceCapable()
Utility to return if this array field has elements that are persistence capable. Overrides method in FieldMetaData because we don't have classes already enhanced - we're going to enhance them.

Returns:
Whether the array field element type is persistence capable.

populate

public void populate(org.jpox.ClassLoaderResolver loader,
                     java.lang.Class fieldType,
                     int modifiers)
Method to populate the JDOConfigField. Overrides the method in FieldMetaData since we want to initialise some enhancement flags.

Parameters:
loader - ClassLoader to use for any class loading
fieldType - The type of the field being represented
modifiers - The modifiers of the field being represented (Static, Abstract, Final, Volatile, etc)

getEnhanceField

public org.apache.bcel.classfile.Field getEnhanceField()
Accessor for the byte-code enhancer field.

Returns:
The field

getJdoFieldFlag

public byte getJdoFieldFlag()
Return JDO Field flags for enhancement process.

Returns:
JDO Field flags for enhancing


Copyright © -2007 . All Rights Reserved.