package com.kdcloud.server.rest.application; import java.io.ByteArrayOutputStream; import java.io.InputStream; import javax.xml.bind.JAXBContext; import javax.xml.bind.Unmarshaller; import javax.xml.validation.Schema; import org.restlet.data.Status; import org.restlet.representation.Representation; import org.restlet.resource.ResourceException; public class ConvertHelper { @SuppressWarnings("unchecked") public static <T> T toObject(Class<T> clazz, Representation rep, Schema schema) throws ResourceException { try { JAXBContext context = JAXBContext.newInstance(clazz); Unmarshaller u = context.createUnmarshaller(); u.setSchema(schema); return (T) u.unmarshal(rep.getStream()); } catch (Exception e) { e.printStackTrace(); throw new ResourceException(Status.CLIENT_ERROR_BAD_REQUEST); } } public static byte[] toByteArray(Representation rep) throws ResourceException { try { InputStream in = rep.getStream(); ByteArrayOutputStream bos = new ByteArrayOutputStream(); int next = in.read(); while (next > -1) { bos.write(next); next = in.read(); } return bos.toByteArray(); } catch (Exception e) { throw new ResourceException(Status.CLIENT_ERROR_BAD_REQUEST); } } }