import java.util.Observable; public abstract class OutputAbstract implements OutputInterface { protected StorageInterface>>> sls; protected String result = ""; @Override public void connect( StorageInterface>>> sls) { if (sls instanceof StoragePassthrough) sls.connect(this); else this.sls = sls; } @SuppressWarnings("unchecked") @Override public void update(Observable o, Object line) { StorageObservable>>> sls = new StorageObservableLinkedList>>>(); sls.add((StorageInterface>>) line); connect(sls); print(); this.sls = new StorageObservableLinkedList>>>(); //set to empty so that a final call to print will not output the last line again } @Override public String getResult() { return result; } @Override public void reset() { result = ""; } }