Reduce duplicated code
Change-Id: Iac8f2c0ec7336d936425701976e090b413186d8d
diff --git a/core/store/dist/src/main/java/org/onosproject/store/resource/impl/ConsistentLinkResourceStore.java b/core/store/dist/src/main/java/org/onosproject/store/resource/impl/ConsistentLinkResourceStore.java
index a887490..da8796b 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/resource/impl/ConsistentLinkResourceStore.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/resource/impl/ConsistentLinkResourceStore.java
@@ -230,11 +230,13 @@
free.put(ResourceType.BANDWIDTH, value);
Set<ResourceAllocation> lmd = caps.get(ResourceType.LAMBDA);
- Set<ResourceAllocation> freeL = getFreeLambdaResources(link, lmd, allocations);
+ Set<ResourceAllocation> freeL = getFreeResources(link, lmd, allocations,
+ LambdaResourceAllocation.class);
free.put(ResourceType.LAMBDA, freeL);
Set<ResourceAllocation> mpls = caps.get(ResourceType.MPLS_LABEL);
- Set<ResourceAllocation> freeLabel = getFreeLabelResources(link, mpls, allocations);
+ Set<ResourceAllocation> freeLabel = getFreeResources(link, mpls, allocations,
+ MplsLabelResourceAllocation.class);
free.put(ResourceType.MPLS_LABEL, freeLabel);
return free;
@@ -261,44 +263,27 @@
new BandwidthResourceAllocation(new BandwidthResource(Bandwidth.bps(freeBw))));
}
- private Set<ResourceAllocation> getFreeLambdaResources(Link link, Set<ResourceAllocation> lmd,
- List<LinkResourceAllocations> allocations) {
- if (lmd == null || lmd.isEmpty()) {
+ private Set<ResourceAllocation> getFreeResources(Link link,
+ Set<ResourceAllocation> resources,
+ List<LinkResourceAllocations> allocations,
+ Class<? extends ResourceAllocation> cls) {
+ if (resources == null || resources.isEmpty()) {
// nothing left
return Collections.emptySet();
}
- Set<ResourceAllocation> freeL = lmd.stream()
- .filter(x -> x instanceof LambdaResourceAllocation)
+ Set<ResourceAllocation> freeL = resources.stream()
+ .filter(cls::isInstance)
.collect(Collectors.toSet());
// enumerate current allocations, removing resources
- List<ResourceAllocation> allocatedLambda = allocations.stream()
+ List<ResourceAllocation> allocated = allocations.stream()
.flatMap(x -> x.getResourceAllocation(link).stream())
- .filter(x -> x instanceof LambdaResourceAllocation)
+ .filter(cls::isInstance)
.collect(Collectors.toList());
- freeL.removeAll(allocatedLambda);
+ freeL.removeAll(allocated);
return freeL;
}
- private Set<ResourceAllocation> getFreeLabelResources(Link link, Set<ResourceAllocation> mpls,
- List<LinkResourceAllocations> allocations) {
- if (mpls == null || mpls.isEmpty()) {
- // nothing left
- return Collections.emptySet();
- }
- Set<ResourceAllocation> freeLabel = mpls.stream()
- .filter(x -> x instanceof MplsLabelResourceAllocation)
- .collect(Collectors.toSet());
-
- // enumerate current allocations, removing resources
- List<ResourceAllocation> allocatedLabel = allocations.stream()
- .flatMap(x -> x.getResourceAllocation(link).stream())
- .filter(x -> x instanceof MplsLabelResourceAllocation)
- .collect(Collectors.toList());
- freeLabel.removeAll(allocatedLabel);
- return freeLabel;
- }
-
@Override
public void allocateResources(LinkResourceAllocations allocations) {
checkNotNull(allocations);