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<String, Ric> rics = new HashMap<>();
+ Map<String, Ric> registeredRics = new HashMap<>();
+
+ public synchronized void put(Ric ric) {
+ registeredRics.put(ric.name(), ric);
+ }
+
+ public synchronized Collection<Ric> 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<Ric> 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<Ric> lookupRicForManagedElement(String managedElementId) {
+ for (Ric ric : this.registeredRics.values()) {
+ if (ric.getManagedElementIds().contains(managedElementId)) {
+ return Optional.of(ric);
+ }
+ }
+ return Optional.empty();
}
}