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

kr.jm.metric.output.AbstractOutput Maven / Gradle / Ivy

There is a newer version: 0.2.7.3
Show newest version
package kr.jm.metric.output;

import kr.jm.metric.config.output.OutputConfigInterface;
import lombok.Getter;
import org.slf4j.Logger;

import java.util.Map;

public abstract class AbstractOutput implements OutputInterface {

    protected Logger log = org.slf4j.LoggerFactory.getLogger(getClass());
    @Getter
    protected String outputId;
    protected OutputConfigInterface outputConfig;

    public AbstractOutput(OutputConfigInterface outputConfig) {
        this.outputConfig = outputConfig;
        this.outputId = outputConfig.getOutputId();
    }

    public Map getConfig() {
        return outputConfig.extractConfigMap();
    }

    @Override
    public void close() {
        log.info("Start Output Closing - {}", toString());
        closeImpl();
        log.info("Finish Output Closing - {}", toString());
    }

    protected abstract void closeImpl();

    @Override
    public String toString() {
        return "AbstractOutput{" + "outputId='" + outputId + '\'' +
                ", outputConfig=" + outputConfig + '}';
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy