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