org.datanucleus.state
Class FetchPlanState

java.lang.Object
  extended by org.datanucleus.state.FetchPlanState
Direct Known Subclasses:
DetachState

public class FetchPlanState
extends java.lang.Object

Holder for the state control for FetchPlan processing. Maintains a list of the member names being fetched. The first item in the List will be the root. When a new branch of the graph is processed the member name is added, and it is removed once it has been processed. This provides a means of always knowing the depth in the current graph, and also of allowing detection of recursion of member names.


Field Summary
protected  java.util.List<java.lang.String> memberNames
          List of member names in the graph.
 
Constructor Summary
FetchPlanState()
           
 
Method Summary
 void addMemberName(java.lang.String memberName)
          Method to add a member name to the list since it is being processed
protected static int calculateObjectDepthForMember(java.util.List<java.lang.String> memberNames, java.lang.String memberName)
           
 int getCurrentFetchDepth()
          Accessor for the object graph depth currently
 int getObjectDepthForType(java.lang.String memberName)
          Accessor for the current depth for the specified member name.
 void removeLatestMemberName()
          Method to remove the latest member name from the list since it is now processed
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

memberNames

protected java.util.List<java.lang.String> memberNames
List of member names in the graph. The first is the root of the tree, and members are added as they are encountered and removed when they are finished with.

Constructor Detail

FetchPlanState

public FetchPlanState()
Method Detail

addMemberName

public void addMemberName(java.lang.String memberName)
Method to add a member name to the list since it is being processed

Parameters:
memberName - The member to add

removeLatestMemberName

public void removeLatestMemberName()
Method to remove the latest member name from the list since it is now processed


getCurrentFetchDepth

public int getCurrentFetchDepth()
Accessor for the object graph depth currently

Returns:
The graph depth

getObjectDepthForType

public int getObjectDepthForType(java.lang.String memberName)
Accessor for the current depth for the specified member name.

Parameters:
memberName - The name of the field/property
Returns:
The depth for this member

calculateObjectDepthForMember

protected static int calculateObjectDepthForMember(java.util.List<java.lang.String> memberNames,
                                                   java.lang.String memberName)


Copyright © 2011. All Rights Reserved.