commit | 9cc4a241cf33fde2fad75b5b0658696ff993c6a2 | [log] [tgz] |
---|---|---|
author | Sho SHIMIZU <sshimizu@us.fujitsu.com> | Thu May 26 12:55:35 2016 -0700 |
committer | Gerrit Code Review <gerrit@onlab.us> | Tue Jun 14 21:17:09 2016 +0000 |
tree | 5b7f19bf26627576ba64568cf8ef04d6f9058f83 | |
parent | b5c236e2eb464a178c08462d7d9c971bb42a9795 [diff] [blame] |
Make resource retrieval more efficient when specifing resource type This resolves ONOS-4666 Change-Id: I9d09b60531ca48b36fc20f43498cda62f1badb8b
diff --git a/core/store/dist/src/main/java/org/onosproject/store/resource/impl/GenericDiscreteResources.java b/core/store/dist/src/main/java/org/onosproject/store/resource/impl/GenericDiscreteResources.java index 79eb13d..1aa8bb9 100644 --- a/core/store/dist/src/main/java/org/onosproject/store/resource/impl/GenericDiscreteResources.java +++ b/core/store/dist/src/main/java/org/onosproject/store/resource/impl/GenericDiscreteResources.java
@@ -25,6 +25,7 @@ import java.util.Objects; import java.util.Optional; import java.util.Set; +import java.util.stream.Collectors; final class GenericDiscreteResources implements DiscreteResources { private final Set<DiscreteResource> values; @@ -87,6 +88,13 @@ } @Override + public <T> Set<DiscreteResource> valuesOf(Class<T> cls) { + return values.stream() + .filter(x -> x.isTypeOf(cls)) + .collect(Collectors.toCollection(LinkedHashSet::new)); + } + + @Override public int hashCode() { return Objects.hash(values); }