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