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 javax.xml.namespace.QName;
9   
10  import edu.umd.cs.findbugs.annotations.NonNull;
11  
12  /**
13   * This marker interface indicates that the instance has a flag, field, or
14   * assembly name associated with it which will be used in JSON/YAML or XML to
15   * identify the data.
16   *
17   */
18  public interface INamedInstance extends INamedModelElement, IAttributable, IInstance {
19    /**
20     * Retrieve the definition of this instance.
21     *
22     * @return the corresponding definition
23     */
24    @NonNull
25    IDefinition getDefinition();
26  
27    /**
28     * This represents the qualified name of a referenced definition.
29     *
30     * @return the qualified name
31     * @see IDefinition#getDefinitionQName()
32     */
33    @NonNull
34    QName getReferencedDefinitionQName();
35  }