
com.cmeza.spring.ioc.handler.contracts.consumers.manager.ConsumerManagerImpl Maven / Gradle / Ivy
package com.cmeza.spring.ioc.handler.contracts.consumers.manager;
import com.cmeza.spring.ioc.handler.contracts.consumers.ClassConsumer;
import com.cmeza.spring.ioc.handler.contracts.consumers.MethodConsumer;
import com.cmeza.spring.ioc.handler.contracts.consumers.ParameterConsumer;
import com.cmeza.spring.ioc.handler.contracts.consumers.enums.ConsumerLocation;
import java.util.*;
public class ConsumerManagerImpl implements ConsumerManager {
private final Map> classConsumers = new LinkedHashMap<>();
private final Map> methodConsumers = new LinkedHashMap<>();
private final Map> parameterConsumers = new LinkedHashMap<>();
@Override
public ConsumerManager addClassConsumer(ConsumerLocation consumerLocation, ClassConsumer initClassConsumer) {
this.addConsumer(consumerLocation, classConsumers, initClassConsumer);
return this;
}
@Override
public ConsumerManager addMethodConsumer(ConsumerLocation consumerLocation, MethodConsumer methodConsumer) {
this.addConsumer(consumerLocation, methodConsumers, methodConsumer);
return this;
}
@Override
public ConsumerManager addParameterConsumer(ConsumerLocation consumerLocation, ParameterConsumer parameterConsumer) {
this.addConsumer(consumerLocation, parameterConsumers, parameterConsumer);
return this;
}
public List getClassConsumers(ConsumerLocation consumerLocation) {
List consumers = classConsumers.get(consumerLocation);
return Objects.nonNull(consumers) ? consumers : Collections.emptyList();
}
public List getMethodConsumers(ConsumerLocation consumerLocation) {
List consumers = methodConsumers.get(consumerLocation);
return Objects.nonNull(consumers) ? consumers : Collections.emptyList();
}
public List getParameterConsumers(ConsumerLocation consumerLocation) {
List consumers = parameterConsumers.get(consumerLocation);
return Objects.nonNull(consumers) ? consumers : Collections.emptyList();
}
private void addConsumer(ConsumerLocation consumerLocation, Map> consumerList, T consumer) {
List consumers = consumerList.get(consumerLocation);
if (Objects.isNull(consumers)) {
consumers = new ArrayList<>();
}
consumers.add(consumer);
consumerList.put(consumerLocation, consumers);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy