Module dev.metaschema.core
Class RecursionCollectingNodeItemVisitor
java.lang.Object
dev.metaschema.core.metapath.item.node.AbstractNodeItemVisitor<CONTEXT,RESULT>
dev.metaschema.core.metapath.item.node.AbstractRecursionPreventingNodeItemVisitor<Void,Void>
dev.metaschema.core.metapath.item.node.RecursionCollectingNodeItemVisitor
- All Implemented Interfaces:
INodeItemVisitor<Void,Void>
public class RecursionCollectingNodeItemVisitor
extends AbstractRecursionPreventingNodeItemVisitor<Void,Void>
Analyzes a Metaschema module to identify assembly definitions that are
recursive.
This visitor traverses the module structure and tracks assembly definitions that contain themselves as descendants, collecting locations where recursion occurs.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classRecords information about an assembly definition, including whether it is recursive and where it is used. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected VoidThe initial, default visitation result, which will be used as the basis for aggregating results produced when visiting.Get the identified assembly definitions that recurse.voidVisit the provided module.visitAssembly(IAssemblyInstanceGroupedNodeItem item, Void context) This callback is called when anIAssemblyInstanceGroupedNodeItemis visited.visitAssembly(IAssemblyNodeItem item, Void context) This callback is called when anIAssemblyNodeItemis visited.Methods inherited from class dev.metaschema.core.metapath.item.node.AbstractRecursionPreventingNodeItemVisitor
isDecendantMethods inherited from class dev.metaschema.core.metapath.item.node.AbstractNodeItemVisitor
aggregateResult, shouldVisitNextChild, shouldVisitNextChild, visit, visitDocument, visitField, visitFlag, visitFlags, visitMetaschema, visitModelChildren
-
Constructor Details
-
RecursionCollectingNodeItemVisitor
public RecursionCollectingNodeItemVisitor()
-
-
Method Details
-
getRecursiveAssemblyDefinitions
@NonNull public Set<RecursionCollectingNodeItemVisitor.AssemblyRecord> getRecursiveAssemblyDefinitions()Get the identified assembly definitions that recurse.- Returns:
- the definitions that recurse
- See Also:
-
visit
Visit the provided module.- Parameters:
module- the Metaschema module to visit
-
visitAssembly
Description copied from interface:INodeItemVisitorThis callback is called when anIAssemblyNodeItemis visited.- Specified by:
visitAssemblyin interfaceINodeItemVisitor<Void,Void> - Overrides:
visitAssemblyin classAbstractRecursionPreventingNodeItemVisitor<Void,Void> - 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<Void,Void> - Overrides:
visitAssemblyin classAbstractNodeItemVisitor<Void,Void> - Parameters:
item- the visited itemcontext- provides contextual information for use by the visitor- Returns:
- the visitation result
-
defaultResult
Description copied from class:AbstractNodeItemVisitorThe initial, default visitation result, which will be used as the basis for aggregating results produced when visiting.- Specified by:
defaultResultin classAbstractNodeItemVisitor<Void,Void> - Returns:
- the default result
- See Also:
-