1
2 package dev.metaschema.core.metapath.item.node;
3
4 import edu.umd.cs.findbugs.annotations.NonNull;
5
6 /**
7 * A marker interface used to identify an {@link IAssemblyNodeItem} as the head
8 * of a cycle of item that loop back to the head.
9 * <p>
10 * This is needed to prevent infinite recursion when searching
11 * {@link IModuleNodeItem} graphs.
12 */
13 public interface ICycledAssemblyNodeItem extends IAssemblyNodeItem {
14 /**
15 * Get the assembly item at the head of the cycle.
16 *
17 * @return the assembly item at the head of the cycle
18 */
19 @NonNull
20 IAssemblyNodeItem getCycledNodeItem();
21 }