Package com.dottydingo.hyperion.service.marshall

Source Code of com.dottydingo.hyperion.service.marshall.EndpointMarshaller

package com.dottydingo.hyperion.service.marshall;

import com.dottydingo.hyperion.exception.BadRequestException;
import com.dottydingo.hyperion.exception.InternalException;
import com.fasterxml.jackson.databind.ObjectMapper;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.core.MediaType;
import java.io.InputStream;

/**
* User: mark
* Date: 10/17/12
* Time: 8:23 PM
*/
public class EndpointMarshaller
{
    private ObjectMapper objectMapper;

    public EndpointMarshaller()
    {
        try
        {
            objectMapper = new ObjectMapperBuilder().getObject();
        }
        catch (Exception ignore){}
    }

    public void setObjectMapper(ObjectMapper objectMapper)
    {
        this.objectMapper = objectMapper;
    }

    public <T> T unmarshall(HttpServletRequest httpServletRequest, Class<T> type)
    {
        try
        {
            return objectMapper.readValue(httpServletRequest.getInputStream(),type);
        }
        catch (Exception e)
        {
            throw new BadRequestException("Error unmarshalling request.",e);
        }
    }

    public <T> void marshall(HttpServletResponse httpServletResponse, T value)
    {
        try
        {
            httpServletResponse.setContentType(MediaType.APPLICATION_JSON);
            httpServletResponse.setCharacterEncoding("UTF-8");
            objectMapper.writeValue(httpServletResponse.getOutputStream(),value);
        }
        catch(Exception e)
        {
            throw new InternalException("Error marhsalling response.",e);
        }
    }
}
TOP

Related Classes of com.dottydingo.hyperion.service.marshall.EndpointMarshaller

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.