package com.neverwinterdp.scribengin.storage.source; import org.apache.hadoop.fs.FileSystem; import com.google.inject.Inject; import com.google.inject.Singleton; import com.neverwinterdp.scribengin.storage.StorageDescriptor; import com.neverwinterdp.scribengin.storage.StreamDescriptor; import com.neverwinterdp.scribengin.storage.hdfs.source.HDFSSource; import com.neverwinterdp.scribengin.storage.kafka.source.KafkaSource; @Singleton public class SourceFactory { @Inject private FileSystem fs; public Source create(StorageDescriptor descriptor) throws Exception { if("hdfs".equalsIgnoreCase(descriptor.getType())) { return new HDFSSource(fs, descriptor); } else if("kafka".equalsIgnoreCase(descriptor.getType())) { return new KafkaSource(descriptor); } throw new Exception("Unknown source type " + descriptor.getType()); } public Source create(StreamDescriptor descriptor) throws Exception { if("hdfs".equalsIgnoreCase(descriptor.getType())) { return new HDFSSource(fs, descriptor); } else if("kafka".equalsIgnoreCase(descriptor.getType())) { return new KafkaSource(descriptor); } throw new Exception("Unknown source type " + descriptor.getType()); } }