1 /*
2 * SPDX-FileCopyrightText: none
3 * SPDX-License-Identifier: CC0-1.0
4 */
5
6 package dev.metaschema.core.model;
7
8 import edu.umd.cs.findbugs.annotations.NonNull;
9
10 /**
11 * Represents an assembly instance that appears directly within an assembly
12 * definition.
13 * <p>
14 * An absolute assembly instance is not part of a choice or other grouping
15 * construct, and has its own distinct cardinality settings.
16 */
17 public interface IAssemblyInstanceAbsolute extends IAssemblyInstance, INamedModelInstanceAbsolute {
18
19 /**
20 * A visitor callback.
21 *
22 * @param <CONTEXT>
23 * the type of the context parameter
24 * @param <RESULT>
25 * the type of the visitor result
26 * @param visitor
27 * the calling visitor
28 * @param context
29 * a parameter used to pass contextual information between visitors
30 * @return the visitor result
31 */
32 @Override
33 default <CONTEXT, RESULT> RESULT accept(@NonNull IModelElementVisitor<CONTEXT, RESULT> visitor, CONTEXT context) {
34 return visitor.visitAssemblyInstance(this, context);
35 }
36 }