1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package eu.ehri.extension.providers;
21
22 import javax.ws.rs.Produces;
23 import javax.ws.rs.WebApplicationException;
24 import javax.ws.rs.core.MediaType;
25 import javax.ws.rs.core.MultivaluedMap;
26 import javax.ws.rs.ext.MessageBodyWriter;
27 import javax.ws.rs.ext.Provider;
28 import java.io.IOException;
29 import java.io.OutputStream;
30 import java.lang.annotation.Annotation;
31 import java.lang.reflect.Type;
32
33
34 @Provider
35 @Produces(MediaType.APPLICATION_JSON)
36 public class NumberProvider implements MessageBodyWriter<Number>, JsonMessageBodyHandler {
37
38 @Override
39 public boolean isWriteable(Class<?> aClass, Type type, Annotation[] annotations, MediaType mediaType) {
40 return Number.class.isAssignableFrom(aClass);
41 }
42
43 @Override
44 public long getSize(Number number, Class<?> aClass, Type type, Annotation[] annotations,
45 MediaType mediaType) {
46 return -1L;
47 }
48
49 @Override
50 public void writeTo(Number number, Class<?> aClass, Type type, Annotation[] annotations,
51 MediaType mediaType, MultivaluedMap<String, Object> headers,
52 OutputStream outputStream) throws IOException, WebApplicationException {
53 mapper.writeValue(outputStream, number);
54 }
55 }