Added EI Job jobTarget
[nonrtric.git] / enrichment-coordinator-service / src / main / java / org / oransc / enrichment / repository / EiJobs.java
index bb2e40f..9326195 100644 (file)
@@ -21,7 +21,6 @@
 package org.oransc.enrichment.repository;
 
 import java.util.Collection;
-import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Vector;
@@ -33,11 +32,12 @@ import org.oransc.enrichment.exceptions.ServiceException;
  */
 public class EiJobs {
     private Map<String, EiJob> allEiJobs = new HashMap<>();
-    private Map<String, Map<String, EiJob>> jobsByType = new HashMap<>();
+
+    private MultiMap<EiJob> jobsByType = new MultiMap<>();
 
     public synchronized void put(EiJob job) {
         allEiJobs.put(job.id(), job);
-        multiMapPut(this.jobsByType, job.typeId(), job);
+        jobsByType.put(job.type().getId(), job.id(), job);
     }
 
     public synchronized Collection<EiJob> getJobs() {
@@ -53,7 +53,11 @@ public class EiJobs {
     }
 
     public synchronized Collection<EiJob> getJobsForType(String typeId) {
-        return multiMapGet(this.jobsByType, typeId);
+        return jobsByType.get(typeId);
+    }
+
+    public synchronized Collection<EiJob> getJobsForType(EiType type) {
+        return jobsByType.get(type.getId());
     }
 
     public synchronized EiJob get(String id) {
@@ -70,7 +74,7 @@ public class EiJobs {
 
     public synchronized void remove(EiJob job) {
         this.allEiJobs.remove(job.id());
-        multiMapRemove(this.jobsByType, job.typeId(), job);
+        jobsByType.remove(job.type().getId(), job.id());
     }
 
     public synchronized int size() {
@@ -79,28 +83,7 @@ public class EiJobs {
 
     public synchronized void clear() {
         this.allEiJobs.clear();
-    }
-
-    private void multiMapPut(Map<String, Map<String, EiJob>> multiMap, String key, EiJob value) {
-        multiMap.computeIfAbsent(key, k -> new HashMap<>()).put(value.id(), value);
-    }
-
-    private void multiMapRemove(Map<String, Map<String, EiJob>> multiMap, String key, EiJob value) {
-        Map<String, EiJob> map = multiMap.get(key);
-        if (map != null) {
-            map.remove(value.id());
-            if (map.isEmpty()) {
-                multiMap.remove(key);
-            }
-        }
-    }
-
-    private Collection<EiJob> multiMapGet(Map<String, Map<String, EiJob>> multiMap, String key) {
-        Map<String, EiJob> map = multiMap.get(key);
-        if (map == null) {
-            return Collections.emptyList();
-        }
-        return new Vector<>(map.values());
+        this.jobsByType.clear();
     }
 
 }