001/*
002 * SPDX-FileCopyrightText: none
003 * SPDX-License-Identifier: CC0-1.0
004 */
005
006package dev.metaschema.core.model;
007
008/**
009 * Represents an assembly instance within another assembly definition.
010 * <p>
011 * An assembly instance references an assembly definition and specifies how that
012 * assembly is used within its containing assembly.
013 */
014public interface IAssemblyInstance extends IAssembly, INamedModelInstance {
015
016  /**
017   * Retrieves the assembly definition referenced by this instance.
018   *
019   * @return the assembly definition
020   */
021  @Override
022  IAssemblyDefinition getDefinition();
023
024  @Override
025  default boolean isEffectiveValueWrappedInXml() {
026    // assembly instances are always wrapped
027    return true;
028  }
029}