package ei.engine.network.response; public abstract class ResponseEvent { private Object rsp = null; public synchronized boolean handleResponse(Object rsp) { this.rsp = rsp; notify(); return true; } public synchronized void waitForResponse() { while(!gotResponse()) { try { this.wait(); } catch (InterruptedException e) { } } responseEvent(rsp); } public void handleResponse(){ if(gotResponse()){ responseEvent(rsp); } } public boolean gotResponse(){ return (rsp != null); } protected abstract void responseEvent(Object rsp); }