package uk.ac.imperial.lsds.seep.api.operator.sources;
import java.nio.charset.Charset;
import java.util.List;
import java.util.Map;
import uk.ac.imperial.lsds.seep.config.Config;
import uk.ac.imperial.lsds.seep.config.ConfigDef;
import uk.ac.imperial.lsds.seep.config.ConfigDef.Importance;
import uk.ac.imperial.lsds.seep.config.ConfigDef.Type;
import uk.ac.imperial.lsds.seep.config.ConfigKey;
public class FileConfig extends Config {
private static final ConfigDef config;
public static final String FILE_PATH = "file.path";
private static final String FILE_PATH_DOC = "The absolute path to a file in the local filesystem";
public static final String SERDE_TYPE = "serde.type";
private static final String SERDE_TYPE_DOC = "The type of the serializer/deserializer. See SerializerType enum for reference";
public static final String TEXT_SOURCE = "text.source";
private static final String TEXT_SOURCE_DOC = "True if the source is text (one line per record). False if the input is binary.";
public static final String CHARACTER_SET = "character.set";
private static final String CHARACTER_SET_DOC = "Which character set to use for text input. Defaults to Charset.defaultCharset() (JVM default).";
public static final String HDFS_SOURCE = "hdfs.source";
private static final String HDFS_SOURCE_DOC = "True if the source file resides on HDFS.";
public static final String HDFS_URI = "hdfs.uri";
private static final String HDFS_URI_DOC = "URI with the hostname, port, and path of the HDFS deployment.";
static {
config = new ConfigDef().define(FILE_PATH, Type.STRING, Importance.HIGH, FILE_PATH_DOC)
.define(SERDE_TYPE, Type.INT, 0, Importance.HIGH, SERDE_TYPE_DOC)
.define(TEXT_SOURCE, Type.BOOLEAN, false, Importance.MEDIUM, TEXT_SOURCE_DOC)
.define(CHARACTER_SET, Type.STRING, Charset.defaultCharset().name(), Importance.LOW, CHARACTER_SET_DOC)
.define(HDFS_SOURCE, Type.BOOLEAN, false, Importance.MEDIUM, HDFS_SOURCE_DOC)
.define(HDFS_URI, Type.STRING, "", Importance.MEDIUM, HDFS_URI_DOC);
}
public FileConfig(Map<? extends Object, ? extends Object> originals) {
super(config, originals);
}
public static ConfigKey getConfigKey(String name){
return config.getConfigKey(name);
}
public static List<ConfigKey> getAllConfigKey(){
return config.getAllConfigKey();
}
public static void main(String[] args) {
System.out.println(config.toHtmlTable());
}
}