Refactor: Rename ResourcePath to Resource for a better name
Also the followings
- Rename variables from path to resource
- Update Javadoc
Change-Id: I07da7e7d13882f2134a3687c66ed91a9de5b0849
diff --git a/core/store/dist/src/main/java/org/onosproject/store/newresource/impl/ConsistentResourceStore.java b/core/store/dist/src/main/java/org/onosproject/store/newresource/impl/ConsistentResourceStore.java
index 7339b16..6b1443d 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/newresource/impl/ConsistentResourceStore.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/newresource/impl/ConsistentResourceStore.java
@@ -29,7 +29,7 @@
import org.onosproject.net.newresource.ResourceConsumer;
import org.onosproject.net.newresource.ResourceEvent;
import org.onosproject.net.newresource.ResourceId;
-import org.onosproject.net.newresource.ResourcePath;
+import org.onosproject.net.newresource.Resource;
import org.onosproject.net.newresource.ResourceStore;
import org.onosproject.net.newresource.ResourceStoreDelegate;
import org.onosproject.store.AbstractStore;
@@ -84,13 +84,13 @@
@Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
protected StorageService service;
- private ConsistentMap<ResourcePath.Discrete, ResourceConsumer> discreteConsumers;
+ private ConsistentMap<Resource.Discrete, ResourceConsumer> discreteConsumers;
private ConsistentMap<ResourceId, ContinuousResourceAllocation> continuousConsumers;
- private ConsistentMap<ResourcePath.Discrete, Set<ResourcePath>> childMap;
+ private ConsistentMap<Resource.Discrete, Set<Resource>> childMap;
@Activate
public void activate() {
- discreteConsumers = service.<ResourcePath.Discrete, ResourceConsumer>consistentMapBuilder()
+ discreteConsumers = service.<Resource.Discrete, ResourceConsumer>consistentMapBuilder()
.withName(DISCRETE_CONSUMER_MAP)
.withSerializer(SERIALIZER)
.build();
@@ -98,29 +98,29 @@
.withName(CONTINUOUS_CONSUMER_MAP)
.withSerializer(SERIALIZER)
.build();
- childMap = service.<ResourcePath.Discrete, Set<ResourcePath>>consistentMapBuilder()
+ childMap = service.<Resource.Discrete, Set<Resource>>consistentMapBuilder()
.withName(CHILD_MAP)
.withSerializer(SERIALIZER)
.build();
- Tools.retryable(() -> childMap.put(ResourcePath.ROOT, new LinkedHashSet<>()),
+ Tools.retryable(() -> childMap.put(Resource.ROOT, new LinkedHashSet<>()),
ConsistentMapException.class, MAX_RETRIES, RETRY_DELAY);
log.info("Started");
}
@Override
- public List<ResourceConsumer> getConsumers(ResourcePath resource) {
+ public List<ResourceConsumer> getConsumers(Resource resource) {
checkNotNull(resource);
- checkArgument(resource instanceof ResourcePath.Discrete || resource instanceof ResourcePath.Continuous);
+ checkArgument(resource instanceof Resource.Discrete || resource instanceof Resource.Continuous);
- if (resource instanceof ResourcePath.Discrete) {
- return getConsumer((ResourcePath.Discrete) resource);
+ if (resource instanceof Resource.Discrete) {
+ return getConsumer((Resource.Discrete) resource);
} else {
- return getConsumer((ResourcePath.Continuous) resource);
+ return getConsumer((Resource.Continuous) resource);
}
}
- private List<ResourceConsumer> getConsumer(ResourcePath.Discrete resource) {
+ private List<ResourceConsumer> getConsumer(Resource.Discrete resource) {
Versioned<ResourceConsumer> consumer = discreteConsumers.get(resource);
if (consumer == null) {
return ImmutableList.of();
@@ -129,7 +129,7 @@
return ImmutableList.of(consumer.value());
}
- private List<ResourceConsumer> getConsumer(ResourcePath.Continuous resource) {
+ private List<ResourceConsumer> getConsumer(Resource.Continuous resource) {
Versioned<ContinuousResourceAllocation> allocations = continuousConsumers.get(resource.id());
if (allocations == null) {
return ImmutableList.of();
@@ -142,21 +142,21 @@
}
@Override
- public boolean register(List<ResourcePath> resources) {
+ public boolean register(List<Resource> resources) {
checkNotNull(resources);
TransactionContext tx = service.transactionContextBuilder().build();
tx.begin();
- TransactionalMap<ResourcePath.Discrete, Set<ResourcePath>> childTxMap =
+ TransactionalMap<Resource.Discrete, Set<Resource>> childTxMap =
tx.getTransactionalMap(CHILD_MAP, SERIALIZER);
- Map<ResourcePath.Discrete, List<ResourcePath>> resourceMap = resources.stream()
+ Map<Resource.Discrete, List<Resource>> resourceMap = resources.stream()
.filter(x -> x.parent().isPresent())
.collect(Collectors.groupingBy(x -> x.parent().get()));
- for (Map.Entry<ResourcePath.Discrete, List<ResourcePath>> entry: resourceMap.entrySet()) {
- Optional<ResourcePath.Discrete> child = lookup(childTxMap, entry.getKey());
+ for (Map.Entry<Resource.Discrete, List<Resource>> entry: resourceMap.entrySet()) {
+ Optional<Resource.Discrete> child = lookup(childTxMap, entry.getKey());
if (!child.isPresent()) {
return abortTransaction(tx);
}
@@ -178,31 +178,31 @@
}
@Override
- public boolean unregister(List<ResourcePath> resources) {
+ public boolean unregister(List<Resource> resources) {
checkNotNull(resources);
TransactionContext tx = service.transactionContextBuilder().build();
tx.begin();
- TransactionalMap<ResourcePath.Discrete, Set<ResourcePath>> childTxMap =
+ TransactionalMap<Resource.Discrete, Set<Resource>> childTxMap =
tx.getTransactionalMap(CHILD_MAP, SERIALIZER);
- TransactionalMap<ResourcePath.Discrete, ResourceConsumer> discreteConsumerTxMap =
+ TransactionalMap<Resource.Discrete, ResourceConsumer> discreteConsumerTxMap =
tx.getTransactionalMap(DISCRETE_CONSUMER_MAP, SERIALIZER);
TransactionalMap<ResourceId, ContinuousResourceAllocation> continuousConsumerTxMap =
tx.getTransactionalMap(CONTINUOUS_CONSUMER_MAP, SERIALIZER);
// Extract Discrete instances from resources
- Map<ResourcePath.Discrete, List<ResourcePath>> resourceMap = resources.stream()
+ Map<Resource.Discrete, List<Resource>> resourceMap = resources.stream()
.filter(x -> x.parent().isPresent())
.collect(Collectors.groupingBy(x -> x.parent().get()));
// even if one of the resources is allocated to a consumer,
// all unregistrations are regarded as failure
- for (Map.Entry<ResourcePath.Discrete, List<ResourcePath>> entry: resourceMap.entrySet()) {
+ for (Map.Entry<Resource.Discrete, List<Resource>> entry: resourceMap.entrySet()) {
boolean allocated = entry.getValue().stream().anyMatch(x -> {
- if (x instanceof ResourcePath.Discrete) {
- return discreteConsumerTxMap.get((ResourcePath.Discrete) x) != null;
- } else if (x instanceof ResourcePath.Continuous) {
+ if (x instanceof Resource.Discrete) {
+ return discreteConsumerTxMap.get((Resource.Discrete) x) != null;
+ } else if (x instanceof Resource.Continuous) {
ContinuousResourceAllocation allocations = continuousConsumerTxMap.get(x.id());
return allocations != null && !allocations.allocations().isEmpty();
} else {
@@ -230,38 +230,38 @@
}
@Override
- public boolean allocate(List<ResourcePath> resources, ResourceConsumer consumer) {
+ public boolean allocate(List<Resource> resources, ResourceConsumer consumer) {
checkNotNull(resources);
checkNotNull(consumer);
TransactionContext tx = service.transactionContextBuilder().build();
tx.begin();
- TransactionalMap<ResourcePath.Discrete, Set<ResourcePath>> childTxMap =
+ TransactionalMap<Resource.Discrete, Set<Resource>> childTxMap =
tx.getTransactionalMap(CHILD_MAP, SERIALIZER);
- TransactionalMap<ResourcePath.Discrete, ResourceConsumer> discreteConsumerTxMap =
+ TransactionalMap<Resource.Discrete, ResourceConsumer> discreteConsumerTxMap =
tx.getTransactionalMap(DISCRETE_CONSUMER_MAP, SERIALIZER);
TransactionalMap<ResourceId, ContinuousResourceAllocation> continuousConsumerTxMap =
tx.getTransactionalMap(CONTINUOUS_CONSUMER_MAP, SERIALIZER);
- for (ResourcePath resource: resources) {
- if (resource instanceof ResourcePath.Discrete) {
+ for (Resource resource: resources) {
+ if (resource instanceof Resource.Discrete) {
if (!lookup(childTxMap, resource).isPresent()) {
return abortTransaction(tx);
}
- ResourceConsumer oldValue = discreteConsumerTxMap.put((ResourcePath.Discrete) resource, consumer);
+ ResourceConsumer oldValue = discreteConsumerTxMap.put((Resource.Discrete) resource, consumer);
if (oldValue != null) {
return abortTransaction(tx);
}
- } else if (resource instanceof ResourcePath.Continuous) {
- Optional<ResourcePath.Continuous> continuous = lookup(childTxMap, (ResourcePath.Continuous) resource);
+ } else if (resource instanceof Resource.Continuous) {
+ Optional<Resource.Continuous> continuous = lookup(childTxMap, (Resource.Continuous) resource);
if (!continuous.isPresent()) {
return abortTransaction(tx);
}
ContinuousResourceAllocation allocations = continuousConsumerTxMap.get(continuous.get().id());
- if (!hasEnoughResource(continuous.get(), (ResourcePath.Continuous) resource, allocations)) {
+ if (!hasEnoughResource(continuous.get(), (Resource.Continuous) resource, allocations)) {
return abortTransaction(tx);
}
@@ -277,7 +277,7 @@
}
@Override
- public boolean release(List<ResourcePath> resources, List<ResourceConsumer> consumers) {
+ public boolean release(List<Resource> resources, List<ResourceConsumer> consumers) {
checkNotNull(resources);
checkNotNull(consumers);
checkArgument(resources.size() == consumers.size());
@@ -285,29 +285,29 @@
TransactionContext tx = service.transactionContextBuilder().build();
tx.begin();
- TransactionalMap<ResourcePath.Discrete, ResourceConsumer> discreteConsumerTxMap =
+ TransactionalMap<Resource.Discrete, ResourceConsumer> discreteConsumerTxMap =
tx.getTransactionalMap(DISCRETE_CONSUMER_MAP, SERIALIZER);
TransactionalMap<ResourceId, ContinuousResourceAllocation> continuousConsumerTxMap =
tx.getTransactionalMap(CONTINUOUS_CONSUMER_MAP, SERIALIZER);
- Iterator<ResourcePath> resourceIte = resources.iterator();
+ Iterator<Resource> resourceIte = resources.iterator();
Iterator<ResourceConsumer> consumerIte = consumers.iterator();
while (resourceIte.hasNext() && consumerIte.hasNext()) {
- ResourcePath resource = resourceIte.next();
+ Resource resource = resourceIte.next();
ResourceConsumer consumer = consumerIte.next();
- if (resource instanceof ResourcePath.Discrete) {
+ if (resource instanceof Resource.Discrete) {
// if this single release fails (because the resource is allocated to another consumer,
// the whole release fails
- if (!discreteConsumerTxMap.remove((ResourcePath.Discrete) resource, consumer)) {
+ if (!discreteConsumerTxMap.remove((Resource.Discrete) resource, consumer)) {
return abortTransaction(tx);
}
- } else if (resource instanceof ResourcePath.Continuous) {
- ResourcePath.Continuous continuous = (ResourcePath.Continuous) resource;
+ } else if (resource instanceof Resource.Continuous) {
+ Resource.Continuous continuous = (Resource.Continuous) resource;
ContinuousResourceAllocation allocation = continuousConsumerTxMap.get(continuous.id());
ImmutableList<ResourceAllocation> newAllocations = allocation.allocations().stream()
.filter(x -> !(x.consumer().equals(consumer) &&
- ((ResourcePath.Continuous) x.resource()).value() == continuous.value()))
+ ((Resource.Continuous) x.resource()).value() == continuous.value()))
.collect(GuavaCollectors.toImmutableList());
if (!continuousConsumerTxMap.replace(continuous.id(), allocation,
@@ -321,18 +321,18 @@
}
@Override
- public boolean isAvailable(ResourcePath resource) {
+ public boolean isAvailable(Resource resource) {
checkNotNull(resource);
- checkArgument(resource instanceof ResourcePath.Discrete || resource instanceof ResourcePath.Continuous);
+ checkArgument(resource instanceof Resource.Discrete || resource instanceof Resource.Continuous);
- if (resource instanceof ResourcePath.Discrete) {
- return getConsumer((ResourcePath.Discrete) resource).isEmpty();
+ if (resource instanceof Resource.Discrete) {
+ return getConsumer((Resource.Discrete) resource).isEmpty();
} else {
- return isAvailable((ResourcePath.Continuous) resource);
+ return isAvailable((Resource.Continuous) resource);
}
}
- private boolean isAvailable(ResourcePath.Continuous resource) {
+ private boolean isAvailable(Resource.Continuous resource) {
Versioned<ContinuousResourceAllocation> allocation = continuousConsumers.get(resource.id());
if (allocation == null) {
return false;
@@ -342,16 +342,16 @@
}
@Override
- public Collection<ResourcePath> getResources(ResourceConsumer consumer) {
+ public Collection<Resource> getResources(ResourceConsumer consumer) {
checkNotNull(consumer);
// NOTE: getting all entries may become performance bottleneck
// TODO: revisit for better backend data structure
- Stream<ResourcePath.Discrete> discreteStream = discreteConsumers.entrySet().stream()
+ Stream<Resource.Discrete> discreteStream = discreteConsumers.entrySet().stream()
.filter(x -> x.getValue().value().equals(consumer))
.map(Map.Entry::getKey);
- Stream<ResourcePath.Continuous> continuousStream = continuousConsumers.values().stream()
+ Stream<Resource.Continuous> continuousStream = continuousConsumers.values().stream()
.flatMap(x -> x.value().allocations().stream()
.map(y -> Maps.immutableEntry(x.value().original(), y)))
.filter(x -> x.getValue().consumer().equals(consumer))
@@ -361,11 +361,11 @@
}
@Override
- public Collection<ResourcePath> getChildResources(ResourcePath parent) {
+ public Collection<Resource> getChildResources(Resource parent) {
checkNotNull(parent);
- checkArgument(parent instanceof ResourcePath.Discrete);
+ checkArgument(parent instanceof Resource.Discrete);
- Versioned<Set<ResourcePath>> children = childMap.get((ResourcePath.Discrete) parent);
+ Versioned<Set<Resource>> children = childMap.get((Resource.Discrete) parent);
if (children == null) {
return Collections.emptyList();
}
@@ -374,26 +374,26 @@
}
@Override
- public <T> Collection<ResourcePath> getAllocatedResources(ResourcePath parent, Class<T> cls) {
+ public <T> Collection<Resource> getAllocatedResources(Resource parent, Class<T> cls) {
checkNotNull(parent);
checkNotNull(cls);
- checkArgument(parent instanceof ResourcePath.Discrete);
+ checkArgument(parent instanceof Resource.Discrete);
- Versioned<Set<ResourcePath>> children = childMap.get((ResourcePath.Discrete) parent);
+ Versioned<Set<Resource>> children = childMap.get((Resource.Discrete) parent);
if (children == null) {
return Collections.emptyList();
}
- Stream<ResourcePath.Discrete> discrete = children.value().stream()
+ Stream<Resource.Discrete> discrete = children.value().stream()
.filter(x -> x.last().getClass().equals(cls))
- .filter(x -> x instanceof ResourcePath.Discrete)
- .map(x -> (ResourcePath.Discrete) x)
+ .filter(x -> x instanceof Resource.Discrete)
+ .map(x -> (Resource.Discrete) x)
.filter(discreteConsumers::containsKey);
- Stream<ResourcePath.Continuous> continuous = children.value().stream()
+ Stream<Resource.Continuous> continuous = children.value().stream()
.filter(x -> x.last().getClass().equals(cls))
- .filter(x -> x instanceof ResourcePath.Continuous)
- .map(x -> (ResourcePath.Continuous) x)
+ .filter(x -> x instanceof Resource.Continuous)
+ .map(x -> (Resource.Continuous) x)
.filter(x -> continuousConsumers.containsKey(x.id()))
.filter(x -> continuousConsumers.get(x.id()) != null)
.filter(x -> !continuousConsumers.get(x.id()).value().allocations().isEmpty());
@@ -414,7 +414,7 @@
// Appends the specified ResourceAllocation to the existing values stored in the map
private boolean appendValue(TransactionalMap<ResourceId, ContinuousResourceAllocation> map,
- ResourcePath.Continuous original, ResourceAllocation value) {
+ Resource.Continuous original, ResourceAllocation value) {
ContinuousResourceAllocation oldValue = map.putIfAbsent(original.id(),
new ContinuousResourceAllocation(original, ImmutableList.of(value)));
if (oldValue == null) {
@@ -496,14 +496,14 @@
* @return the resource which is regarded as the same as the specified resource
*/
// Naive implementation, which traverses all elements in the list
- private <T extends ResourcePath> Optional<T> lookup(
- TransactionalMap<ResourcePath.Discrete, Set<ResourcePath>> map, T resource) {
+ private <T extends Resource> Optional<T> lookup(
+ TransactionalMap<Resource.Discrete, Set<Resource>> map, T resource) {
// if it is root, always returns itself
if (!resource.parent().isPresent()) {
return Optional.of(resource);
}
- Set<ResourcePath> values = map.get(resource.parent().get());
+ Set<Resource> values = map.get(resource.parent().get());
if (values == null) {
return Optional.empty();
}
@@ -525,17 +525,17 @@
* @param allocation current allocation of the resource
* @return true if there is enough resource volume. Otherwise, false.
*/
- private boolean hasEnoughResource(ResourcePath.Continuous original,
- ResourcePath.Continuous request,
+ private boolean hasEnoughResource(Resource.Continuous original,
+ Resource.Continuous request,
ContinuousResourceAllocation allocation) {
if (allocation == null) {
return request.value() <= original.value();
}
double allocated = allocation.allocations().stream()
- .filter(x -> x.resource() instanceof ResourcePath.Continuous)
- .map(x -> (ResourcePath.Continuous) x.resource())
- .mapToDouble(ResourcePath.Continuous::value)
+ .filter(x -> x.resource() instanceof Resource.Continuous)
+ .map(x -> (Resource.Continuous) x.resource())
+ .mapToDouble(Resource.Continuous::value)
.sum();
double left = original.value() - allocated;
return request.value() <= left;
@@ -543,16 +543,16 @@
// internal use only
private static final class ContinuousResourceAllocation {
- private final ResourcePath.Continuous original;
+ private final Resource.Continuous original;
private final ImmutableList<ResourceAllocation> allocations;
- private ContinuousResourceAllocation(ResourcePath.Continuous original,
+ private ContinuousResourceAllocation(Resource.Continuous original,
ImmutableList<ResourceAllocation> allocations) {
this.original = original;
this.allocations = allocations;
}
- private ResourcePath.Continuous original() {
+ private Resource.Continuous original() {
return original;
}