1 package com.ning.metrics.goodwill.binder.modules; 2 3 import com.google.inject.Inject; 4 import com.google.inject.Provider; 5 import com.ning.metrics.goodwill.binder.config.GoodwillConfig; 6 import com.ning.metrics.goodwill.sink.GoodwillSink; 7 import com.ning.metrics.goodwill.sink.NetezzaSink; 8 import org.apache.log4j.Logger; 9 10 public class GoodwillSinkProvider implements Provider<GoodwillSink> 11 { 12 private static final Logger log = Logger.getLogger(GoodwillSinkProvider.class); 13 14 private final GoodwillConfig config; 15 16 @Inject 17 public GoodwillSinkProvider(final GoodwillConfig config) 18 { 19 this.config = config; 20 } 21 22 @Override 23 public GoodwillSink get() 24 { 25 final String sinkType = config.getSinkType(); 26 if (sinkType == null) { 27 return null; 28 } 29 else if (sinkType.equals("netezza")) { 30 log.info("Enabled Netezza sink"); 31 return new NetezzaSink(config); 32 } 33 else { 34 throw new IllegalStateException("Unknown sink type " + sinkType); 35 } 36 } 37 }