public int handle(ProcessingContext processingContext) { StreamSource source; StreamTarget target; source = (StreamSource) processingContext.getRequestContext(); target = (StreamTarget) processingContext.getResponseContext(); try { Reader reader; Writer writer; char[] buffer; int length; reader = source.getReader(); writer = target.getWriter(); buffer = new char[256]; while ((length = reader.read(buffer, 0, 256)) != -1) { writer.write(buffer, 0, length); } return Dispatcher.OK; } catch (IOException e) { } return Dispatcher.ERROR; }
public Status execute(ProcessingContext<? extends S, ? extends T> processingContext) { ProcessingContext<S, T> childProcessingContext; Status status; status = Status.DECLINE; childProcessingContext = processingContextFactory.getProcessingContext( processingContext.getRequestContext(), processingContext.getResponseContext()); for (Handler<S, T> handler : handlers) { Matches matches; matches = null; if (!(handler instanceof Matcher) || (matches = ((Matcher<S, T>) handler).getMatches(processingContext)) != null) { childProcessingContext.setAttribute(ProcessingContext.MATCHES_ATTRIBUTE, matches); status = handler.execute(processingContext); if (status == Status.ERROR || status == Status.DONE) break; } } return status; }
public boolean preHandle(ProcessingContext processingContext) { return (processingContext.getRequestContext() instanceof StreamSource && processingContext.getResponseContext() instanceof StreamTarget); }