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

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

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 Mensagem in entity cache.
 *
 * @author Henrique Simoes
 * @see Mensagem
 * @generated
 */
public class MensagemCacheModel implements CacheModel<Mensagem>, Externalizable {
    public String uuid;
    public long mensagemId;
    public long companyId;
    public long groupId;
    public long templateId;
    public String grupoDestinatarioIds;
    public long contaSaidaId;
    public String codigoMensagem;
    public String assunto;
    public String conteudo;
    public int prioridade;
    public boolean ativo;
    public int tipoEnvio;
    public int situacaoEnvio;
    public String nomeSolicitante;
    public long userIdCriador;
    public long dataSolicitacao;
    public long dataUltimoEnvio;
    public long dataAlteracao;
    public boolean rascunho;
    public int statusWorkflow;
    public long userIdWorkflow;
    public long dataStatusWorkflow;
    public String comentarioWorkflow;
    public long clonagemPai;
    public String literalAgendamento;
    public long userIdCancel;
    public long userIdAprovador;
    public long userIdReprovador;
    public long dataCancel;
    public boolean service;

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

        sb.append("{uuid=");
        sb.append(uuid);
        sb.append(", mensagemId=");
        sb.append(mensagemId);
        sb.append(", companyId=");
        sb.append(companyId);
        sb.append(", groupId=");
        sb.append(groupId);
        sb.append(", templateId=");
        sb.append(templateId);
        sb.append(", grupoDestinatarioIds=");
        sb.append(grupoDestinatarioIds);
        sb.append(", contaSaidaId=");
        sb.append(contaSaidaId);
        sb.append(", codigoMensagem=");
        sb.append(codigoMensagem);
        sb.append(", assunto=");
        sb.append(assunto);
        sb.append(", conteudo=");
        sb.append(conteudo);
        sb.append(", prioridade=");
        sb.append(prioridade);
        sb.append(", ativo=");
        sb.append(ativo);
        sb.append(", tipoEnvio=");
        sb.append(tipoEnvio);
        sb.append(", situacaoEnvio=");
        sb.append(situacaoEnvio);
        sb.append(", nomeSolicitante=");
        sb.append(nomeSolicitante);
        sb.append(", userIdCriador=");
        sb.append(userIdCriador);
        sb.append(", dataSolicitacao=");
        sb.append(dataSolicitacao);
        sb.append(", dataUltimoEnvio=");
        sb.append(dataUltimoEnvio);
        sb.append(", dataAlteracao=");
        sb.append(dataAlteracao);
        sb.append(", rascunho=");
        sb.append(rascunho);
        sb.append(", statusWorkflow=");
        sb.append(statusWorkflow);
        sb.append(", userIdWorkflow=");
        sb.append(userIdWorkflow);
        sb.append(", dataStatusWorkflow=");
        sb.append(dataStatusWorkflow);
        sb.append(", comentarioWorkflow=");
        sb.append(comentarioWorkflow);
        sb.append(", clonagemPai=");
        sb.append(clonagemPai);
        sb.append(", literalAgendamento=");
        sb.append(literalAgendamento);
        sb.append(", userIdCancel=");
        sb.append(userIdCancel);
        sb.append(", userIdAprovador=");
        sb.append(userIdAprovador);
        sb.append(", userIdReprovador=");
        sb.append(userIdReprovador);
        sb.append(", dataCancel=");
        sb.append(dataCancel);
        sb.append(", service=");
        sb.append(service);
        sb.append("}");

        return sb.toString();
    }

    @Override
    public Mensagem toEntityModel() {
        MensagemImpl mensagemImpl = new MensagemImpl();

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

        mensagemImpl.setMensagemId(mensagemId);
        mensagemImpl.setCompanyId(companyId);
        mensagemImpl.setGroupId(groupId);
        mensagemImpl.setTemplateId(templateId);

        if (grupoDestinatarioIds == null) {
            mensagemImpl.setGrupoDestinatarioIds(StringPool.BLANK);
        } else {
            mensagemImpl.setGrupoDestinatarioIds(grupoDestinatarioIds);
        }

        mensagemImpl.setContaSaidaId(contaSaidaId);

        if (codigoMensagem == null) {
            mensagemImpl.setCodigoMensagem(StringPool.BLANK);
        } else {
            mensagemImpl.setCodigoMensagem(codigoMensagem);
        }

        if (assunto == null) {
            mensagemImpl.setAssunto(StringPool.BLANK);
        } else {
            mensagemImpl.setAssunto(assunto);
        }

        if (conteudo == null) {
            mensagemImpl.setConteudo(StringPool.BLANK);
        } else {
            mensagemImpl.setConteudo(conteudo);
        }

        mensagemImpl.setPrioridade(prioridade);
        mensagemImpl.setAtivo(ativo);
        mensagemImpl.setTipoEnvio(tipoEnvio);
        mensagemImpl.setSituacaoEnvio(situacaoEnvio);

        if (nomeSolicitante == null) {
            mensagemImpl.setNomeSolicitante(StringPool.BLANK);
        } else {
            mensagemImpl.setNomeSolicitante(nomeSolicitante);
        }

        mensagemImpl.setUserIdCriador(userIdCriador);

        if (dataSolicitacao == Long.MIN_VALUE) {
            mensagemImpl.setDataSolicitacao(null);
        } else {
            mensagemImpl.setDataSolicitacao(new Date(dataSolicitacao));
        }

        if (dataUltimoEnvio == Long.MIN_VALUE) {
            mensagemImpl.setDataUltimoEnvio(null);
        } else {
            mensagemImpl.setDataUltimoEnvio(new Date(dataUltimoEnvio));
        }

        if (dataAlteracao == Long.MIN_VALUE) {
            mensagemImpl.setDataAlteracao(null);
        } else {
            mensagemImpl.setDataAlteracao(new Date(dataAlteracao));
        }

        mensagemImpl.setRascunho(rascunho);
        mensagemImpl.setStatusWorkflow(statusWorkflow);
        mensagemImpl.setUserIdWorkflow(userIdWorkflow);

        if (dataStatusWorkflow == Long.MIN_VALUE) {
            mensagemImpl.setDataStatusWorkflow(null);
        } else {
            mensagemImpl.setDataStatusWorkflow(new Date(dataStatusWorkflow));
        }

        if (comentarioWorkflow == null) {
            mensagemImpl.setComentarioWorkflow(StringPool.BLANK);
        } else {
            mensagemImpl.setComentarioWorkflow(comentarioWorkflow);
        }

        mensagemImpl.setClonagemPai(clonagemPai);

        if (literalAgendamento == null) {
            mensagemImpl.setLiteralAgendamento(StringPool.BLANK);
        } else {
            mensagemImpl.setLiteralAgendamento(literalAgendamento);
        }

        mensagemImpl.setUserIdCancel(userIdCancel);
        mensagemImpl.setUserIdAprovador(userIdAprovador);
        mensagemImpl.setUserIdReprovador(userIdReprovador);

        if (dataCancel == Long.MIN_VALUE) {
            mensagemImpl.setDataCancel(null);
        } else {
            mensagemImpl.setDataCancel(new Date(dataCancel));
        }

        mensagemImpl.setService(service);

        mensagemImpl.resetOriginalValues();

        return mensagemImpl;
    }

    @Override
    public void readExternal(ObjectInput objectInput) throws IOException {
        uuid = objectInput.readUTF();
        mensagemId = objectInput.readLong();
        companyId = objectInput.readLong();
        groupId = objectInput.readLong();
        templateId = objectInput.readLong();
        grupoDestinatarioIds = objectInput.readUTF();
        contaSaidaId = objectInput.readLong();
        codigoMensagem = objectInput.readUTF();
        assunto = objectInput.readUTF();
        conteudo = objectInput.readUTF();
        prioridade = objectInput.readInt();
        ativo = objectInput.readBoolean();
        tipoEnvio = objectInput.readInt();
        situacaoEnvio = objectInput.readInt();
        nomeSolicitante = objectInput.readUTF();
        userIdCriador = objectInput.readLong();
        dataSolicitacao = objectInput.readLong();
        dataUltimoEnvio = objectInput.readLong();
        dataAlteracao = objectInput.readLong();
        rascunho = objectInput.readBoolean();
        statusWorkflow = objectInput.readInt();
        userIdWorkflow = objectInput.readLong();
        dataStatusWorkflow = objectInput.readLong();
        comentarioWorkflow = objectInput.readUTF();
        clonagemPai = objectInput.readLong();
        literalAgendamento = objectInput.readUTF();
        userIdCancel = objectInput.readLong();
        userIdAprovador = objectInput.readLong();
        userIdReprovador = objectInput.readLong();
        dataCancel = objectInput.readLong();
        service = objectInput.readBoolean();
    }

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

        objectOutput.writeLong(mensagemId);
        objectOutput.writeLong(companyId);
        objectOutput.writeLong(groupId);
        objectOutput.writeLong(templateId);

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

        objectOutput.writeLong(contaSaidaId);

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

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

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

        objectOutput.writeInt(prioridade);
        objectOutput.writeBoolean(ativo);
        objectOutput.writeInt(tipoEnvio);
        objectOutput.writeInt(situacaoEnvio);

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

        objectOutput.writeLong(userIdCriador);
        objectOutput.writeLong(dataSolicitacao);
        objectOutput.writeLong(dataUltimoEnvio);
        objectOutput.writeLong(dataAlteracao);
        objectOutput.writeBoolean(rascunho);
        objectOutput.writeInt(statusWorkflow);
        objectOutput.writeLong(userIdWorkflow);
        objectOutput.writeLong(dataStatusWorkflow);

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

        objectOutput.writeLong(clonagemPai);

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

        objectOutput.writeLong(userIdCancel);
        objectOutput.writeLong(userIdAprovador);
        objectOutput.writeLong(userIdReprovador);
        objectOutput.writeLong(dataCancel);
        objectOutput.writeBoolean(service);
    }
}
