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 { aspect TreeNavigation {
// collections of things // collections of things
...@@ -215,29 +217,25 @@ aspect TreeNavigation { ...@@ -215,29 +217,25 @@ aspect TreeNavigation {
return getTarget().getSwitch(); return getTarget().getSwitch();
} }
syn Collection<Sensor> TrackElement.monitoredBy() { coll ArrayList<Sensor> TrackElement.monitoredBy() [new ArrayList()] with add;
return getRoot().monitoredByMap().get(this.id());
}
syn Map<Integer,Set<Sensor>> RailwayContainer.monitoredByMap() { Sensor contributes this
Map<Integer,Set<Sensor>> sensorMap = new java.util.HashMap<>(); to TrackElement.monitoredBy()
for each monitoredElements();
// fill the keys RailwayContainer contributes {
for (Region region: getRegionList()) { // Explicitly traverses regions, skips routes.
for (TrackElement trackElement: region.getTrackElementList()) { getRegionList().collectContributions();
sensorMap.put(trackElement.id(), new java.util.HashSet<>()); } to TrackElement.monitoredBy();
}
}
// update the values Region contributes {
for (Sensor sensor : sensors()) { // Explicitly traverses sensors, skips elements.
for (TrackElementRef trackElementRef : sensor.getMonitoredElementList()) { getSensorList().collectContributions();
sensorMap.get(trackElementRef.getValue()).add(sensor); } to TrackElement.monitoredBy();
}
}
return sensorMap; Sensor contributes {
} // Stop at sensor, only contains refs.
} to TrackElement.monitoredBy();
syn Collection<Route> Sensor.requiringRoutes() { syn Collection<Route> Sensor.requiringRoutes() {
return getRoot().requiringRoutesMap().get(this.id()); 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