Module dev.metaschema.core
Class AbstractNodeItemVisitor<CONTEXT,RESULT>
java.lang.Object
dev.metaschema.core.metapath.item.node.AbstractNodeItemVisitor<CONTEXT,RESULT>
- Type Parameters:
CONTEXT- the type of data to pass to each visited nodeRESULT- the type of result produced by visitation
- All Implemented Interfaces:
INodeItemVisitor<CONTEXT,RESULT>
- Direct Known Subclasses:
AbstractRecursionPreventingNodeItemVisitor
public abstract class AbstractNodeItemVisitor<CONTEXT,RESULT>
extends Object
implements INodeItemVisitor<CONTEXT,RESULT>
Used by implementations of this class to visit a sequence of node items in a
directed graph, using depth-first ordering.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected RESULTaggregateResult(RESULT first, RESULT second, CONTEXT context) Combine two results into a single, aggregate result.protected abstract RESULTThe initial, default visitation result, which will be used as the basis for aggregating results produced when visiting.protected booleanshouldVisitNextChild(INodeItem parent, IModelNodeItem<?, ?> child, RESULT result, CONTEXT context) Determine if the child should be visited next, or skipped.protected booleanshouldVisitNextChild(INodeItem parent, INodeItem child, RESULT result, CONTEXT context) Determine if the child should be visited next, or skipped.final RESULTvisit(INodeItemVisitable item, CONTEXT context) Visit the provideditem.visitAssembly(IAssemblyInstanceGroupedNodeItem item, CONTEXT context) This callback is called when anIAssemblyInstanceGroupedNodeItemis visited.visitAssembly(IAssemblyNodeItem item, CONTEXT context) This callback is called when anIAssemblyNodeItemis visited.visitDocument(IDocumentNodeItem item, CONTEXT context) This callback is called when theIDocumentNodeItemis visited.visitField(IFieldNodeItem item, CONTEXT context) This callback is called when anIFieldNodeItemis visited.visitFlag(IFlagNodeItem item, CONTEXT context) This callback is called when anIFlagNodeItemis visited.protected RESULTvisitFlags(INodeItem item, CONTEXT context) Visit any child flags associated with the provideditem.visitMetaschema(IModuleNodeItem item, CONTEXT context) This callback is called when anIModuleNodeItemis visited.protected RESULTvisitModelChildren(INodeItem item, CONTEXT context) Visit any child model items associated with the provideditem.
-
Constructor Details
-
AbstractNodeItemVisitor
public AbstractNodeItemVisitor()
-
-
Method Details
-
visit
Visit the provideditem.- Parameters:
item- the item to visitcontext- provides contextual information for use by the visitor- Returns:
- the result produced by visiting the item
-
visitFlags
Visit any child flags associated with the provideditem.- Parameters:
item- the item to visitcontext- provides contextual information for use by the visitor- Returns:
- the result produced by visiting the item's flags
-
visitModelChildren
Visit any child model items associated with the provideditem.- Parameters:
item- the item to visitcontext- provides contextual information for use by the visitor- Returns:
- the result produced by visiting the item's child model items
-
shouldVisitNextChild
protected boolean shouldVisitNextChild(@NonNull INodeItem parent, @NonNull INodeItem child, RESULT result, CONTEXT context) Determine if the child should be visited next, or skipped.- Parameters:
parent- the parent of the child to visit nextchild- the next child to visitresult- the current visitation resultcontext- provides contextual information for use by the visitor- Returns:
trueif the child should be visited, orfalseif the child should be skipped
-
shouldVisitNextChild
protected boolean shouldVisitNextChild(@NonNull INodeItem parent, @NonNull IModelNodeItem<?, ?> child, RESULT result, CONTEXT context) Determine if the child should be visited next, or skipped.- Parameters:
parent- the parent of the child to visit nextchild- the next child to visitresult- the current visitation resultcontext- provides contextual information for use by the visitor- Returns:
trueif the child should be visited, orfalseif the child should be skipped
-
defaultResult
The initial, default visitation result, which will be used as the basis for aggregating results produced when visiting.- Returns:
- the default result
- See Also:
-
aggregateResult
Combine two results into a single, aggregate result.- Parameters:
first- the original resultsecond- the new result to combine with the original resultcontext- provides contextual information for use by the visitor- Returns:
- the combined result
-
visitDocument
Description copied from interface:INodeItemVisitorThis callback is called when theIDocumentNodeItemis visited.- Specified by:
visitDocumentin interfaceINodeItemVisitor<CONTEXT,RESULT> - Parameters:
item- the visited itemcontext- provides contextual information for use by the visitor- Returns:
- the visitation result
-
visitFlag
Description copied from interface:INodeItemVisitorThis callback is called when anIFlagNodeItemis visited.- Specified by:
visitFlagin interfaceINodeItemVisitor<CONTEXT,RESULT> - Parameters:
item- the visited itemcontext- provides contextual information for use by the visitor- Returns:
- the visitation result
-
visitField
Description copied from interface:INodeItemVisitorThis callback is called when anIFieldNodeItemis visited.- Specified by:
visitFieldin interfaceINodeItemVisitor<CONTEXT,RESULT> - Parameters:
item- the visited itemcontext- provides contextual information for use by the visitor- Returns:
- the visitation result
-
visitAssembly
Description copied from interface:INodeItemVisitorThis callback is called when anIAssemblyNodeItemis visited.- Specified by:
visitAssemblyin interfaceINodeItemVisitor<CONTEXT,RESULT> - Parameters:
item- the visited itemcontext- provides contextual information for use by the visitor- Returns:
- the visitation result
-
visitAssembly
Description copied from interface:INodeItemVisitorThis callback is called when anIAssemblyInstanceGroupedNodeItemis visited.- Specified by:
visitAssemblyin interfaceINodeItemVisitor<CONTEXT,RESULT> - Parameters:
item- the visited itemcontext- provides contextual information for use by the visitor- Returns:
- the visitation result
-
visitMetaschema
Description copied from interface:INodeItemVisitorThis callback is called when anIModuleNodeItemis visited.- Specified by:
visitMetaschemain interfaceINodeItemVisitor<CONTEXT,RESULT> - Parameters:
item- the visited itemcontext- provides contextual information for use by the visitor- Returns:
- the visitation result
-