View Javadoc

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  }