org.datanucleus.store.fieldmanager
Class AbstractFetchFieldManager

java.lang.Object
  extended by org.datanucleus.store.fieldmanager.AbstractFieldManager
      extended by org.datanucleus.store.fieldmanager.AbstractFetchFieldManager
All Implemented Interfaces:
FieldConsumer, FieldManager, FieldSupplier
Direct Known Subclasses:
DetachFieldManager, LoadFieldManager, MakeTransientFieldManager

public abstract class AbstractFetchFieldManager
extends AbstractFieldManager

Base field manager for handling the fetching of fields. Supports a FetchPlan to navigate down an object graph. This is extended by specific managers for the detachment and makeTransient processes.


Nested Class Summary
static class AbstractFetchFieldManager.EndOfFetchPlanGraphException
          Exception thrown when we reach the end of the fetch depth in a branch of the object graph
 
Field Summary
protected  FetchPlanForClass fpClass
          Fetch Plan for the class of this object.
protected  boolean[] secondClassMutableFields
          Second class mutable fields for the class of this object.
protected  StateManager sm
          StateManager of the instance being fetched (detached or made transient).
protected  FetchPlanState state
          State for the fetch process.
 
Constructor Summary
AbstractFetchFieldManager(StateManager sm, boolean[] secondClassMutableFields, FetchPlanForClass fpClass, FetchPlanState state)
          Constructor for a field manager for fetch plan processing.
 
Method Summary
protected abstract  java.lang.Object endOfGraphOperation(int fieldNumber)
          Method called when an end of graph is encountered.
 boolean fetchBooleanField(int fieldNumber)
          Fetch a boolean field at the specified field number, returning it.
 byte fetchByteField(int fieldNumber)
          Fetch a byte field at the specified field number, returning it.
 char fetchCharField(int fieldNumber)
          Fetch a char field at the specified field number, returning it.
 double fetchDoubleField(int fieldNumber)
          Fetch a double field at the specified field number, returning it.
 float fetchFloatField(int fieldNumber)
          Fetch a float field at the specified field number, returning it.
 int fetchIntField(int fieldNumber)
          Fetch an int field at the specified field number, returning it.
 long fetchLongField(int fieldNumber)
          Fetch a long field at the specified field number, returning it.
 java.lang.Object fetchObjectField(int fieldNumber)
          Method to fetch an object field whether it is SCO collection, PC, or whatever.
 short fetchShortField(int fieldNumber)
          Fetch a short field at the specified field number, returning it.
 java.lang.String fetchStringField(int fieldNumber)
          Fetch a string field at the specified field number, returning it.
protected abstract  java.lang.Object internalFetchObjectField(int fieldNumber)
          Method to fetch an object field whether it is SCO collection, PC, or whatever.
 
Methods inherited from class org.datanucleus.store.fieldmanager.AbstractFieldManager
storeBooleanField, storeByteField, storeCharField, storeDoubleField, storeFloatField, storeIntField, storeLongField, storeObjectField, storeShortField, storeStringField
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

sm

protected final StateManager sm
StateManager of the instance being fetched (detached or made transient).


secondClassMutableFields

protected final boolean[] secondClassMutableFields
Second class mutable fields for the class of this object.


fpClass

protected FetchPlanForClass fpClass
Fetch Plan for the class of this object.


state

protected final FetchPlanState state
State for the fetch process.

Constructor Detail

AbstractFetchFieldManager

public AbstractFetchFieldManager(StateManager sm,
                                 boolean[] secondClassMutableFields,
                                 FetchPlanForClass fpClass,
                                 FetchPlanState state)
Constructor for a field manager for fetch plan processing.

Parameters:
sm - the StateManager of the instance being processed.
secondClassMutableFields -
fpClass - Fetch Plan for the class of this instance
state - Object containing the state of the fetch process
Method Detail

fetchObjectField

public java.lang.Object fetchObjectField(int fieldNumber)
                                  throws AbstractFetchFieldManager.EndOfFetchPlanGraphException
Method to fetch an object field whether it is SCO collection, PC, or whatever.

Specified by:
fetchObjectField in interface FieldSupplier
Overrides:
fetchObjectField in class AbstractFieldManager
Parameters:
fieldNumber - Number of the field
Returns:
The object
Throws:
AbstractFetchFieldManager.EndOfFetchPlanGraphException

internalFetchObjectField

protected abstract java.lang.Object internalFetchObjectField(int fieldNumber)
Method to fetch an object field whether it is SCO collection, PC, or whatever.

Parameters:
fieldNumber - Number of the field
Returns:
The object

endOfGraphOperation

protected abstract java.lang.Object endOfGraphOperation(int fieldNumber)
Method called when an end of graph is encountered.

Parameters:
fieldNumber - Number of the field
Returns:
Object to return

fetchBooleanField

public boolean fetchBooleanField(int fieldNumber)
Description copied from interface: FieldSupplier
Fetch a boolean field at the specified field number, returning it.

Specified by:
fetchBooleanField in interface FieldSupplier
Overrides:
fetchBooleanField in class AbstractFieldManager
Parameters:
fieldNumber - Number of the field
Returns:
The value

fetchByteField

public byte fetchByteField(int fieldNumber)
Description copied from interface: FieldSupplier
Fetch a byte field at the specified field number, returning it.

Specified by:
fetchByteField in interface FieldSupplier
Overrides:
fetchByteField in class AbstractFieldManager
Parameters:
fieldNumber - Number of the field
Returns:
The value

fetchCharField

public char fetchCharField(int fieldNumber)
Description copied from interface: FieldSupplier
Fetch a char field at the specified field number, returning it.

Specified by:
fetchCharField in interface FieldSupplier
Overrides:
fetchCharField in class AbstractFieldManager
Parameters:
fieldNumber - Number of the field
Returns:
The value

fetchDoubleField

public double fetchDoubleField(int fieldNumber)
Description copied from interface: FieldSupplier
Fetch a double field at the specified field number, returning it.

Specified by:
fetchDoubleField in interface FieldSupplier
Overrides:
fetchDoubleField in class AbstractFieldManager
Parameters:
fieldNumber - Number of the field
Returns:
The value

fetchFloatField

public float fetchFloatField(int fieldNumber)
Description copied from interface: FieldSupplier
Fetch a float field at the specified field number, returning it.

Specified by:
fetchFloatField in interface FieldSupplier
Overrides:
fetchFloatField in class AbstractFieldManager
Parameters:
fieldNumber - Number of the field
Returns:
The value

fetchIntField

public int fetchIntField(int fieldNumber)
Description copied from interface: FieldSupplier
Fetch an int field at the specified field number, returning it.

Specified by:
fetchIntField in interface FieldSupplier
Overrides:
fetchIntField in class AbstractFieldManager
Parameters:
fieldNumber - Number of the field
Returns:
The value

fetchLongField

public long fetchLongField(int fieldNumber)
Description copied from interface: FieldSupplier
Fetch a long field at the specified field number, returning it.

Specified by:
fetchLongField in interface FieldSupplier
Overrides:
fetchLongField in class AbstractFieldManager
Parameters:
fieldNumber - Number of the field
Returns:
The value

fetchShortField

public short fetchShortField(int fieldNumber)
Description copied from interface: FieldSupplier
Fetch a short field at the specified field number, returning it.

Specified by:
fetchShortField in interface FieldSupplier
Overrides:
fetchShortField in class AbstractFieldManager
Parameters:
fieldNumber - Number of the field
Returns:
The value

fetchStringField

public java.lang.String fetchStringField(int fieldNumber)
Description copied from interface: FieldSupplier
Fetch a string field at the specified field number, returning it.

Specified by:
fetchStringField in interface FieldSupplier
Overrides:
fetchStringField in class AbstractFieldManager
Parameters:
fieldNumber - Number of the field
Returns:
The value


Copyright © 2010. All Rights Reserved.