Committed by
Gerrit Code Review
Fixing driver matrix to consider inherited behaviours.
Change-Id: I20a6ef53975d0b9e78bdc6308e0165a181ff7046
Showing
1 changed file
with
15 additions
and
6 deletions
| ... | @@ -124,20 +124,29 @@ public class DriverViewMessageHandler extends UiMessageHandler { | ... | @@ -124,20 +124,29 @@ public class DriverViewMessageHandler extends UiMessageHandler { |
| 124 | drivers.forEach(d -> array.add(d.name())); | 124 | drivers.forEach(d -> array.add(d.name())); |
| 125 | } | 125 | } |
| 126 | 126 | ||
| 127 | + private Set<Driver> findLineage(Driver driver) { | ||
| 128 | + ImmutableSet.Builder<Driver> lineage = ImmutableSet.builder(); | ||
| 129 | + lineage.add(driver); | ||
| 130 | + List<Driver> parents = driver.parents(); | ||
| 131 | + if (parents != null) { | ||
| 132 | + parents.forEach(p -> lineage.addAll(findLineage(p))); | ||
| 133 | + } | ||
| 134 | + return lineage.build(); | ||
| 135 | + } | ||
| 136 | + | ||
| 127 | private void addMatrixCells(ObjectNode root, List<Driver> drivers) { | 137 | private void addMatrixCells(ObjectNode root, List<Driver> drivers) { |
| 128 | ObjectNode matrix = objectNode(); | 138 | ObjectNode matrix = objectNode(); |
| 129 | root.set(MATRIX, matrix); | 139 | root.set(MATRIX, matrix); |
| 130 | 140 | ||
| 131 | - drivers.forEach(d -> { | 141 | + drivers.forEach(driver -> { |
| 132 | ObjectNode dnode = objectNode(); | 142 | ObjectNode dnode = objectNode(); |
| 133 | - matrix.set(d.name(), dnode); | 143 | + matrix.set(driver.name(), dnode); |
| 134 | - | 144 | + Set<Driver> lineage = findLineage(driver); |
| 135 | - d.behaviours().forEach(b -> { | 145 | + lineage.forEach(d -> d.behaviours().forEach(b -> { |
| 136 | // TODO: can put a payload here, rather than a '1' marker | 146 | // TODO: can put a payload here, rather than a '1' marker |
| 137 | dnode.put(b.getSimpleName(), ONE); | 147 | dnode.put(b.getSimpleName(), ONE); |
| 138 | - }); | 148 | + })); |
| 139 | }); | 149 | }); |
| 140 | } | 150 | } |
| 141 | } | 151 | } |
| 142 | - | ||
| 143 | } | 152 | } | ... | ... |
-
Please register or login to post a comment