
kr.jm.metric.input.AbstractInput Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jm-metric Show documentation
Show all versions of jm-metric Show documentation
FieldMap Transformer From Various Formatted Data
package kr.jm.metric.input;
import kr.jm.metric.config.input.InputConfigInterface;
import kr.jm.metric.data.Transfer;
import lombok.Getter;
import org.slf4j.Logger;
import java.util.Map;
import java.util.function.Consumer;
public abstract class AbstractInput implements
InputInterface {
protected Logger log = org.slf4j.LoggerFactory.getLogger(getClass());
@Getter
protected String inputId;
@Getter
protected C inputConfig;
public AbstractInput(C inputConfig) {
this.inputConfig = inputConfig;
this.inputId = inputConfig.getInputId();
}
@Override
public void start(Consumer> inputConsumer) {
startImpl(inputConsumer);
log.info("Input Start - {}", toString());
}
public Map getConfig() {
return inputConfig.extractConfigMap();
}
@Override
public void close() {
log.info("Start Input Closing - {}", toString());
closeImpl();
log.info("Finish Input Closing - {}", toString());
}
@Override
public String toString() {
return "AbstractInput{" + "inputId='" + inputId + '\'' +
", inputConfig=" + inputConfig + '}';
}
protected abstract void startImpl(Consumer> inputConsumer);
protected abstract void closeImpl();
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy