X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=policy-agent%2Fsrc%2Fmain%2Fjava%2Forg%2Foransc%2Fpolicyagent%2Frepository%2FPolicies.java;h=62dd140792b5c4cdb7d9b2b5be05b419e72dd253;hb=dede1d28c8f37bb21fae806f00f8315b923670c1;hp=58c91b35009082031c2a0a28cb7728b70720bd44;hpb=de026fb34e3dc3200acdb022782fe68615176ead;p=nonrtric.git diff --git a/policy-agent/src/main/java/org/oransc/policyagent/repository/Policies.java b/policy-agent/src/main/java/org/oransc/policyagent/repository/Policies.java index 58c91b35..62dd1407 100644 --- a/policy-agent/src/main/java/org/oransc/policyagent/repository/Policies.java +++ b/policy-agent/src/main/java/org/oransc/policyagent/repository/Policies.java @@ -21,10 +21,10 @@ package org.oransc.policyagent.repository; import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.Map; import java.util.Set; -import java.util.Vector; import org.oransc.policyagent.exceptions.ServiceException; @@ -34,9 +34,6 @@ public class Policies { private Map> policiesService = new HashMap<>(); private Map> policiesType = new HashMap<>(); - public Policies() { - } - public synchronized void put(Policy policy) { policiesId.put(policy.id(), policy); multiMapPut(policiesRic, policy.ric().name(), policy); @@ -45,12 +42,7 @@ public class Policies { } private void multiMapPut(Map> multiMap, String key, Policy value) { - Map map = multiMap.get(key); - if (map == null) { - map = new HashMap<>(); - multiMap.put(key, map); - } - map.put(value.id(), value); + multiMap.computeIfAbsent(key, k -> new HashMap<>()).put(value.id(), value); } private void multiMapRemove(Map> multiMap, String key, Policy value) { @@ -66,9 +58,9 @@ public class Policies { private Collection multiMapGet(Map> multiMap, String key) { Map map = multiMap.get(key); if (map == null) { - return new Vector(); + return Collections.emptyList(); } - return map.values(); + return Collections.unmodifiableCollection(map.values()); } public synchronized boolean containsPolicy(String id) { @@ -88,7 +80,7 @@ public class Policies { } public synchronized Collection getAll() { - return policiesId.values(); + return Collections.unmodifiableCollection(policiesId.values()); } public synchronized Collection getForService(String service) { @@ -118,6 +110,13 @@ public class Policies { multiMapRemove(policiesType, policy.type().name(), policy); } + public synchronized void removePoliciesForRic(String ricName) { + Collection policiesForRic = getForRic(ricName); + for (Policy policy : policiesForRic) { + remove(policy); + } + } + public synchronized int size() { return policiesId.size(); }