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 SyntheticSource implements StaticConnectable, TaggingSource {
private int id;
private Properties properties;
private SyntheticSource(int id, Properties p) {
this.id = id;
this.properties = p;
}
public static SyntheticSource newSource(int id, Properties p) {
return new SyntheticSource(id, p);
}
@Override
public void connectTo(LogicalOperator operator, Schema schema, int streamId) {
ConnectionType type = ConnectionType.ONE_AT_A_TIME;
this.connectTo(operator, schema, streamId, type);
}
@Override
public void connectTo(LogicalOperator operator, Schema schema, int streamId, ConnectionType connType) {
DataStore ds = new DataStore(schema, DataStoreType.SEEP_SYNTHETIC_GEN, properties);
((SeepLogicalOperator)operator).reverseConnection(this, streamId, ds, connType);
}
}