Compaction of discrete resources with range based representation
This resolves ONOS-4281
Change-Id: I0739ba94cc0b3ce617e2db44307fef396dcfb942
(cherry picked from commit 34e2c1c223ec62c85c2613c0d899a0cc06b63f33)
diff --git a/core/store/dist/src/main/java/org/onosproject/store/resource/impl/NonEncodableDiscreteResources.java b/core/store/dist/src/main/java/org/onosproject/store/resource/impl/NonEncodableDiscreteResources.java
index 7b991b4..333a40b 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/resource/impl/NonEncodableDiscreteResources.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/resource/impl/NonEncodableDiscreteResources.java
@@ -30,26 +30,23 @@
final class NonEncodableDiscreteResources implements DiscreteResources {
private final Set<DiscreteResource> values;
- static NonEncodableDiscreteResources empty() {
- return new NonEncodableDiscreteResources();
- }
+ static DiscreteResources of(Set<DiscreteResource> resources) {
+ if (resources.isEmpty()) {
+ return DiscreteResources.empty();
+ }
- static NonEncodableDiscreteResources of(List<DiscreteResource> resources) {
return new NonEncodableDiscreteResources(resources);
}
- private NonEncodableDiscreteResources() {
- this.values = new LinkedHashSet<>();
- }
-
- private NonEncodableDiscreteResources(List<DiscreteResource> values) {
- this.values = new LinkedHashSet<>(values);
- }
-
private NonEncodableDiscreteResources(Set<DiscreteResource> values) {
this.values = values;
}
+ // for serializer
+ private NonEncodableDiscreteResources() {
+ this.values = null;
+ }
+
@Override
public Optional<DiscreteResource> lookup(DiscreteResourceId id) {
DiscreteResource resource = Resources.discrete(id).resource();