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 }