package edu.washington.escience.myria.io;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.Serializable;
import java.util.Objects;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
/**
* A data source that pulls data from local file.
*/
public class FileSource implements DataSource, Serializable {
/** Required for Java serialization. */
private static final long serialVersionUID = 1L;
/** The filename. */
@JsonProperty private final String filename;
/**
* Construct a source of data that pulls from a local file.
*
* @param filename the local file to be read.
*/
@JsonCreator
public FileSource(@JsonProperty(value = "filename", required = true) final String filename) {
this.filename =
Objects.requireNonNull(filename, "Parameter filename to FileSource may not be null");
}
@Override
public InputStream getInputStream() throws IOException {
return new FileInputStream(filename);
}
/**
* @return the local file that this FileSource references.
*/
public String getFilename() {
return filename;
}
}