private void sendError(int error, String message) { try { response.sendError(error, message); } catch (IOException e) { throw new ResultException(e); } }
@Override public void sendError(int statusCode) { try { response.sendError(statusCode); } catch (IOException e) { throw new ResultException("Error while setting status code", e); } } @Override
@Override public void sendError(int statusCode, String message) { try { response.sendError(statusCode, message); } catch (IOException e) { throw new ResultException("Error while setting status code", e); } }
private void sendError(int error) { try { response.sendError(error); } catch (IOException e) { throw new ResultException(e); } }
@Override public HttpResult body(String body) { try { response.getWriter().print(body); } catch (IOException e) { throw new ResultException("Couldn't write to response body", e); } return this; }
@Override public HttpResult body(InputStream body) { try { ByteStreams.copy(body, response.getOutputStream()); } catch (IOException e) { throw new ResultException("Couldn't write to response body", e); } return this; }
@Override protected SerializerBuilder getSerializer() { try { return new GsonSerializer(builder, response.getWriter(), extractor, reflectionProvider) { @Override public void serialize() { try { response.getWriter().append(callbackName).append("("); super.serialize(); response.getWriter().append(")"); } catch (IOException e) { throw new ResultException("Unable to serialize data", e); } } }; } catch (IOException e) { throw new ResultException("Unable to serialize data", e); } } };
protected SerializerBuilder getSerializer() { try { return new GsonSerializer(builder, response.getWriter(), extractor, reflectionProvider); } catch (IOException e) { throw new ResultException("Unable to serialize data", e); } }
@Override public void forwardTo(String url) { logger.debug("forwarding to {}", url); try { request.getRequestDispatcher(url).forward(request, response); } catch (ServletException | IOException e) { throw new ResultException(e); } }
@Override public HttpResult body(Reader body) { try { CharStreams.copy(body, response.getWriter()); } catch (IOException e) { throw new ResultException("Couldn't write to response body", e); } return this; } }
@Override protected SerializerBuilder getSerializer() { try { final PrintWriter writer = response.getWriter(); final StringWriter out = new StringWriter(); return new XStreamSerializer(super.getXStream(), new PrintWriter(out), extractor, initializer) { @Override public void serialize() { super.serialize(); writer.append(callbackName).append("(").append(out.getBuffer()).append(")"); writer.close(); } }; } catch (IOException e) { throw new ResultException("Unable to serialize data", e); } } };
@Override public void include() { try { String to = resolver.pathFor(methodInfo.getControllerMethod()); logger.debug("including {}", to); request.getRequestDispatcher(to).include(request, response); } catch (ServletException e) { throw new ResultException(e); } catch (IOException e) { throw new ResultException(e); } }
public void withTemplate(String path) { try { Template template = freemarker.use(path); includeRequestAttributes(template); template.render(); } catch (IOException e) { throw new ResultException(e); } catch (TemplateException e) { throw new ResultException(e); } }
protected HierarchicalStreamWriter getWriter() { try { PrintWriter writer = response.getWriter(); return indented ? new PrettyPrintWriter(writer) : new CompactWriter(writer); } catch (IOException e) { throw new ResultException("Unable to serialize data", e); } }
protected SerializerBuilder getSerializer() { try { return new XStreamSerializer(getXStream(), response.getWriter(), extractor, initializer); } catch (IOException e) { throw new ResultException("Unable to serialize data", e); } }
@Override public void redirectTo(String url) { logger.debug("redirection to {}", url); try { if (url.startsWith("/")) { response.sendRedirect(request.getContextPath() + url); } else { response.sendRedirect(url); } } catch (IOException e) { throw new ResultException(e); } }
@Override public Object intercept(T proxy, Method method, Object[] args, SuperMethod superMethod) { Class type = method.getReturnType(); if (type == void.class) { return null; } if (view.isAssignableFrom(type)) { return proxy; } if (args.length > 0 && args[0] instanceof Class) { return proxifier.proxify((Class) args[0], returnOnFirstInvocation()); } if (Serializer.class.isAssignableFrom(type) || SerializerBuilder.class.isAssignableFrom(type) || NoRootSerialization.class.isAssignableFrom(type)) { return proxifier.proxify(type, returnOnFinalMethods(type)); } throw new ResultException("It's not possible to create a mocked version of " + method + ". Please inform this corner case to VRaptor developers"); }
@Override public void defaultView() { String to = resolver.pathFor(methodInfo.getControllerMethod()); logger.debug("forwarding to {}", to); try { request.getRequestDispatcher(to).forward(request, response); } catch (ServletException e) { throw new ApplicationLogicException(to + " raised an exception", e); } catch (IOException e) { throw new ResultException(e); } }
@Override public Object intercept(T proxy, Method method, Object[] args, SuperMethod superMethod) { final Object instance = reflectionProvider.invoke(viewInstance, method, args); Class type = method.getReturnType(); if (type == void.class) { throw new ValidationException(errors); } if (view.isAssignableFrom(type)) { return proxy; } if (args.length > 0 && args[0] instanceof Class<?>) { return proxifier.proxify((Class<?>) args[0], throwValidationExceptionOnFirstInvocation(errors, instance)); } if (Serializer.class.isAssignableFrom(type) || SerializerBuilder.class.isAssignableFrom(type) || NoRootSerialization.class.isAssignableFrom(type)) { return proxifier.proxify(type, throwValidationErrorOnFinalMethods(type, errors, type.cast(instance))); } throw new ResultException("It's not possible to create a validation version of " + method + ". You must provide a Custom Validation version of your class, or inform this corner case to VRaptor developers"); }
throw new ResultException("Unable to deserialize data", e);