Package in.partake.model.dao.postgres9

Source Code of in.partake.model.dao.postgres9.Postgres9EntityDataMapper

package in.partake.model.dao.postgres9;

import in.partake.model.dao.DAOException;
import in.partake.model.dao.DataMapper;
import in.partake.model.dto.PartakeModel;

import java.io.IOException;
import java.nio.charset.Charset;

import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.node.ObjectNode;

// You should override map(Postgres9Entity) or map(JSONObject).
public abstract class Postgres9EntityDataMapper<T extends PartakeModel<T>> implements DataMapper<Postgres9Entity, T> {
    static final protected Charset UTF8 = Charset.forName("utf-8");

    @Override
    public T map(Postgres9Entity entity) throws DAOException {
        if (entity == null)
            return null;
       
        ObjectNode obj;
        try {
            obj = new ObjectMapper().readValue(new String(entity.getBody(), UTF8), ObjectNode.class);
        } catch (JsonParseException e) {
            throw new IllegalArgumentException(e);
        } catch (JsonMappingException e) {
            throw new IllegalArgumentException(e);
        } catch (IOException e) {
            throw new DAOException(e);
        }
        return map(obj);
    }
   
    public T map(ObjectNode obj) {
        throw new UnsupportedOperationException();
    }

    @Override
    public Postgres9Entity unmap(T t) throws DAOException {
        throw new UnsupportedOperationException();
    }
}
TOP

Related Classes of in.partake.model.dao.postgres9.Postgres9EntityDataMapper

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.