1
2 package dev.metaschema.core.metapath.item.node;
3
4 import dev.metaschema.core.metapath.item.atomic.IAnyAtomicItem;
5 import dev.metaschema.core.metapath.item.atomic.IAtomicValuedItem;
6 import dev.metaschema.core.model.IValuedDefinition;
7 import edu.umd.cs.findbugs.annotations.NonNull;
8 import edu.umd.cs.findbugs.annotations.Nullable;
9
10
11
12 interface IFeatureAtomicValuedItem
13 extends IFeatureRequiredDataItem, IAtomicValuedItem {
14
15 @NonNull
16 IValuedDefinition getDefinition();
17
18 @Nullable
19 Object getAtomicValue();
20
21 @Nullable
22 default IAnyAtomicItem newAtomicItem() {
23 Object atomicValue = getAtomicValue();
24 IAnyAtomicItem retval = null;
25 if (atomicValue != null) {
26 IValuedDefinition def = getDefinition();
27 retval = def.getJavaTypeAdapter().newItem(atomicValue);
28 }
29 return retval;
30 }
31 }