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