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.decima.xml.testing;
28
29 import gov.nist.secauto.decima.core.requirement.AbstractBaseRequirement;
30 import gov.nist.secauto.decima.core.requirement.AbstractRequirement;
31 import gov.nist.secauto.decima.core.requirement.BaseRequirement;
32 import gov.nist.secauto.decima.core.requirement.DerivedRequirement;
33 import gov.nist.secauto.decima.core.requirement.RequirementType;
34 import gov.nist.secauto.decima.core.requirement.RequirementsManager;
35 import gov.nist.secauto.decima.core.requirement.SpecificationReference;
36
37 import java.net.URI;
38 import java.util.Collection;
39 import java.util.Collections;
40 import java.util.HashMap;
41 import java.util.List;
42 import java.util.Map;
43 import java.util.Set;
44
45 public class StubRequirementsManager implements RequirementsManager {
46 private static final String STUB_STATEMENT = "something";
47
48 public Map<String, BaseRequirement> baseRequirements;
49
50
51
52
53
54
55
56 public StubRequirementsManager(Set<String> testedDerivedRequirements) {
57 this.baseRequirements = new HashMap<>();
58 for (String derivedReqId : testedDerivedRequirements) {
59 StubBaseRequirement base = new StubBaseRequirement(derivedReqId);
60 baseRequirements.put(derivedReqId, base);
61 base.addDerivedRequirement(new StubDerivedRequirement(derivedReqId, base));
62 }
63 }
64
65 @Override
66 public List<URI> getRequirementDefinitions() {
67 return Collections.emptyList();
68 }
69
70 @Override
71 public BaseRequirement getBaseRequirementById(String id) {
72 return baseRequirements.get(id);
73 }
74
75 @Override
76 public Collection<BaseRequirement> getBaseRequirements() {
77 return baseRequirements.values();
78 }
79
80 @Override
81 public DerivedRequirement getDerivedRequirementById(String id) {
82 BaseRequirement base = getBaseRequirementById(id);
83 return base == null ? null : base.getDerivedRequirementById(id);
84 }
85
86 private static class StubBaseRequirement
87 extends AbstractBaseRequirement {
88
89 public StubBaseRequirement(String id) {
90 super(id, STUB_STATEMENT);
91 }
92
93 @Override
94 public SpecificationReference getSpecificationReference() {
95 throw new UnsupportedOperationException();
96 }
97
98 }
99
100 private static class StubDerivedRequirement
101 extends AbstractRequirement
102 implements DerivedRequirement {
103 private final BaseRequirement baseRequirement;
104
105 public StubDerivedRequirement(String id, BaseRequirement base) {
106 super(id, STUB_STATEMENT);
107 this.baseRequirement = base;
108 }
109
110 @Override
111 public BaseRequirement getBaseRequirement() {
112 return baseRequirement;
113 }
114
115 @Override
116 public RequirementType getType() {
117 return RequirementType.MUST;
118 }
119
120 @Override
121 public String getMessageText(String... args) {
122 return "message";
123 }
124
125 @Override
126 public boolean isConditional() {
127
128 return false;
129 }
130 }
131 }