Reduce duplicated code
Change-Id: Iac8f2c0ec7336d936425701976e090b413186d8d
Showing
1 changed file
with
14 additions
and
29 deletions
| ... | @@ -230,11 +230,13 @@ public class ConsistentLinkResourceStore extends | ... | @@ -230,11 +230,13 @@ public class ConsistentLinkResourceStore extends |
| 230 | free.put(ResourceType.BANDWIDTH, value); | 230 | free.put(ResourceType.BANDWIDTH, value); |
| 231 | 231 | ||
| 232 | Set<ResourceAllocation> lmd = caps.get(ResourceType.LAMBDA); | 232 | Set<ResourceAllocation> lmd = caps.get(ResourceType.LAMBDA); |
| 233 | - Set<ResourceAllocation> freeL = getFreeLambdaResources(link, lmd, allocations); | 233 | + Set<ResourceAllocation> freeL = getFreeResources(link, lmd, allocations, |
| 234 | + LambdaResourceAllocation.class); | ||
| 234 | free.put(ResourceType.LAMBDA, freeL); | 235 | free.put(ResourceType.LAMBDA, freeL); |
| 235 | 236 | ||
| 236 | Set<ResourceAllocation> mpls = caps.get(ResourceType.MPLS_LABEL); | 237 | Set<ResourceAllocation> mpls = caps.get(ResourceType.MPLS_LABEL); |
| 237 | - Set<ResourceAllocation> freeLabel = getFreeLabelResources(link, mpls, allocations); | 238 | + Set<ResourceAllocation> freeLabel = getFreeResources(link, mpls, allocations, |
| 239 | + MplsLabelResourceAllocation.class); | ||
| 238 | free.put(ResourceType.MPLS_LABEL, freeLabel); | 240 | free.put(ResourceType.MPLS_LABEL, freeLabel); |
| 239 | 241 | ||
| 240 | return free; | 242 | return free; |
| ... | @@ -261,44 +263,27 @@ public class ConsistentLinkResourceStore extends | ... | @@ -261,44 +263,27 @@ public class ConsistentLinkResourceStore extends |
| 261 | new BandwidthResourceAllocation(new BandwidthResource(Bandwidth.bps(freeBw)))); | 263 | new BandwidthResourceAllocation(new BandwidthResource(Bandwidth.bps(freeBw)))); |
| 262 | } | 264 | } |
| 263 | 265 | ||
| 264 | - private Set<ResourceAllocation> getFreeLambdaResources(Link link, Set<ResourceAllocation> lmd, | 266 | + private Set<ResourceAllocation> getFreeResources(Link link, |
| 265 | - List<LinkResourceAllocations> allocations) { | 267 | + Set<ResourceAllocation> resources, |
| 266 | - if (lmd == null || lmd.isEmpty()) { | 268 | + List<LinkResourceAllocations> allocations, |
| 269 | + Class<? extends ResourceAllocation> cls) { | ||
| 270 | + if (resources == null || resources.isEmpty()) { | ||
| 267 | // nothing left | 271 | // nothing left |
| 268 | return Collections.emptySet(); | 272 | return Collections.emptySet(); |
| 269 | } | 273 | } |
| 270 | - Set<ResourceAllocation> freeL = lmd.stream() | 274 | + Set<ResourceAllocation> freeL = resources.stream() |
| 271 | - .filter(x -> x instanceof LambdaResourceAllocation) | 275 | + .filter(cls::isInstance) |
| 272 | .collect(Collectors.toSet()); | 276 | .collect(Collectors.toSet()); |
| 273 | 277 | ||
| 274 | // enumerate current allocations, removing resources | 278 | // enumerate current allocations, removing resources |
| 275 | - List<ResourceAllocation> allocatedLambda = allocations.stream() | 279 | + List<ResourceAllocation> allocated = allocations.stream() |
| 276 | .flatMap(x -> x.getResourceAllocation(link).stream()) | 280 | .flatMap(x -> x.getResourceAllocation(link).stream()) |
| 277 | - .filter(x -> x instanceof LambdaResourceAllocation) | 281 | + .filter(cls::isInstance) |
| 278 | .collect(Collectors.toList()); | 282 | .collect(Collectors.toList()); |
| 279 | - freeL.removeAll(allocatedLambda); | 283 | + freeL.removeAll(allocated); |
| 280 | return freeL; | 284 | return freeL; |
| 281 | } | 285 | } |
| 282 | 286 | ||
| 283 | - private Set<ResourceAllocation> getFreeLabelResources(Link link, Set<ResourceAllocation> mpls, | ||
| 284 | - List<LinkResourceAllocations> allocations) { | ||
| 285 | - if (mpls == null || mpls.isEmpty()) { | ||
| 286 | - // nothing left | ||
| 287 | - return Collections.emptySet(); | ||
| 288 | - } | ||
| 289 | - Set<ResourceAllocation> freeLabel = mpls.stream() | ||
| 290 | - .filter(x -> x instanceof MplsLabelResourceAllocation) | ||
| 291 | - .collect(Collectors.toSet()); | ||
| 292 | - | ||
| 293 | - // enumerate current allocations, removing resources | ||
| 294 | - List<ResourceAllocation> allocatedLabel = allocations.stream() | ||
| 295 | - .flatMap(x -> x.getResourceAllocation(link).stream()) | ||
| 296 | - .filter(x -> x instanceof MplsLabelResourceAllocation) | ||
| 297 | - .collect(Collectors.toList()); | ||
| 298 | - freeLabel.removeAll(allocatedLabel); | ||
| 299 | - return freeLabel; | ||
| 300 | - } | ||
| 301 | - | ||
| 302 | @Override | 287 | @Override |
| 303 | public void allocateResources(LinkResourceAllocations allocations) { | 288 | public void allocateResources(LinkResourceAllocations allocations) { |
| 304 | checkNotNull(allocations); | 289 | checkNotNull(allocations); | ... | ... |
-
Please register or login to post a comment