package br.mp.mprj.portal.portlet.gestaomensagens.service.model.impl;

import br.mp.mprj.portal.portlet.gestaomensagens.service.model.MensagemWorkflow;

import com.liferay.portal.kernel.util.StringBundler;
import com.liferay.portal.kernel.util.StringPool;
import com.liferay.portal.model.CacheModel;

import java.io.Externalizable;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;

import java.util.Date;

/**
 * The cache model class for representing MensagemWorkflow in entity cache.
 *
 * @author Henrique Simoes
 * @see MensagemWorkflow
 * @generated
 */
public class MensagemWorkflowCacheModel implements CacheModel<MensagemWorkflow>,
    Externalizable {
    public String uuid;
    public long mensagemWorkflowId;
    public long mensagemId;
    public long userId;
    public int status;
    public long data;
    public String comentario;

    @Override
    public String toString() {
        StringBundler sb = new StringBundler(15);

        sb.append("{uuid=");
        sb.append(uuid);
        sb.append(", mensagemWorkflowId=");
        sb.append(mensagemWorkflowId);
        sb.append(", mensagemId=");
        sb.append(mensagemId);
        sb.append(", userId=");
        sb.append(userId);
        sb.append(", status=");
        sb.append(status);
        sb.append(", data=");
        sb.append(data);
        sb.append(", comentario=");
        sb.append(comentario);
        sb.append("}");

        return sb.toString();
    }

    @Override
    public MensagemWorkflow toEntityModel() {
        MensagemWorkflowImpl mensagemWorkflowImpl = new MensagemWorkflowImpl();

        if (uuid == null) {
            mensagemWorkflowImpl.setUuid(StringPool.BLANK);
        } else {
            mensagemWorkflowImpl.setUuid(uuid);
        }

        mensagemWorkflowImpl.setMensagemWorkflowId(mensagemWorkflowId);
        mensagemWorkflowImpl.setMensagemId(mensagemId);
        mensagemWorkflowImpl.setUserId(userId);
        mensagemWorkflowImpl.setStatus(status);

        if (data == Long.MIN_VALUE) {
            mensagemWorkflowImpl.setData(null);
        } else {
            mensagemWorkflowImpl.setData(new Date(data));
        }

        if (comentario == null) {
            mensagemWorkflowImpl.setComentario(StringPool.BLANK);
        } else {
            mensagemWorkflowImpl.setComentario(comentario);
        }

        mensagemWorkflowImpl.resetOriginalValues();

        return mensagemWorkflowImpl;
    }

    @Override
    public void readExternal(ObjectInput objectInput) throws IOException {
        uuid = objectInput.readUTF();
        mensagemWorkflowId = objectInput.readLong();
        mensagemId = objectInput.readLong();
        userId = objectInput.readLong();
        status = objectInput.readInt();
        data = objectInput.readLong();
        comentario = objectInput.readUTF();
    }

    @Override
    public void writeExternal(ObjectOutput objectOutput)
        throws IOException {
        if (uuid == null) {
            objectOutput.writeUTF(StringPool.BLANK);
        } else {
            objectOutput.writeUTF(uuid);
        }

        objectOutput.writeLong(mensagemWorkflowId);
        objectOutput.writeLong(mensagemId);
        objectOutput.writeLong(userId);
        objectOutput.writeInt(status);
        objectOutput.writeLong(data);

        if (comentario == null) {
            objectOutput.writeUTF(StringPool.BLANK);
        } else {
            objectOutput.writeUTF(comentario);
        }
    }
}
