org.apache.ojb.broker.metadata.fieldaccess
Class AbstractPersistentField

java.lang.Object
  extended byorg.apache.ojb.broker.metadata.fieldaccess.AbstractPersistentField
All Implemented Interfaces:
PersistentField, java.io.Serializable
Direct Known Subclasses:
PersistentFieldDirectAccessImpl, PersistentFieldDynaBeanAccessImpl, PersistentFieldIntrospectorImpl

public abstract class AbstractPersistentField
extends java.lang.Object
implements PersistentField

Abstract PersistentField base implementation.

Version:
$Id: AbstractPersistentField.java,v 1.13 2004/02/06 13:01:52 arminw Exp $
Author:
Armin Waibel
See Also:
Serialized Form

Field Summary
protected  java.lang.reflect.Field field
           
protected  java.lang.String fieldName
           
static java.lang.String PATH_TOKEN
           
static java.lang.Class PERSISTENT_FIELD_IMPL_FOR_NESTED
           
protected  java.lang.Class rootObjectType
           
 
Fields inherited from interface org.apache.ojb.broker.metadata.fieldaccess.PersistentField
serialVersionUID
 
Constructor Summary
AbstractPersistentField()
          For internal use only!! TODO: Default constructor only needed to support PersistentFieldFactory#usesAccessorsAndMutators() method - find a better solution.
AbstractPersistentField(java.lang.Class clazz, java.lang.String fieldname)
           
 
Method Summary
 java.lang.String buildMessageString(java.lang.Object obj, java.lang.Object value, java.lang.reflect.Field field)
          Build a String representation of given arguments.
abstract  java.lang.Object doGet(java.lang.Object targetObject)
          Get value for field extracted from given target object.
abstract  void doSet(java.lang.Object targetObject, java.lang.Object value)
          Set value for target object.
 java.lang.Object get(java.lang.Object targetObject)
          do not override this method, have a look at doGet(java.lang.Object)
 java.lang.Class getDeclaringClass()
           
protected  java.lang.reflect.Field getField()
          Returns the underlying field object.
protected  Logger getLog()
           
 java.lang.String getName()
           
protected  java.lang.Object getNestedObject(java.lang.Object obj, java.lang.String aFieldName)
          Get nested attribute with given field name.
 java.lang.Class getType()
           
protected  boolean isNestedField()
           
abstract  boolean makeAccessible()
          A value of true indicates that this field should suppress Java language access checking when it is used.
 void set(java.lang.Object targetObject, java.lang.Object value)
          do not override this method, have a look at doSet(java.lang.Object, java.lang.Object)
protected  void setNestedObject(java.lang.Object obj, java.lang.String fieldName, java.lang.Object value)
          Set nested attribute with given value.
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.apache.ojb.broker.metadata.fieldaccess.PersistentField
usesAccessorsAndMutators
 

Field Detail

PATH_TOKEN

public static final java.lang.String PATH_TOKEN
See Also:
Constant Field Values

PERSISTENT_FIELD_IMPL_FOR_NESTED

public static final java.lang.Class PERSISTENT_FIELD_IMPL_FOR_NESTED

field

protected transient java.lang.reflect.Field field

fieldName

protected java.lang.String fieldName

rootObjectType

protected java.lang.Class rootObjectType
Constructor Detail

AbstractPersistentField

public AbstractPersistentField()
For internal use only!! TODO: Default constructor only needed to support PersistentFieldFactory#usesAccessorsAndMutators() method - find a better solution. Make 'public' to allow helper class to instantiate class.


AbstractPersistentField

public AbstractPersistentField(java.lang.Class clazz,
                               java.lang.String fieldname)
Method Detail

doSet

public abstract void doSet(java.lang.Object targetObject,
                           java.lang.Object value)
Set value for target object.


doGet

public abstract java.lang.Object doGet(java.lang.Object targetObject)
Get value for field extracted from given target object.


makeAccessible

public abstract boolean makeAccessible()
A value of true indicates that this field should suppress Java language access checking when it is used.


set

public void set(java.lang.Object targetObject,
                java.lang.Object value)
         throws MetadataException
do not override this method, have a look at doSet(java.lang.Object, java.lang.Object)

Specified by:
set in interface PersistentField
Throws:
MetadataException - if there is an error setting this field value on obj
See Also:
Field

get

public java.lang.Object get(java.lang.Object targetObject)
                     throws MetadataException
do not override this method, have a look at doGet(java.lang.Object)

Specified by:
get in interface PersistentField
Parameters:
targetObject - - the object instance which we are trying to get the field value from
Throws:
MetadataException - if there is an error getting this field value from obj
See Also:
Field

getLog

protected Logger getLog()

getField

protected java.lang.reflect.Field getField()
Returns the underlying field object. If parameter setAccessible is true the field access checking was suppressed.


isNestedField

protected boolean isNestedField()

getNestedObject

protected java.lang.Object getNestedObject(java.lang.Object obj,
                                           java.lang.String aFieldName)
Get nested attribute with given field name.

Parameters:
obj - object from which the represented field's value is to be extracted
aFieldName - nested attribute name
Returns:
Object the value of the represented field in object obj

setNestedObject

protected void setNestedObject(java.lang.Object obj,
                               java.lang.String fieldName,
                               java.lang.Object value)
Set nested attribute with given value.

Parameters:
obj - the object whose field should be modified
fieldName - nested attribute name
value - the new value for the field of obj being modified

toString

public java.lang.String toString()

getName

public java.lang.String getName()
Specified by:
getName in interface PersistentField

getType

public java.lang.Class getType()
Specified by:
getType in interface PersistentField

getDeclaringClass

public java.lang.Class getDeclaringClass()
Specified by:
getDeclaringClass in interface PersistentField

buildMessageString

public java.lang.String buildMessageString(java.lang.Object obj,
                                           java.lang.Object value,
                                           java.lang.reflect.Field field)
Build a String representation of given arguments.



Authors: Thomas Mahler and others. (C) 2000 - 2003 Apache Software Foundation
All rights reserved. Published under the Apache License.
http://db.apache.org/ojb
Version: 1.0.rc5, 2003-12-14