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

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

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 GrupoDestinatario in entity cache.
 *
 * @author Henrique Simoes
 * @see GrupoDestinatario
 * @generated
 */
public class GrupoDestinatarioCacheModel implements CacheModel<GrupoDestinatario>,
    Externalizable {
    public String uuid;
    public long grupoDestinatarioId;
    public long companyId;
    public long groupId;
    public long userId;
    public String nome;
    public String finalidade;
    public String userIdResponsaveis;
    public boolean listaTemporaria;
    public long dataFinalListaTemporaria;
    public boolean envioEmNomeLista;
    public String userIdNomesLista;
    public boolean listaModerada;
    public String userIdListaModerada;
    public boolean ativo;
    public long dataCriacao;
    public long dataAtualizacao;
    public int tipoLista;

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

        sb.append("{uuid=");
        sb.append(uuid);
        sb.append(", grupoDestinatarioId=");
        sb.append(grupoDestinatarioId);
        sb.append(", companyId=");
        sb.append(companyId);
        sb.append(", groupId=");
        sb.append(groupId);
        sb.append(", userId=");
        sb.append(userId);
        sb.append(", nome=");
        sb.append(nome);
        sb.append(", finalidade=");
        sb.append(finalidade);
        sb.append(", userIdResponsaveis=");
        sb.append(userIdResponsaveis);
        sb.append(", listaTemporaria=");
        sb.append(listaTemporaria);
        sb.append(", dataFinalListaTemporaria=");
        sb.append(dataFinalListaTemporaria);
        sb.append(", envioEmNomeLista=");
        sb.append(envioEmNomeLista);
        sb.append(", userIdNomesLista=");
        sb.append(userIdNomesLista);
        sb.append(", listaModerada=");
        sb.append(listaModerada);
        sb.append(", userIdListaModerada=");
        sb.append(userIdListaModerada);
        sb.append(", ativo=");
        sb.append(ativo);
        sb.append(", dataCriacao=");
        sb.append(dataCriacao);
        sb.append(", dataAtualizacao=");
        sb.append(dataAtualizacao);
        sb.append(", tipoLista=");
        sb.append(tipoLista);
        sb.append("}");

        return sb.toString();
    }

    @Override
    public GrupoDestinatario toEntityModel() {
        GrupoDestinatarioImpl grupoDestinatarioImpl = new GrupoDestinatarioImpl();

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

        grupoDestinatarioImpl.setGrupoDestinatarioId(grupoDestinatarioId);
        grupoDestinatarioImpl.setCompanyId(companyId);
        grupoDestinatarioImpl.setGroupId(groupId);
        grupoDestinatarioImpl.setUserId(userId);

        if (nome == null) {
            grupoDestinatarioImpl.setNome(StringPool.BLANK);
        } else {
            grupoDestinatarioImpl.setNome(nome);
        }

        if (finalidade == null) {
            grupoDestinatarioImpl.setFinalidade(StringPool.BLANK);
        } else {
            grupoDestinatarioImpl.setFinalidade(finalidade);
        }

        if (userIdResponsaveis == null) {
            grupoDestinatarioImpl.setUserIdResponsaveis(StringPool.BLANK);
        } else {
            grupoDestinatarioImpl.setUserIdResponsaveis(userIdResponsaveis);
        }

        grupoDestinatarioImpl.setListaTemporaria(listaTemporaria);

        if (dataFinalListaTemporaria == Long.MIN_VALUE) {
            grupoDestinatarioImpl.setDataFinalListaTemporaria(null);
        } else {
            grupoDestinatarioImpl.setDataFinalListaTemporaria(new Date(
                    dataFinalListaTemporaria));
        }

        grupoDestinatarioImpl.setEnvioEmNomeLista(envioEmNomeLista);

        if (userIdNomesLista == null) {
            grupoDestinatarioImpl.setUserIdNomesLista(StringPool.BLANK);
        } else {
            grupoDestinatarioImpl.setUserIdNomesLista(userIdNomesLista);
        }

        grupoDestinatarioImpl.setListaModerada(listaModerada);

        if (userIdListaModerada == null) {
            grupoDestinatarioImpl.setUserIdListaModerada(StringPool.BLANK);
        } else {
            grupoDestinatarioImpl.setUserIdListaModerada(userIdListaModerada);
        }

        grupoDestinatarioImpl.setAtivo(ativo);

        if (dataCriacao == Long.MIN_VALUE) {
            grupoDestinatarioImpl.setDataCriacao(null);
        } else {
            grupoDestinatarioImpl.setDataCriacao(new Date(dataCriacao));
        }

        if (dataAtualizacao == Long.MIN_VALUE) {
            grupoDestinatarioImpl.setDataAtualizacao(null);
        } else {
            grupoDestinatarioImpl.setDataAtualizacao(new Date(dataAtualizacao));
        }

        grupoDestinatarioImpl.setTipoLista(tipoLista);

        grupoDestinatarioImpl.resetOriginalValues();

        return grupoDestinatarioImpl;
    }

    @Override
    public void readExternal(ObjectInput objectInput) throws IOException {
        uuid = objectInput.readUTF();
        grupoDestinatarioId = objectInput.readLong();
        companyId = objectInput.readLong();
        groupId = objectInput.readLong();
        userId = objectInput.readLong();
        nome = objectInput.readUTF();
        finalidade = objectInput.readUTF();
        userIdResponsaveis = objectInput.readUTF();
        listaTemporaria = objectInput.readBoolean();
        dataFinalListaTemporaria = objectInput.readLong();
        envioEmNomeLista = objectInput.readBoolean();
        userIdNomesLista = objectInput.readUTF();
        listaModerada = objectInput.readBoolean();
        userIdListaModerada = objectInput.readUTF();
        ativo = objectInput.readBoolean();
        dataCriacao = objectInput.readLong();
        dataAtualizacao = objectInput.readLong();
        tipoLista = objectInput.readInt();
    }

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

        objectOutput.writeLong(grupoDestinatarioId);
        objectOutput.writeLong(companyId);
        objectOutput.writeLong(groupId);
        objectOutput.writeLong(userId);

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

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

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

        objectOutput.writeBoolean(listaTemporaria);
        objectOutput.writeLong(dataFinalListaTemporaria);
        objectOutput.writeBoolean(envioEmNomeLista);

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

        objectOutput.writeBoolean(listaModerada);

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

        objectOutput.writeBoolean(ativo);
        objectOutput.writeLong(dataCriacao);
        objectOutput.writeLong(dataAtualizacao);
        objectOutput.writeInt(tipoLista);
    }
}
