package uk.ac.imperial.lsds.seepworker.core.input; import java.util.ArrayList; import java.util.List; import uk.ac.imperial.lsds.seep.api.DataStoreType; import uk.ac.imperial.lsds.seep.api.data.ITuple; import uk.ac.imperial.lsds.seep.core.IBuffer; import uk.ac.imperial.lsds.seep.core.InputAdapter; import uk.ac.imperial.lsds.seep.core.InputAdapterReturnType; public class FacadeInputAdapter implements InputAdapter { private int streamId; private DataStoreType dst; private boolean doneInvocation = false; final private short RETURN_TYPE; public FacadeInputAdapter(int streamId, InputAdapterReturnType returnType, IBuffer buffer) { this.streamId = streamId; this.RETURN_TYPE = returnType.ofType(); this.dst = buffer.getDataReference().getDataStore().type(); } @Override public int getStreamId() { return streamId; } @Override public short returnType() { return RETURN_TYPE; } @Override public DataStoreType getDataStoreType() { return dst; } @Override public ITuple pullDataItem(int timeout) { // When there are no input parameters we invoke the task once if(!doneInvocation) { doneInvocation = true; ITuple it = ITuple.makeEmptyITuple(); return it; } return null; // Done execution } @Override public List<ITuple> pullDataItems(int timeout) { // FIXME: temporal method List<ITuple> l = new ArrayList<>(); ITuple it = new ITuple(null); l.add(it); return l; } }