1
2
3
4
5
6 package gov.nist.secauto.metaschema.databind.model;
7
8 import gov.nist.secauto.metaschema.core.model.IBoundObject;
9 import gov.nist.secauto.metaschema.core.model.IContainerFlagSupport;
10 import gov.nist.secauto.metaschema.core.model.IFeatureDefinitionInstanceInlined;
11 import gov.nist.secauto.metaschema.core.model.IModelElementVisitor;
12 import gov.nist.secauto.metaschema.core.util.ObjectUtils;
13 import gov.nist.secauto.metaschema.databind.model.info.IFeatureScalarItemValueHandler;
14 import gov.nist.secauto.metaschema.databind.model.info.IItemReadHandler;
15 import gov.nist.secauto.metaschema.databind.model.info.IItemWriteHandler;
16
17 import java.io.IOException;
18
19 public interface IBoundInstanceModelFieldScalar
20 extends IBoundInstanceModelField<Object>,
21 IBoundDefinitionModelField<Object>, IFeatureScalarItemValueHandler,
22 IFeatureDefinitionInstanceInlined<IBoundDefinitionModelField<Object>, IBoundInstanceModelFieldScalar> {
23
24
25 @Override
26 default IBoundDefinitionModelField<Object> getDefinition() {
27 return IFeatureDefinitionInstanceInlined.super.getDefinition();
28 }
29
30 @Override
31 default boolean isInline() {
32 return IFeatureDefinitionInstanceInlined.super.isInline();
33 }
34
35 @Override
36 default IBoundInstanceModelFieldScalar getInlineInstance() {
37 return IFeatureDefinitionInstanceInlined.super.getInlineInstance();
38 }
39
40 @Override
41 IBoundDefinitionModelAssembly getContainingDefinition();
42
43 @Override
44 default IContainerFlagSupport<IBoundInstanceFlag> getFlagContainer() {
45 return IContainerFlagSupport.empty();
46 }
47
48 @Override
49 default IBoundInstanceFlag getJsonKey() {
50
51 return null;
52 }
53
54 @Override
55 default IBoundInstanceFlag getItemJsonKey(Object item) {
56
57 return null;
58 }
59
60 @Override
61 default Object getFieldValue(Object item) {
62
63 return item;
64 }
65
66 @Override
67 default String getJsonValueKeyName() {
68
69 return null;
70 }
71
72 @Override
73 default IBoundInstanceFlag getJsonValueKeyFlagInstance() {
74
75 return null;
76 }
77
78 @Override
79 default Object readItem(IBoundObject parent, IItemReadHandler handler) throws IOException {
80 return handler.readItemField(ObjectUtils.requireNonNull(parent, "parent"), this);
81 }
82
83 @Override
84 default void writeItem(Object item, IItemWriteHandler handler) throws IOException {
85 handler.writeItemField(item, this);
86 }
87
88 @Override
89 default <CONTEXT, RESULT> RESULT accept(IModelElementVisitor<CONTEXT, RESULT> visitor, CONTEXT context) {
90 return IBoundInstanceModelField.super.accept(visitor, context);
91 }
92 }