X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=policy-agent%2Fsrc%2Fmain%2Fjava%2Forg%2Foransc%2Fpolicyagent%2Frepository%2FRics.java;h=7faa3766aa2cde16db703a35d83003d16871206b;hb=fd5e1f38fac7e52c0a975051c9e09a8b2c257bee;hp=9ea6db640e6e53d58119b5704c9b578f21d9e959;hpb=8831a02bce715562f3cacce1691bf4d9d3af206b;p=nonrtric.git diff --git a/policy-agent/src/main/java/org/oransc/policyagent/repository/Rics.java b/policy-agent/src/main/java/org/oransc/policyagent/repository/Rics.java index 9ea6db64..7faa3766 100644 --- a/policy-agent/src/main/java/org/oransc/policyagent/repository/Rics.java +++ b/policy-agent/src/main/java/org/oransc/policyagent/repository/Rics.java @@ -23,30 +23,55 @@ package org.oransc.policyagent.repository; import java.util.Collection; import java.util.HashMap; import java.util.Map; +import java.util.Optional; +import java.util.Vector; + +import org.oransc.policyagent.exceptions.ServiceException; /** * Dynamic representation of all Rics in the system. */ public class Rics { - Map rics = new HashMap<>(); + Map registeredRics = new HashMap<>(); + + public synchronized void put(Ric ric) { + registeredRics.put(ric.name(), ric); + } + + public synchronized Collection getRics() { + return new Vector<>(registeredRics.values()); + } + + public synchronized Ric getRic(String name) throws ServiceException { + Ric ric = registeredRics.get(name); + if (ric == null) { + throw new ServiceException("Could not find ric: " + name); + } + return ric; + } - public void put(Ric ric) { - rics.put(ric.name(), ric); + public synchronized Ric get(String name) { + return registeredRics.get(name); } - public Collection getRics() { - return rics.values(); + public synchronized void remove(String name) { + registeredRics.remove(name); } - public Ric getRic(String name) { - return rics.get(name); + public synchronized int size() { + return registeredRics.size(); } - public int size() { - return rics.size(); + public synchronized void clear() { + this.registeredRics.clear(); } - public void clear() { - this.rics.clear(); + public synchronized Optional lookupRicForManagedElement(String managedElementId) { + for (Ric ric : this.registeredRics.values()) { + if (ric.getManagedElementIds().contains(managedElementId)) { + return Optional.of(ric); + } + } + return Optional.empty(); } }