1
2
3
4
5
6 package gov.nist.secauto.metaschema.core.model;
7
8 import java.util.Collection;
9
10 import edu.umd.cs.findbugs.annotations.NonNull;
11
12 public interface IFeatureContainerModelGrouped<
13 NMI extends INamedModelInstanceGrouped,
14 FI extends IFieldInstanceGrouped,
15 AI extends IAssemblyInstanceGrouped>
16 extends IContainerModelGrouped, IContainerModel {
17
18
19
20
21
22 @NonNull
23 IContainerModelSupport<NMI, NMI, FI, AI> getModelContainer();
24
25 @Override
26 default boolean hasChildren() {
27 return !getModelContainer().getModelInstances().isEmpty();
28 }
29
30 @Override
31 default Collection<NMI> getModelInstances() {
32 return getNamedModelInstances();
33 }
34
35 @Override
36 default NMI getNamedModelInstanceByName(Integer name) {
37 return getModelContainer().getNamedModelInstanceMap().get(name);
38 }
39
40 @SuppressWarnings("null")
41 @Override
42 default Collection<NMI> getNamedModelInstances() {
43 return getModelContainer().getNamedModelInstanceMap().values();
44 }
45
46 @Override
47 default FI getFieldInstanceByName(Integer name) {
48 return getModelContainer().getFieldInstanceMap().get(name);
49 }
50
51 @SuppressWarnings("null")
52 @Override
53 default Collection<FI> getFieldInstances() {
54 return getModelContainer().getFieldInstanceMap().values();
55 }
56
57 @Override
58 default AI getAssemblyInstanceByName(Integer name) {
59 return getModelContainer().getAssemblyInstanceMap().get(name);
60 }
61
62 @SuppressWarnings("null")
63 @Override
64 default Collection<AI> getAssemblyInstances() {
65 return getModelContainer().getAssemblyInstanceMap().values();
66 }
67 }