1   /*
2    * SPDX-FileCopyrightText: none
3    * SPDX-License-Identifier: CC0-1.0
4    */
5   
6   package gov.nist.secauto.metaschema.schemagen.json.impl;
7   
8   import gov.nist.secauto.metaschema.core.model.IFieldDefinition;
9   
10  import java.util.List;
11  
12  import edu.umd.cs.findbugs.annotations.NonNull;
13  
14  /**
15   * Supports generation of a JSON schema based on a Metaschema model assembly
16   * definition, which can be generated inline or as a JSON schema definition.
17   */
18  public interface IJsonSchemaDefinitionField extends IJsonSchemaModelDefinition {
19    @Override
20    IFieldDefinition getDefinition();
21  
22    /**
23     * Get the sequence of JSON schema properties, excluding the properties for the
24     * field's value.
25     *
26     * @return the JSON schema properties
27     */
28    @NonNull
29    List<? extends IJsonSchemaPropertyNamed> getNonValueProperties();
30  
31    /**
32     * Get the JSON schema information for the field value's data type.
33     *
34     * @return the data type information
35     */
36    @NonNull
37    IDataTypeJsonSchema getFieldValue();
38  }