private <T> T read(Class<T> messageType, Type type, MediaType mediaType) { if (data == null) { return null; } final Annotation[] annotations = new Annotation[0]; final MultivaluedMap<String, String> headers = new MultivaluedHashMap<>(0); final MessageBodyReader<T> reader = factory.createMessageBodyReader(messageType, type, annotations, mediaType, message); if (reader == null) { throw new RuntimeException("No suitable message body reader for class: " + messageType.getName()); } try (ByteArrayInputStream is = new ByteArrayInputStream(data.getBytes(StandardCharsets.UTF_8))) { return reader.readFrom(messageType, type, annotations, mediaType, headers, is); } catch (final IOException ex) { throw new RuntimeException("Unable to read data of type " + messageType.getName(), ex); } } }
private <T> T read(Class<T> messageType, Type type, MediaType mediaType) { if (data == null) { return null; } final Annotation[] annotations = new Annotation[0]; final MultivaluedMap<String, String> headers = new MultivaluedHashMap<>(0); final MessageBodyReader<T> reader = factory.createMessageBodyReader(messageType, type, annotations, mediaType, message); if (reader == null) { throw new RuntimeException("No suitable message body reader for class: " + messageType.getName()); } try (ByteArrayInputStream is = new ByteArrayInputStream(data.getBytes(StandardCharsets.UTF_8))) { return reader.readFrom(messageType, type, annotations, mediaType, headers, is); } catch (final IOException ex) { throw new RuntimeException("Unable to read data of type " + messageType.getName(), ex); } } }