001/*
002 * SPDX-FileCopyrightText: none
003 * SPDX-License-Identifier: CC0-1.0
004 */
005
006package dev.metaschema.core.model;
007
008import edu.umd.cs.findbugs.annotations.NonNull;
009
010/**
011 * Represents an assembly instance that appears directly within an assembly
012 * definition.
013 * <p>
014 * An absolute assembly instance is not part of a choice or other grouping
015 * construct, and has its own distinct cardinality settings.
016 */
017public interface IAssemblyInstanceAbsolute extends IAssemblyInstance, INamedModelInstanceAbsolute {
018
019  /**
020   * A visitor callback.
021   *
022   * @param <CONTEXT>
023   *          the type of the context parameter
024   * @param <RESULT>
025   *          the type of the visitor result
026   * @param visitor
027   *          the calling visitor
028   * @param context
029   *          a parameter used to pass contextual information between visitors
030   * @return the visitor result
031   */
032  @Override
033  default <CONTEXT, RESULT> RESULT accept(@NonNull IModelElementVisitor<CONTEXT, RESULT> visitor, CONTEXT context) {
034    return visitor.visitAssemblyInstance(this, context);
035  }
036}