Merge "Added STD sim 2.0.0 tests"
[nonrtric.git] / policy-agent / src / main / java / org / oransc / policyagent / repository / Services.java
index 509b2f5..1c0e15a 100644 (file)
@@ -20,9 +20,9 @@
 
 package org.oransc.policyagent.repository;
 
-import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Vector;
 
 import org.oransc.policyagent.exceptions.ServiceException;
 import org.slf4j.Logger;
@@ -31,13 +31,10 @@ import org.slf4j.LoggerFactory;
 public class Services {
     private static final Logger logger = LoggerFactory.getLogger(Services.class);
 
-    private Map<String, Service> services = new HashMap<>();
-
-    public Services() {
-    }
+    private Map<String, Service> registeredServices = new HashMap<>();
 
     public synchronized Service getService(String name) throws ServiceException {
-        Service s = services.get(name);
+        Service s = registeredServices.get(name);
         if (s == null) {
             throw new ServiceException("Could not find service: " + name);
         }
@@ -45,16 +42,28 @@ public class Services {
     }
 
     public synchronized Service get(String name) {
-        return services.get(name);
+        return registeredServices.get(name);
     }
 
     public synchronized void put(Service service) {
-        logger.debug("Put service: " + service.getName());
-        services.put(service.getName(), service);
+        logger.debug("Put service: {}", service.getName());
+        service.keepAlive();
+        registeredServices.put(service.getName(), service);
+    }
+
+    public synchronized Iterable<Service> getAll() {
+        return new Vector<>(registeredServices.values());
     }
 
-    public synchronized Collection<Service> getAll() {
-        return services.values();
+    public synchronized void remove(String name) {
+        registeredServices.remove(name);
     }
 
+    public synchronized int size() {
+        return registeredServices.size();
+    }
+
+    public synchronized void clear() {
+        registeredServices.clear();
+    }
 }