X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=enrichment-coordinator-service%2Fsrc%2Fmain%2Fjava%2Forg%2Foransc%2Fenrichment%2Frepository%2FEiJobs.java;h=606ee41683b10a7b0d4d248a417404ded2f129fd;hb=af40dc43f26d3fea66ac04625080314162e93496;hp=bb2e40fd8348be78526b8f50e4349a20076130b4;hpb=d1d085456c485599f6b8aba87b6d761b29c2ecd4;p=nonrtric.git diff --git a/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/repository/EiJobs.java b/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/repository/EiJobs.java index bb2e40fd..606ee416 100644 --- a/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/repository/EiJobs.java +++ b/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/repository/EiJobs.java @@ -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 allEiJobs = new HashMap<>(); - private Map> jobsByType = new HashMap<>(); + + private MultiMap 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 getJobs() { @@ -47,13 +47,17 @@ public class EiJobs { public synchronized EiJob getJob(String id) throws ServiceException { EiJob ric = allEiJobs.get(id); if (ric == null) { - throw new ServiceException("Could not find EI Job: " + id); + throw new ServiceException("Could not find EI job: " + id); } return ric; } public synchronized Collection getJobsForType(String typeId) { - return multiMapGet(this.jobsByType, typeId); + return jobsByType.get(typeId); + } + + public synchronized Collection 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> multiMap, String key, EiJob value) { - multiMap.computeIfAbsent(key, k -> new HashMap<>()).put(value.id(), value); - } - - private void multiMapRemove(Map> multiMap, String key, EiJob value) { - Map map = multiMap.get(key); - if (map != null) { - map.remove(value.id()); - if (map.isEmpty()) { - multiMap.remove(key); - } - } - } - - private Collection multiMapGet(Map> multiMap, String key) { - Map map = multiMap.get(key); - if (map == null) { - return Collections.emptyList(); - } - return new Vector<>(map.values()); + this.jobsByType.clear(); } }