public class ServerResposeSerializer extends JsonSerializer<ServerResponse> { @Override public void serialize(ServerResponse objectWrapper, JsonGenerator generator, SerializerProvider provider) throws IOException, JsonProcessingException { generator.writeStartObject(); generator.writeNumberField("http_status", objectWrapper.getStatus().value()); generator.writeStringField("message",objectWrapper.getMessage()); generator.writeArrayFieldStart("objects"); List<?> objects = objectWrapper.getObjects(); for (Object object: objects) { generator.writeObject(object); } generator.writeEndArray(); generator.writeEndObject(); }
/** * Builds the {@link HttpResponse}. * * @return the {@link HttpResponse} */ private HttpResponse buildHttpResponse() { HttpResponseImpl response = new HttpResponseImpl(); if (serverResponse != null) { response.setContentType(getMediaTypeName(responseMediaType)); response.setStatusCode(serverResponse.getStatus()); response.setEntity(serverResponse.getEntity()); response.setHeaders(serverResponse.getMetadata()); } return response; }
@Override public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException { ContainerResponseContextImpl ctx = (ContainerResponseContextImpl)responseContext; BuiltResponse jaxrsResposne = ctx.getJaxrsResponse(); ServerResponse serverResponse = new ServerResponse(jaxrsResposne); try { interceptor.postProcess(serverResponse); } finally { jaxrsResposne.setStatus(serverResponse.getStatus()); jaxrsResposne.setAnnotations(serverResponse.getAnnotations()); jaxrsResposne.setEntity(serverResponse.getEntity()); jaxrsResposne.setMetadata(serverResponse.getMetadata()); jaxrsResposne.setEntityClass(serverResponse.getEntityClass()); jaxrsResposne.setGenericType(serverResponse.getGenericType()); } } }
@Override public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException { ContainerResponseContextImpl ctx = (ContainerResponseContextImpl)responseContext; BuiltResponse jaxrsResposne = ctx.getJaxrsResponse(); ServerResponse serverResponse = new ServerResponse(jaxrsResposne); try { interceptor.postProcess(serverResponse); } finally { jaxrsResposne.setStatus(serverResponse.getStatus()); jaxrsResposne.setAnnotations(serverResponse.getAnnotations()); jaxrsResposne.setEntity(serverResponse.getEntity()); jaxrsResposne.setMetadata(serverResponse.getMetadata()); jaxrsResposne.setEntityClass(serverResponse.getEntityClass()); jaxrsResposne.setGenericType(serverResponse.getGenericType()); } } }