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 gov.nist.secauto.metaschema.core.qname.IEnhancedQName;
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 * Determine if the definition of this instance is declared inline.
29 *
30 * @return {@code true} if the definition of this instance is declared inline or
31 * {@code false} otherwise
32 */
33 boolean isInlineDefinition();
34
35 /**
36 * This represents the qualified name of a referenced definition.
37 *
38 * @return the qualified name
39 * @see IDefinition#getDefinitionQName()
40 */
41 @NonNull
42 IEnhancedQName getReferencedDefinitionQName();
43 }