Committed by
Ray Milkey
Refactor: Reduce depth of indent
Inline enumerating over enum values Change-Id: Icff35340d91490b67b05d521f7addc6519d2b47a
Showing
1 changed file
with
32 additions
and
29 deletions
| ... | @@ -223,14 +223,25 @@ public class ConsistentLinkResourceStore extends | ... | @@ -223,14 +223,25 @@ public class ConsistentLinkResourceStore extends |
| 223 | 223 | ||
| 224 | Map<ResourceType, Set<ResourceAllocation>> free = new HashMap<>(); | 224 | Map<ResourceType, Set<ResourceAllocation>> free = new HashMap<>(); |
| 225 | final Map<ResourceType, Set<ResourceAllocation>> caps = getResourceCapacity(link); | 225 | final Map<ResourceType, Set<ResourceAllocation>> caps = getResourceCapacity(link); |
| 226 | - final Iterable<LinkResourceAllocations> allocations = getAllocations(tx, link); | 226 | + final List<LinkResourceAllocations> allocations = ImmutableList.copyOf(getAllocations(tx, link)); |
| 227 | 227 | ||
| 228 | - for (ResourceType type : ResourceType.values()) { | 228 | + Set<ResourceAllocation> bw = caps.get(ResourceType.BANDWIDTH); |
| 229 | - // there should be class/category of resources | 229 | + Set<ResourceAllocation> value = getFreeBandwidthResources(link, bw, allocations); |
| 230 | + free.put(ResourceType.BANDWIDTH, value); | ||
| 231 | + | ||
| 232 | + Set<ResourceAllocation> lmd = caps.get(ResourceType.LAMBDA); | ||
| 233 | + Set<ResourceAllocation> freeL = getFreeLambdaResources(link, lmd, allocations); | ||
| 234 | + free.put(ResourceType.LAMBDA, freeL); | ||
| 230 | 235 | ||
| 231 | - switch (type) { | 236 | + Set<ResourceAllocation> mpls = caps.get(ResourceType.MPLS_LABEL); |
| 232 | - case BANDWIDTH: | 237 | + Set<ResourceAllocation> freeLabel = getFreeLabelResources(link, mpls, allocations); |
| 233 | - Set<ResourceAllocation> bw = caps.get(type); | 238 | + free.put(ResourceType.MPLS_LABEL, freeLabel); |
| 239 | + | ||
| 240 | + return free; | ||
| 241 | + } | ||
| 242 | + | ||
| 243 | + private Set<ResourceAllocation> getFreeBandwidthResources(Link link, Set<ResourceAllocation> bw, | ||
| 244 | + List<LinkResourceAllocations> allocations) { | ||
| 234 | if (bw == null || bw.isEmpty()) { | 245 | if (bw == null || bw.isEmpty()) { |
| 235 | bw = Sets.newHashSet(new BandwidthResourceAllocation(EMPTY_BW)); | 246 | bw = Sets.newHashSet(new BandwidthResourceAllocation(EMPTY_BW)); |
| 236 | } | 247 | } |
| ... | @@ -239,61 +250,53 @@ public class ConsistentLinkResourceStore extends | ... | @@ -239,61 +250,53 @@ public class ConsistentLinkResourceStore extends |
| 239 | double freeBw = cap.bandwidth().toDouble(); | 250 | double freeBw = cap.bandwidth().toDouble(); |
| 240 | 251 | ||
| 241 | // enumerate current allocations, subtracting resources | 252 | // enumerate current allocations, subtracting resources |
| 242 | - double allocatedBw = ImmutableList.copyOf(allocations).stream() | 253 | + double allocatedBw = allocations.stream() |
| 243 | .flatMap(x -> x.getResourceAllocation(link).stream()) | 254 | .flatMap(x -> x.getResourceAllocation(link).stream()) |
| 244 | .filter(x -> x instanceof BandwidthResourceAllocation) | 255 | .filter(x -> x instanceof BandwidthResourceAllocation) |
| 245 | .map(x -> (BandwidthResourceAllocation) x) | 256 | .map(x -> (BandwidthResourceAllocation) x) |
| 246 | .mapToDouble(x -> x.bandwidth().toDouble()) | 257 | .mapToDouble(x -> x.bandwidth().toDouble()) |
| 247 | .sum(); | 258 | .sum(); |
| 248 | freeBw -= allocatedBw; | 259 | freeBw -= allocatedBw; |
| 260 | + return Sets.newHashSet( | ||
| 261 | + new BandwidthResourceAllocation(new BandwidthResource(Bandwidth.bps(freeBw)))); | ||
| 262 | + } | ||
| 249 | 263 | ||
| 250 | - free.put(type, Sets.newHashSet( | 264 | + private Set<ResourceAllocation> getFreeLambdaResources(Link link, Set<ResourceAllocation> lmd, |
| 251 | - new BandwidthResourceAllocation(new BandwidthResource(Bandwidth.bps(freeBw))))); | 265 | + List<LinkResourceAllocations> allocations) { |
| 252 | - break; | ||
| 253 | - case LAMBDA: | ||
| 254 | - Set<ResourceAllocation> lmd = caps.get(type); | ||
| 255 | if (lmd == null || lmd.isEmpty()) { | 266 | if (lmd == null || lmd.isEmpty()) { |
| 256 | // nothing left | 267 | // nothing left |
| 257 | - break; | 268 | + return Collections.emptySet(); |
| 258 | } | 269 | } |
| 259 | Set<ResourceAllocation> freeL = lmd.stream() | 270 | Set<ResourceAllocation> freeL = lmd.stream() |
| 260 | .filter(x -> x instanceof LambdaResourceAllocation) | 271 | .filter(x -> x instanceof LambdaResourceAllocation) |
| 261 | .collect(Collectors.toSet()); | 272 | .collect(Collectors.toSet()); |
| 262 | 273 | ||
| 263 | // enumerate current allocations, removing resources | 274 | // enumerate current allocations, removing resources |
| 264 | - List<ResourceAllocation> allocatedLambda = ImmutableList.copyOf(allocations).stream() | 275 | + List<ResourceAllocation> allocatedLambda = allocations.stream() |
| 265 | .flatMap(x -> x.getResourceAllocation(link).stream()) | 276 | .flatMap(x -> x.getResourceAllocation(link).stream()) |
| 266 | .filter(x -> x instanceof LambdaResourceAllocation) | 277 | .filter(x -> x instanceof LambdaResourceAllocation) |
| 267 | .collect(Collectors.toList()); | 278 | .collect(Collectors.toList()); |
| 268 | freeL.removeAll(allocatedLambda); | 279 | freeL.removeAll(allocatedLambda); |
| 280 | + return freeL; | ||
| 281 | + } | ||
| 269 | 282 | ||
| 270 | - free.put(type, freeL); | 283 | + private Set<ResourceAllocation> getFreeLabelResources(Link link, Set<ResourceAllocation> mpls, |
| 271 | - break; | 284 | + List<LinkResourceAllocations> allocations) { |
| 272 | - case MPLS_LABEL: | ||
| 273 | - Set<ResourceAllocation> mpls = caps.get(type); | ||
| 274 | if (mpls == null || mpls.isEmpty()) { | 285 | if (mpls == null || mpls.isEmpty()) { |
| 275 | // nothing left | 286 | // nothing left |
| 276 | - break; | 287 | + return Collections.emptySet(); |
| 277 | } | 288 | } |
| 278 | Set<ResourceAllocation> freeLabel = mpls.stream() | 289 | Set<ResourceAllocation> freeLabel = mpls.stream() |
| 279 | .filter(x -> x instanceof MplsLabelResourceAllocation) | 290 | .filter(x -> x instanceof MplsLabelResourceAllocation) |
| 280 | .collect(Collectors.toSet()); | 291 | .collect(Collectors.toSet()); |
| 281 | 292 | ||
| 282 | // enumerate current allocations, removing resources | 293 | // enumerate current allocations, removing resources |
| 283 | - List<ResourceAllocation> allocatedLabel = ImmutableList.copyOf(allocations).stream() | 294 | + List<ResourceAllocation> allocatedLabel = allocations.stream() |
| 284 | .flatMap(x -> x.getResourceAllocation(link).stream()) | 295 | .flatMap(x -> x.getResourceAllocation(link).stream()) |
| 285 | .filter(x -> x instanceof MplsLabelResourceAllocation) | 296 | .filter(x -> x instanceof MplsLabelResourceAllocation) |
| 286 | .collect(Collectors.toList()); | 297 | .collect(Collectors.toList()); |
| 287 | freeLabel.removeAll(allocatedLabel); | 298 | freeLabel.removeAll(allocatedLabel); |
| 288 | - | 299 | + return freeLabel; |
| 289 | - free.put(type, freeLabel); | ||
| 290 | - break; | ||
| 291 | - default: | ||
| 292 | - log.debug("unsupported ResourceType {}", type); | ||
| 293 | - break; | ||
| 294 | - } | ||
| 295 | - } | ||
| 296 | - return free; | ||
| 297 | } | 300 | } |
| 298 | 301 | ||
| 299 | @Override | 302 | @Override | ... | ... |
-
Please register or login to post a comment