1
2 package dev.metaschema.core.metapath.item.node;
3
4 import dev.metaschema.core.metapath.format.IPathFormatter;
5 import dev.metaschema.core.model.IAssemblyInstance;
6 import dev.metaschema.core.qname.IEnhancedQName;
7 import dev.metaschema.core.util.ObjectUtils;
8 import edu.umd.cs.findbugs.annotations.NonNull;
9
10
11
12
13
14 public interface IRootAssemblyNodeItem extends IAssemblyNodeItem, IFeatureChildNodeItem {
15
16
17
18
19
20
21 @Override
22 default IEnhancedQName getQName() {
23 return ObjectUtils.requireNonNull(getDefinition().getRootQName());
24 }
25
26
27
28
29
30
31 @NonNull
32 IDocumentNodeItem getDocumentNodeItem();
33
34 @Override
35 @NonNull
36 default IDocumentNodeItem getParentNodeItem() {
37 return getDocumentNodeItem();
38 }
39
40 @Override
41 default IAssemblyNodeItem getParentContentNodeItem() {
42
43 return null;
44 }
45
46 @Override
47 default IAssemblyInstance getInstance() {
48
49 return null;
50 }
51
52 @Override
53 default IRootAssemblyNodeItem getNodeItem() {
54 return this;
55 }
56
57 @Override
58 default int getPosition() {
59
60 return 1;
61 }
62
63 @Override
64 default String format(@NonNull IPathFormatter formatter) {
65 return formatter.formatRootAssembly(this);
66 }
67 }