From 9f530ffa7dd60f76d02a3a13ee156d7b2d35e86e Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Fri, 5 Dec 2014 11:36:04 +0100 Subject: [PATCH] BUG-2459: use ImmutableSet instead of an unmodifieable HashSet This makes the lookups much more efficient. Change-Id: I9c9a210b1eef1b5a2850013259191fde9a9c439b Signed-off-by: Robert Varga --- .../osgi/NetconfOperationServiceSnapshotImpl.java | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/osgi/NetconfOperationServiceSnapshotImpl.java b/opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/osgi/NetconfOperationServiceSnapshotImpl.java index 1a35e4d6ba..26abdd974d 100644 --- a/opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/osgi/NetconfOperationServiceSnapshotImpl.java +++ b/opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/osgi/NetconfOperationServiceSnapshotImpl.java @@ -8,8 +8,8 @@ package org.opendaylight.controller.netconf.impl.osgi; -import java.util.Collections; -import java.util.HashSet; +import com.google.common.collect.ImmutableSet; +import com.google.common.collect.ImmutableSet.Builder; import java.util.Set; import org.opendaylight.controller.netconf.mapping.api.NetconfOperationService; import org.opendaylight.controller.netconf.mapping.api.NetconfOperationServiceFactory; @@ -21,17 +21,15 @@ public class NetconfOperationServiceSnapshotImpl implements NetconfOperationServ private final Set services; private final String netconfSessionIdForReporting; - public NetconfOperationServiceSnapshotImpl(Set factories, String sessionIdForReporting) { - Set services = new HashSet<>(); + public NetconfOperationServiceSnapshotImpl(final Set factories, final String sessionIdForReporting) { + final Builder b = ImmutableSet.builder(); netconfSessionIdForReporting = sessionIdForReporting; for (NetconfOperationServiceFactory factory : factories) { - services.add(factory.createService(netconfSessionIdForReporting)); + b.add(factory.createService(netconfSessionIdForReporting)); } - this.services = Collections.unmodifiableSet(services); + this.services = b.build(); } - - @Override public String getNetconfSessionIdForReporting() { return netconfSessionIdForReporting; -- 2.36.6