All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.cmeza.spring.ioc.handler.contracts.consumers.manager.ConsumerManagerImpl Maven / Gradle / Ivy

There is a newer version: 1.0.3
Show newest version
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