Modify DiscreteResourceCodec interface
This is for ONOS-4281
Change-Id: Idaa4e3666946ebf1a76abfeb54c626dfb50082c4
(cherry picked from commit 81b75a9e00061d655b2cfbdb8c734753b2bb8c09)
diff --git a/core/api/src/main/java/org/onosproject/net/resource/DiscreteResourceSetSerializer.java b/core/api/src/main/java/org/onosproject/net/resource/DiscreteResourceSetSerializer.java
index ee81211..2d6446a 100644
--- a/core/api/src/main/java/org/onosproject/net/resource/DiscreteResourceSetSerializer.java
+++ b/core/api/src/main/java/org/onosproject/net/resource/DiscreteResourceSetSerializer.java
@@ -24,6 +24,7 @@
import com.google.common.collect.Range;
import com.google.common.collect.TreeRangeSet;
import org.onlab.util.ClosedOpenRange;
+import org.onlab.util.Tools;
import java.util.ArrayList;
import java.util.List;
@@ -45,6 +46,8 @@
public void write(Kryo kryo, Output output, DiscreteResourceSet object) {
TreeRangeSet<Integer> rangeSet = TreeRangeSet.create();
object.values().stream()
+ .map(x -> x.valueAs(Object.class))
+ .flatMap(Tools::stream)
.map(x -> object.codec().encode(x))
.map(Range::singleton)
.map(x -> x.canonical(DiscreteDomain.integers()))
@@ -70,7 +73,8 @@
Set<DiscreteResource> resources = ranges.stream()
.flatMapToInt(x -> IntStream.range(x.lowerBound(), x.upperBound()))
- .mapToObj(x -> codec.decode(parent, x))
+ .mapToObj(x -> codec.decode(x))
+ .map(x -> Resources.discrete(parent, x).resource())
.collect(Collectors.toSet());
return DiscreteResourceSet.of(resources, codec);