1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 package gov.nist.secauto.metaschema.core.model.xml;
28
29 import gov.nist.secauto.metaschema.core.datatype.markup.MarkupLine;
30 import gov.nist.secauto.metaschema.core.datatype.markup.MarkupMultiline;
31 import gov.nist.secauto.metaschema.core.model.AbstractAssemblyInstance;
32 import gov.nist.secauto.metaschema.core.model.IAssemblyDefinition;
33 import gov.nist.secauto.metaschema.core.model.IModelContainer;
34 import gov.nist.secauto.metaschema.core.model.JsonGroupAsBehavior;
35 import gov.nist.secauto.metaschema.core.model.XmlGroupAsBehavior;
36 import gov.nist.secauto.metaschema.core.model.xml.xmlbeans.AssemblyReferenceType;
37 import gov.nist.secauto.metaschema.core.model.xml.xmlbeans.MarkupLineDatatype;
38 import gov.nist.secauto.metaschema.core.util.CollectionUtil;
39 import gov.nist.secauto.metaschema.core.util.ObjectUtils;
40
41 import java.util.Collection;
42 import java.util.Collections;
43 import java.util.Map;
44 import java.util.Set;
45
46 import javax.xml.namespace.QName;
47
48 import edu.umd.cs.findbugs.annotations.NonNull;
49
50 class XmlAssemblyInstance
51 extends AbstractAssemblyInstance {
52
53
54
55 private final AssemblyReferenceType xmlAssembly;
56
57
58
59
60
61
62
63
64
65
66 public XmlAssemblyInstance(
67 @NonNull AssemblyReferenceType xmlAssembly,
68 @NonNull IModelContainer parent) {
69 super(parent);
70 this.xmlAssembly = xmlAssembly;
71 }
72
73
74
75
76
77
78 protected AssemblyReferenceType getXmlAssembly() {
79 return xmlAssembly;
80 }
81
82 @Override
83 public IAssemblyDefinition getDefinition() {
84
85 return ObjectUtils.notNull(getContainingModule()
86 .getScopedAssemblyDefinitionByName(getName()));
87 }
88
89 @Override
90 public String getFormalName() {
91 return getXmlAssembly().isSetFormalName() ? getXmlAssembly().getFormalName() : null;
92 }
93
94 @Override
95 public Map<QName, Set<String>> getProperties() {
96 return ModelFactory.toProperties(CollectionUtil.listOrEmpty(getXmlAssembly().getPropList()));
97 }
98
99 @Override
100 public MarkupLine getDescription() {
101 MarkupLine retval = null;
102 if (getXmlAssembly().isSetDescription()) {
103 MarkupLineDatatype description = getXmlAssembly().getDescription();
104 assert description != null;
105 retval = MarkupStringConverter.toMarkupString(description);
106 }
107 return retval;
108 }
109
110 @SuppressWarnings("null")
111 @Override
112 public String getName() {
113 return getXmlAssembly().getRef();
114 }
115
116 @Override
117 public String getUseName() {
118 return getXmlAssembly().isSetUseName() ? getXmlAssembly().getUseName() : null;
119 }
120
121 @Override
122 public String getGroupAsName() {
123 return getXmlAssembly().isSetGroupAs() ? getXmlAssembly().getGroupAs().getName() : null;
124 }
125
126 @Override
127 public int getMinOccurs() {
128 return XmlModelParser.getMinOccurs(getXmlAssembly().getMinOccurs());
129 }
130
131 @Override
132 public int getMaxOccurs() {
133 return XmlModelParser.getMaxOccurs(getXmlAssembly().getMaxOccurs());
134 }
135
136 @Override
137 public JsonGroupAsBehavior getJsonGroupAsBehavior() {
138 return XmlModelParser.getJsonGroupAsBehavior(getXmlAssembly().getGroupAs());
139 }
140
141 @Override
142 public XmlGroupAsBehavior getXmlGroupAsBehavior() {
143 return XmlModelParser.getXmlGroupAsBehavior(getXmlAssembly().getGroupAs());
144 }
145
146 @SuppressWarnings("null")
147 @Override
148 public MarkupMultiline getRemarks() {
149 return getXmlAssembly().isSetRemarks() ? MarkupStringConverter.toMarkupString(getXmlAssembly().getRemarks()) : null;
150 }
151
152 @Override
153 public Object getValue(@NonNull Object parentInstance) {
154
155 return null;
156 }
157
158 @SuppressWarnings("null")
159 @Override
160 public Collection<?> getItemValues(Object instanceValue) {
161
162 return Collections.emptyList();
163 }
164 }