1
2
3
4
5
6 package gov.nist.secauto.metaschema.schemagen.json.impl;
7
8 import com.fasterxml.jackson.databind.node.ObjectNode;
9
10 import gov.nist.secauto.metaschema.core.model.IFieldDefinition;
11 import gov.nist.secauto.metaschema.core.qname.IEnhancedQName;
12
13 import java.util.List;
14
15 import edu.umd.cs.findbugs.annotations.NonNull;
16 import edu.umd.cs.findbugs.annotations.Nullable;
17
18
19
20
21
22 public class JsonSchemaDefinitionField
23 extends AbstractJsonSchemaModelDefinition<IFieldDefinition>
24 implements IJsonSchemaDefinitionField {
25 @NonNull
26 private final IDataTypeJsonSchema fieldValueDataType;
27
28
29
30
31
32
33
34
35
36
37
38
39
40 public JsonSchemaDefinitionField(
41 @NonNull IFieldDefinition definition,
42 @Nullable IEnhancedQName jsonKeyFlagName,
43 @NonNull IJsonGenerationState state) {
44 super(definition, jsonKeyFlagName, state);
45 this.fieldValueDataType = state.getDataTypeSchemaForDefinition(getDefinition());
46 }
47
48 @Override
49 public List<? extends IJsonSchemaPropertyNamed> getNonValueProperties() {
50 return getFlagProperties();
51 }
52
53 @Override
54 public IDataTypeJsonSchema getFieldValue() {
55 return fieldValueDataType;
56 }
57
58 @Override
59 public void generateBody(ObjectNode node, IJsonGenerationState state) {
60 JsonSchemaHelper.generateFieldBody(this, node, state);
61 }
62 }