package org.greengin.sciencetoolkit.logic.streams; import java.util.Vector; public class DataPipe { DataOutput origin; Vector<DataInputOutput> filters; DataInput end; public DataPipe(DataOutput origin) { this.origin = origin; this.filters = new Vector<DataInputOutput>(); this.end = null; } public void addFilter(DataInputOutput filter) { this.filters.add(filter); } public void setEnd(DataInput end) { this.end = end; } public void attach() { DataOutput last = origin; for (DataInputOutput filter : filters) { last.addInput(filter); last = filter; } last.addInput(end); } public void detach() { DataOutput last = origin; for (DataInputOutput filter : filters) { last.removeInput(filter); last = filter; } last.removeInput(end); } }