package org.oransc.enrichment.repository;
-import org.immutables.gson.Gson;
-import org.immutables.value.Value;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
-@Value.Immutable
-@Gson.TypeAdapters
-public interface EiType {
- public String id();
+import lombok.Getter;
- public Object jobDataSchema();
+public class EiType {
+ @Getter
+ private final String id;
+
+ @Getter
+ private final Object jobDataSchema;
+
+ private final Map<String, EiProducer> producers = new HashMap<>();
+
+ public EiType(String id, Object jobDataSchema) {
+ this.id = id;
+ this.jobDataSchema = jobDataSchema;
+ }
+
+ public synchronized Collection<EiProducer> getProducers() {
+ return Collections.unmodifiableCollection(producers.values());
+ }
+
+ public synchronized Collection<String> getProducerIds() {
+ return Collections.unmodifiableCollection(producers.keySet());
+ }
+
+ public synchronized void addProducer(EiProducer producer) {
+ this.producers.put(producer.id(), producer);
+ }
+
+ public synchronized EiProducer removeProducer(EiProducer producer) {
+ return this.producers.remove(producer.id());
+ }
}