Change hasEnoughResource() to instance method from static method
Change-Id: Ib6de1bfc2b7e65677c3685ac3c2f51391204d9cf
Showing
3 changed files
with
10 additions
and
13 deletions
... | @@ -39,7 +39,6 @@ import java.util.stream.Stream; | ... | @@ -39,7 +39,6 @@ import java.util.stream.Stream; |
39 | import static org.onosproject.store.resource.impl.ConsistentResourceStore.MAX_RETRIES; | 39 | import static org.onosproject.store.resource.impl.ConsistentResourceStore.MAX_RETRIES; |
40 | import static org.onosproject.store.resource.impl.ConsistentResourceStore.RETRY_DELAY; | 40 | import static org.onosproject.store.resource.impl.ConsistentResourceStore.RETRY_DELAY; |
41 | import static org.onosproject.store.resource.impl.ConsistentResourceStore.SERIALIZER; | 41 | import static org.onosproject.store.resource.impl.ConsistentResourceStore.SERIALIZER; |
42 | -import static org.onosproject.store.resource.impl.ContinuousResourceAllocation.hasEnoughResource; | ||
43 | 42 | ||
44 | class ConsistentContinuousResourceSubStore { | 43 | class ConsistentContinuousResourceSubStore { |
45 | private ConsistentMap<ContinuousResourceId, ContinuousResourceAllocation> consumers; | 44 | private ConsistentMap<ContinuousResourceId, ContinuousResourceAllocation> consumers; |
... | @@ -108,7 +107,7 @@ class ConsistentContinuousResourceSubStore { | ... | @@ -108,7 +107,7 @@ class ConsistentContinuousResourceSubStore { |
108 | return true; | 107 | return true; |
109 | } | 108 | } |
110 | 109 | ||
111 | - return hasEnoughResource(allocation.value().original(), resource, allocation.value()); | 110 | + return allocation.value().hasEnoughResource(allocation.value().original(), resource); |
112 | } | 111 | } |
113 | 112 | ||
114 | <T> Stream<ContinuousResource> getAllocatedResources(DiscreteResourceId parent, Class<T> cls) { | 113 | <T> Stream<ContinuousResource> getAllocatedResources(DiscreteResourceId parent, Class<T> cls) { | ... | ... |
... | @@ -30,6 +30,10 @@ final class ContinuousResourceAllocation { | ... | @@ -30,6 +30,10 @@ final class ContinuousResourceAllocation { |
30 | private final ContinuousResource original; | 30 | private final ContinuousResource original; |
31 | private final ImmutableList<ResourceAllocation> allocations; | 31 | private final ImmutableList<ResourceAllocation> allocations; |
32 | 32 | ||
33 | + static ContinuousResourceAllocation empty(ContinuousResource original) { | ||
34 | + return new ContinuousResourceAllocation(original, ImmutableList.of()); | ||
35 | + } | ||
36 | + | ||
33 | ContinuousResourceAllocation(ContinuousResource original, | 37 | ContinuousResourceAllocation(ContinuousResource original, |
34 | ImmutableList<ResourceAllocation> allocations) { | 38 | ImmutableList<ResourceAllocation> allocations) { |
35 | this.original = original; | 39 | this.original = original; |
... | @@ -42,18 +46,11 @@ final class ContinuousResourceAllocation { | ... | @@ -42,18 +46,11 @@ final class ContinuousResourceAllocation { |
42 | * | 46 | * |
43 | * @param original original resource | 47 | * @param original original resource |
44 | * @param request requested resource | 48 | * @param request requested resource |
45 | - * @param allocation current allocation of the resource | ||
46 | * @return true if there is enough resource volume. Otherwise, false. | 49 | * @return true if there is enough resource volume. Otherwise, false. |
47 | */ | 50 | */ |
48 | // computational complexity: O(n) where n is the number of allocations | 51 | // computational complexity: O(n) where n is the number of allocations |
49 | - static boolean hasEnoughResource(ContinuousResource original, | 52 | + boolean hasEnoughResource(ContinuousResource original, ContinuousResource request) { |
50 | - ContinuousResource request, | 53 | + double allocated = allocations.stream() |
51 | - ContinuousResourceAllocation allocation) { | ||
52 | - if (allocation == null) { | ||
53 | - return request.value() <= original.value(); | ||
54 | - } | ||
55 | - | ||
56 | - double allocated = allocation.allocations().stream() | ||
57 | .filter(x -> x.resource() instanceof ContinuousResource) | 54 | .filter(x -> x.resource() instanceof ContinuousResource) |
58 | .map(x -> (ContinuousResource) x.resource()) | 55 | .map(x -> (ContinuousResource) x.resource()) |
59 | .mapToDouble(ContinuousResource::value) | 56 | .mapToDouble(ContinuousResource::value) | ... | ... |
... | @@ -35,7 +35,6 @@ import java.util.stream.Collectors; | ... | @@ -35,7 +35,6 @@ import java.util.stream.Collectors; |
35 | 35 | ||
36 | import static com.google.common.base.Preconditions.checkArgument; | 36 | import static com.google.common.base.Preconditions.checkArgument; |
37 | import static org.onosproject.store.resource.impl.ConsistentResourceStore.SERIALIZER; | 37 | import static org.onosproject.store.resource.impl.ConsistentResourceStore.SERIALIZER; |
38 | -import static org.onosproject.store.resource.impl.ContinuousResourceAllocation.hasEnoughResource; | ||
39 | 38 | ||
40 | class TransactionalContinuousResourceSubStore { | 39 | class TransactionalContinuousResourceSubStore { |
41 | private final Logger log = LoggerFactory.getLogger(getClass()); | 40 | private final Logger log = LoggerFactory.getLogger(getClass()); |
... | @@ -140,7 +139,9 @@ class TransactionalContinuousResourceSubStore { | ... | @@ -140,7 +139,9 @@ class TransactionalContinuousResourceSubStore { |
140 | // Down cast: this must be safe as ContinuousResource is associated with ContinuousResourceId | 139 | // Down cast: this must be safe as ContinuousResource is associated with ContinuousResourceId |
141 | ContinuousResource original = lookedUp.get(); | 140 | ContinuousResource original = lookedUp.get(); |
142 | ContinuousResourceAllocation allocations = consumers.get(request.id()); | 141 | ContinuousResourceAllocation allocations = consumers.get(request.id()); |
143 | - if (!hasEnoughResource(original, request, allocations)) { | 142 | + if (!Optional.ofNullable(allocations) |
143 | + .orElse(ContinuousResourceAllocation.empty(original)) | ||
144 | + .hasEnoughResource(original, request)) { | ||
144 | return false; | 145 | return false; |
145 | } | 146 | } |
146 | 147 | ... | ... |
-
Please register or login to post a comment