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 }