package com.ning.metrics.goodwill.binder.modules;
import com.google.inject.Inject;
import com.google.inject.Provider;
import com.ning.metrics.goodwill.binder.config.GoodwillConfig;
import com.ning.metrics.goodwill.sink.GoodwillSink;
import com.ning.metrics.goodwill.sink.NetezzaSink;
import org.apache.log4j.Logger;
public class GoodwillSinkProvider implements Provider<GoodwillSink>
{
private static final Logger log = Logger.getLogger(GoodwillSinkProvider.class);
private final GoodwillConfig config;
@Inject
public GoodwillSinkProvider(final GoodwillConfig config)
{
this.config = config;
}
@Override
public GoodwillSink get()
{
final String sinkType = config.getSinkType();
if (sinkType == null) {
return null;
}
else if (sinkType.equals("netezza")) {
log.info("Enabled Netezza sink");
return new NetezzaSink(config);
}
else {
throw new IllegalStateException("Unknown sink type " + sinkType);
}
}
}