Class FetchPlanState

  • Direct Known Subclasses:
    DetachState

    public class FetchPlanState
    extends 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 Detail

      • memberNames

        protected List<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​(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​(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​(List<String> memberNames,
                                                           String memberName)