package uk.ac.imperial.lsds.seep.api.operator.sources;
import java.util.Properties;
import uk.ac.imperial.lsds.seep.api.ConnectionType;
import uk.ac.imperial.lsds.seep.api.DataStore;
import uk.ac.imperial.lsds.seep.api.DataStoreType;
import uk.ac.imperial.lsds.seep.api.data.Schema;
import uk.ac.imperial.lsds.seep.api.operator.LogicalOperator;
import uk.ac.imperial.lsds.seep.api.operator.SeepLogicalOperator;
public class FileSource implements StaticConnectable, TaggingSource {
private int id;
private Properties properties;
private FileSource(int id, Properties p) {
this.id = id;
this.properties = p;
}
public static FileSource newSource(int id, Properties p) {
return new FileSource(id, p);
}
@Override
public void connectTo(LogicalOperator operator, Schema schema, int streamId, ConnectionType connType) {
// I'm a virtual op, so no need to say what is my downstream. Only need to indicate I'm its upstream
DataStore ds = new DataStore(schema, DataStoreType.FILE, properties);
((SeepLogicalOperator)operator).reverseConnection(this, streamId, ds, connType);
}
@Override
public void connectTo(LogicalOperator operator, Schema schema, int streamId) {
ConnectionType type = ConnectionType.ONE_AT_A_TIME;
this.connectTo(operator, schema, streamId, type);
}
}