package org.civilian.context.test; import java.util.ArrayList; import org.civilian.Request; import org.civilian.request.AsyncContext; import org.civilian.request.AsyncEvent; import org.civilian.request.AsyncListener; public class TestAsyncContext extends AsyncContext { public TestAsyncContext(Request request) { super(request); } @Override public void addListener(AsyncListener listener) { if (listeners_ == null) listeners_ = new ArrayList<>(); listeners_.add(listener); } private void fire(AsyncEvent.Type type) { if (listeners_ != null) { AsyncEvent event = new AsyncEvent(type, this); for (AsyncListener listener : listeners_) listener.onEvent(event); } } @Override public void complete() { getResponse().closeContent(); fire(AsyncEvent.Type.COMPLETE); } @Override public void dispatch() { getRequest().getApplication().process(getRequest()); } @Override public void dispatch(String path) { throw new UnsupportedOperationException(); } @Override public long getTimeout() { return timeOut_; } @Override public void setTimeout(long milliSeconds) { timeOut_ = milliSeconds; } private ArrayList<AsyncListener> listeners_; private long timeOut_ = 30000; }