1
2
3
4
5
6 package gov.nist.secauto.metaschema.databind.model.info;
7
8 import gov.nist.secauto.metaschema.core.datatype.IDataTypeAdapter;
9 import gov.nist.secauto.metaschema.core.model.IBoundObject;
10 import gov.nist.secauto.metaschema.databind.io.BindingException;
11 import gov.nist.secauto.metaschema.databind.model.IValuedMutable;
12
13 import edu.umd.cs.findbugs.annotations.NonNull;
14 import edu.umd.cs.findbugs.annotations.Nullable;
15
16 public interface IFeatureScalarItemValueHandler
17 extends IItemValueHandler<Object>, IValuedMutable {
18
19 default void setValue(@NonNull Object parent, @NonNull String text) {
20 Object item = getValueFromString(text);
21 setValue(parent, item);
22 }
23
24 @Nullable
25 default String toStringFromItem(@NonNull Object parent) {
26 Object item = getValue(parent);
27 return item == null ? null : getJavaTypeAdapter().asString(item);
28 }
29
30 default Object getValueFromString(@NonNull String text) {
31 return getJavaTypeAdapter().parse(text);
32 }
33
34
35
36
37
38
39 @NonNull
40 IDataTypeAdapter<?> getJavaTypeAdapter();
41
42 @Override
43 default Object deepCopyItem(Object source, IBoundObject parentInstance) throws BindingException {
44 return getJavaTypeAdapter().copy(source);
45 }
46 }