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