Skip to content
Snippets Groups Projects
Commit 45501a10 authored by Johannes Mey's avatar Johannes Mey
Browse files

Merge remote-tracking branch 'origin/collection-attribute' into runtime-extensions

parents 3b49d047 9b2c7a1f
No related branches found
No related tags found
No related merge requests found
No preview for this file type
import java.util.HashSet;
aspect TreeNavigation {
// collections of things
......@@ -215,29 +217,25 @@ aspect TreeNavigation {
return getTarget().getSwitch();
}
syn Collection<Sensor> TrackElement.monitoredBy() {
return getRoot().monitoredByMap().get(this.id());
}
coll ArrayList<Sensor> TrackElement.monitoredBy() [new ArrayList()] with add;
syn Map<Integer,Set<Sensor>> RailwayContainer.monitoredByMap() {
Map<Integer,Set<Sensor>> sensorMap = new java.util.HashMap<>();
Sensor contributes this
to TrackElement.monitoredBy()
for each monitoredElements();
// fill the keys
for (Region region: getRegionList()) {
for (TrackElement trackElement: region.getTrackElementList()) {
sensorMap.put(trackElement.id(), new java.util.HashSet<>());
}
}
RailwayContainer contributes {
// Explicitly traverses regions, skips routes.
getRegionList().collectContributions();
} to TrackElement.monitoredBy();
// update the values
for (Sensor sensor : sensors()) {
for (TrackElementRef trackElementRef : sensor.getMonitoredElementList()) {
sensorMap.get(trackElementRef.getValue()).add(sensor);
}
}
Region contributes {
// Explicitly traverses sensors, skips elements.
getSensorList().collectContributions();
} to TrackElement.monitoredBy();
return sensorMap;
}
Sensor contributes {
// Stop at sensor, only contains refs.
} to TrackElement.monitoredBy();
syn Collection<Route> Sensor.requiringRoutes() {
return getRoot().requiringRoutesMap().get(this.id());
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment