1   /*
2    * SPDX-FileCopyrightText: none
3    * SPDX-License-Identifier: CC0-1.0
4    */
5   
6   package gov.nist.secauto.metaschema.core.model;
7   
8   import edu.umd.cs.findbugs.annotations.NonNull;
9   
10  /**
11   * Represents an assembly instance that appears within a choice or other
12   * grouping construct.
13   * <p>
14   * Grouped assembly instances inherit cardinality from their containing group.
15   */
16  public interface IAssemblyInstanceGrouped extends INamedModelInstanceGrouped, IAssemblyInstance {
17  
18    /**
19     * A visitor callback.
20     *
21     * @param <CONTEXT>
22     *          the type of the context parameter
23     * @param <RESULT>
24     *          the type of the visitor result
25     * @param visitor
26     *          the calling visitor
27     * @param context
28     *          a parameter used to pass contextual information between visitors
29     * @return the visitor result
30     */
31    @Override
32    default <CONTEXT, RESULT> RESULT accept(@NonNull IModelElementVisitor<CONTEXT, RESULT> visitor, CONTEXT context) {
33      return visitor.visitAssemblyInstance(this, context);
34    }
35  }