Skip to content
This repository was archived by the owner on Jun 3, 2025. It is now read-only.

Commit 12b7df6

Browse files
committed
feat: remove dependency on unique ids
1 parent 80b1b4b commit 12b7df6

File tree

8 files changed

+110
-17
lines changed

8 files changed

+110
-17
lines changed

bundles/org.dataflowanalysis.examplemodels/src/org/dataflowanalysis/examplemodels/results/ExpectedViolation.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package org.dataflowanalysis.examplemodels.results;
22

3-
import de.uka.ipd.sdq.identifier.Identifier;
3+
import org.dataflowanalysis.analysis.core.AbstractTransposeFlowGraph;
44
import org.dataflowanalysis.analysis.core.AbstractVertex;
55
import org.dataflowanalysis.analysis.core.CharacteristicValue;
66
import org.dataflowanalysis.analysis.core.DataCharacteristic;
@@ -9,19 +9,21 @@
99
import java.util.*;
1010

1111
public class ExpectedViolation {
12-
private final UUID nodeID;
12+
private final int flowGraphIndex;
13+
private final Identifier identifier;
1314
private final List<ExpectedCharacteristic> vertexCharacteristics;
1415
private final Map<String, List<ExpectedCharacteristic>> dataCharacteristics;
1516

16-
public ExpectedViolation(UUID nodeID, List<ExpectedCharacteristic> vertexCharacteristics,
17+
public ExpectedViolation(int flowGraphIndex, Identifier identifier, List<ExpectedCharacteristic> vertexCharacteristics,
1718
Map<String, List<ExpectedCharacteristic>> dataCharacteristics) {
18-
this.nodeID = nodeID;
19+
this.flowGraphIndex = flowGraphIndex;
20+
this.identifier = identifier;
1921
this.vertexCharacteristics = vertexCharacteristics;
2022
this.dataCharacteristics = dataCharacteristics;
2123
}
2224

23-
public boolean references(AbstractVertex<?> element) {
24-
return element.getUniqueIdentifier().equals(this.nodeID);
25+
public boolean references(AbstractVertex<?> element, int flowGraphIndex) {
26+
return this.identifier.matches(element) && this.flowGraphIndex == flowGraphIndex;
2527
}
2628

2729
public List<ExpectedCharacteristic> hasNodeCharacteristic(List<CharacteristicValue> actualCharacteristics) {
@@ -59,7 +61,7 @@ private boolean hasCharacteristicValue(ExpectedCharacteristic expectedCharacteri
5961
.anyMatch(it -> expectedCharacteristic.characteristicLiteral().equals(it.getValueName()));
6062
}
6163

62-
public UUID getNodeID() {
63-
return nodeID;
64+
public Identifier getIdentifier() {
65+
return identifier;
6466
}
6567
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package org.dataflowanalysis.examplemodels.results;
2+
3+
import org.dataflowanalysis.analysis.core.AbstractVertex;
4+
5+
public interface Identifier {
6+
boolean matches(AbstractVertex<?> vertex);
7+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package org.dataflowanalysis.examplemodels.results.dfd;
2+
3+
import org.dataflowanalysis.analysis.core.AbstractVertex;
4+
import org.dataflowanalysis.analysis.dfd.core.DFDVertex;
5+
import org.dataflowanalysis.examplemodels.results.Identifier;
6+
7+
public class DFDIdentifier implements Identifier {
8+
private final String id;
9+
10+
public DFDIdentifier(String id) {
11+
this.id = id;
12+
}
13+
14+
@Override
15+
public boolean matches(AbstractVertex<?> vertex) {
16+
if (!(vertex instanceof DFDVertex dfdVertex)) {
17+
return false;
18+
}
19+
return dfdVertex.getReferencedElement().getId().equals(this.id);
20+
}
21+
22+
public static DFDIdentifier of(String id) {
23+
return new DFDIdentifier(id);
24+
}
25+
26+
@Override
27+
public String toString() {
28+
return String.format("DFD vertex with ID %s", this.id);
29+
}
30+
}

bundles/org.dataflowanalysis.examplemodels/src/org/dataflowanalysis/examplemodels/results/pcm/InternationalOnlineShopResult.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@ public AnalysisConstraint getDSLConstraint() {
2929
@Override
3030
public List<ExpectedViolation> getExpectedViolations() {
3131
return List.of(
32-
new ExpectedViolation(UUID.fromString("74b8d8a8-d110-3c5a-aca0-0092db3ec931"), List.of(new ExpectedCharacteristic("ServerLocation", "nonEU")),
32+
new ExpectedViolation(0, PCMIdentifier.of("_oGmXgYTjEeywmO_IpTxeAg", true), List.of(new ExpectedCharacteristic("ServerLocation", "nonEU")),
3333
Map.of("userData", List.of(new ExpectedCharacteristic("DataSensitivity", "Personal")))),
34-
new ExpectedViolation(UUID.fromString("f362790a-49d7-3c22-8558-7232ba02d577"), List.of(new ExpectedCharacteristic("ServerLocation", "nonEU")),
34+
new ExpectedViolation(0, PCMIdentifier.of("_oGmXgYTjEeywmO_IpTxeAg", false), List.of(new ExpectedCharacteristic("ServerLocation", "nonEU")),
3535
Map.of("userData", List.of(new ExpectedCharacteristic("DataSensitivity", "Personal")))));
3636
}
3737

bundles/org.dataflowanalysis.examplemodels/src/org/dataflowanalysis/examplemodels/results/pcm/MultipleDeploymentsResult.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,10 @@ public AnalysisConstraint getDSLConstraint() {
2929
@Override
3030
public List<ExpectedViolation> getExpectedViolations() {
3131
return List.of(
32-
new ExpectedViolation(UUID.fromString("838571d3-277b-392f-9ac4-6b4d4ceddf56"),
32+
new ExpectedViolation(0, PCMIdentifier.of("_dQ568HQSEe2fd909RlIZZw", true),
3333
List.of(new ExpectedCharacteristic("ServerLocation", "nonEU"), new ExpectedCharacteristic("ServerLocation", "EU")),
3434
Map.of("userdata", List.of(new ExpectedCharacteristic("DataSensitivity", "Personal")))),
35-
new ExpectedViolation(UUID.fromString("a9ea02e4-d182-3bb2-bf18-edae674488c7"),
35+
new ExpectedViolation(0, PCMIdentifier.of("_dQ568XQSEe2fd909RlIZZw", false),
3636
List.of(new ExpectedCharacteristic("ServerLocation", "nonEU"), new ExpectedCharacteristic("ServerLocation", "EU")),
3737
Map.of("userdata", List.of(new ExpectedCharacteristic("DataSensitivity", "Personal")))));
3838
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
package org.dataflowanalysis.examplemodels.results.pcm;
2+
3+
import org.dataflowanalysis.analysis.core.AbstractVertex;
4+
import org.dataflowanalysis.analysis.pcm.core.AbstractPCMVertex;
5+
import org.dataflowanalysis.analysis.pcm.core.CallReturnBehavior;
6+
import org.dataflowanalysis.examplemodels.results.Identifier;
7+
8+
import java.util.Optional;
9+
10+
public class PCMIdentifier implements Identifier {
11+
private final String id;
12+
private final Optional<Boolean> calling;
13+
14+
public PCMIdentifier(String id) {
15+
this.id = id;
16+
this.calling = Optional.empty();
17+
}
18+
19+
public PCMIdentifier(String id, boolean calling) {
20+
this.id = id;
21+
this.calling = Optional.of(calling);
22+
}
23+
24+
@Override
25+
public boolean matches(AbstractVertex<?> vertex) {
26+
if (!(vertex instanceof AbstractPCMVertex<?> pcmVertex)) {
27+
return false;
28+
}
29+
if (this.calling.isPresent() && vertex instanceof CallReturnBehavior callReturnBehavior) {
30+
if (callReturnBehavior.isCalling() != this.calling.get()) {
31+
return false;
32+
}
33+
}
34+
return pcmVertex.getReferencedElement().getId().equals(this.id);
35+
}
36+
37+
public static PCMIdentifier of(String id) {
38+
return new PCMIdentifier(id);
39+
}
40+
41+
public static PCMIdentifier of(String id, boolean calling) {
42+
return new PCMIdentifier(id, calling);
43+
}
44+
45+
@Override
46+
public String toString() {
47+
if (this.calling.isPresent()) {
48+
String callString = this.calling.get() ? "Calling" : "Returning";
49+
return String.format("%s PCM Vertex with ID %s", callString, this.id);
50+
} else {
51+
return String.format("PCM vertex with ID %s", this.id);
52+
}
53+
}
54+
}

bundles/org.dataflowanalysis.examplemodels/src/org/dataflowanalysis/examplemodels/results/pcm/TravelPlannerResult.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,15 +45,15 @@ public AnalysisConstraint getDSLConstraint() {
4545
@Override
4646
public List<ExpectedViolation> getExpectedViolations() {
4747
return List.of(
48-
new ExpectedViolation(UUID.fromString("2214df8e-6d69-3738-83a2-1b91df85e9af"), List.of(new ExpectedCharacteristic("AssignedRoles", "Airline")),
48+
new ExpectedViolation(0, PCMIdentifier.of("_vorK8fVeEeuMKba1Qn68bg", true), List.of(new ExpectedCharacteristic("AssignedRoles", "Airline")),
4949
Map.of("flight",
5050
List.of(new ExpectedCharacteristic("GrantedRoles", "User"), new ExpectedCharacteristic("GrantedRoles", "Airline")),
5151
"ccd", List.of(new ExpectedCharacteristic("GrantedRoles", "User")))),
52-
new ExpectedViolation(UUID.fromString("5bdd20eb-7450-3772-974f-87e31009847e"), List.of(new ExpectedCharacteristic("AssignedRoles", "Airline")),
52+
new ExpectedViolation(0, PCMIdentifier.of("_7HCu4PViEeuMKba1Qn68bg", false), List.of(new ExpectedCharacteristic("AssignedRoles", "Airline")),
5353
Map.of("flight",
5454
List.of(new ExpectedCharacteristic("GrantedRoles", "User"), new ExpectedCharacteristic("GrantedRoles", "Airline")),
5555
"ccd", List.of(new ExpectedCharacteristic("GrantedRoles", "User")))),
56-
new ExpectedViolation(UUID.fromString("207639fc-5022-354e-8ffd-7b20885b469e"), List.of(new ExpectedCharacteristic("AssignedRoles", "Airline")),
56+
new ExpectedViolation(0, PCMIdentifier.of("_vorK8vVeEeuMKba1Qn68bg", false), List.of(new ExpectedCharacteristic("AssignedRoles", "Airline")),
5757
Map.of("flight",
5858
List.of(new ExpectedCharacteristic("GrantedRoles", "User"), new ExpectedCharacteristic("GrantedRoles", "Airline")),
5959
"ccd", List.of(new ExpectedCharacteristic("GrantedRoles", "User")), "RETURN",

bundles/org.dataflowanalysis.examplemodels/src/org/dataflowanalysis/examplemodels/results/pcm/VariableReturnResult.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,9 @@ public AnalysisConstraint getDSLConstraint() {
3535
@Override
3636
public List<ExpectedViolation> getExpectedViolations() {
3737
return List.of(
38-
new ExpectedViolation(UUID.fromString("faaf62e5-405f-385c-96f1-c01d378193a6"), List.of(new ExpectedCharacteristic("AssignedRole", "User")),
38+
new ExpectedViolation(0, PCMIdentifier.of("_nOhAgILtEe2YyoqaKVkqog", false), List.of(new ExpectedCharacteristic("AssignedRole", "User")),
3939
Map.of("RETURN", List.of(new ExpectedCharacteristic("AssignedRole", "Admin")))),
40-
new ExpectedViolation(UUID.fromString("843a03df-2250-3227-b4b2-108318912005"), List.of(new ExpectedCharacteristic("AssignedRole", "User")),
40+
new ExpectedViolation(0, PCMIdentifier.of("_9M9DMoLsEe2YyoqaKVkqog", false), List.of(new ExpectedCharacteristic("AssignedRole", "User")),
4141
Map.of("data", List.of(new ExpectedCharacteristic("AssignedRole", "Admin")))));
4242
}
4343

0 commit comments

Comments
 (0)