Package com.elevenware.ladybird.entities

Source Code of com.elevenware.ladybird.entities.JsonHandler

package com.elevenware.ladybird.entities;

import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.databind.ObjectMapper;

import java.io.IOException;
import java.io.InputStream;
import java.io.StringWriter;

public class JsonHandler implements ContentHandler {
    @Override
    public <T> T unmarshal(String payload, Class<T> clazz) {
        ObjectMapper mapper = new ObjectMapper();
        try {
            return (T) mapper.readValue(payload, clazz);
        } catch (IOException e) {
            StringBuilder builder = new StringBuilder("Unable to unmarshall response to")
                    .append(clazz)
                    .append(" as this body does not appear to be valid JSON:\n")
                    .append(payload);
            throw new UnmarshallingException(builder.toString(), e);
        }
    }

    @Override
    public String marshal(Object payload) {
        ObjectMapper mapper = new ObjectMapper();
        StringWriter writer = new StringWriter();
        try {
            mapper.writeValue(writer, payload);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return writer.toString();
    }

    @Override
    public <T> T unmarshal(InputStream inputStream, Class<T> clazz) {
        ObjectMapper mapper = new ObjectMapper();
        try {
            return (T) mapper.readValue(inputStream, clazz);
        } catch (IOException e) {
            StringBuilder builder = new StringBuilder("Unable to unmarshall response to")
                    .append(clazz)
                    .append(" as the body does not appear to be valid JSON");

            throw new UnmarshallingException(builder.toString(), e);
        }
    }

}
TOP

Related Classes of com.elevenware.ladybird.entities.JsonHandler

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.