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

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

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 Template in entity cache.
 *
 * @author Henrique Simoes
 * @see Template
 * @generated
 */
public class TemplateCacheModel implements CacheModel<Template>, Externalizable {
    public String uuid;
    public long templateId;
    public long companyId;
    public long groupId;
    public long userId;
    public String nome;
    public int estilo;
    public boolean ativo;
    public String cabecalho;
    public String rodape;
    public String corpo;
    public long dataCriacao;
    public long dataAtualizacao;
    public long thumbnailFileEntryId;
    public String thumbnailURL;

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

        sb.append("{uuid=");
        sb.append(uuid);
        sb.append(", templateId=");
        sb.append(templateId);
        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(", estilo=");
        sb.append(estilo);
        sb.append(", ativo=");
        sb.append(ativo);
        sb.append(", cabecalho=");
        sb.append(cabecalho);
        sb.append(", rodape=");
        sb.append(rodape);
        sb.append(", corpo=");
        sb.append(corpo);
        sb.append(", dataCriacao=");
        sb.append(dataCriacao);
        sb.append(", dataAtualizacao=");
        sb.append(dataAtualizacao);
        sb.append(", thumbnailFileEntryId=");
        sb.append(thumbnailFileEntryId);
        sb.append(", thumbnailURL=");
        sb.append(thumbnailURL);
        sb.append("}");

        return sb.toString();
    }

    @Override
    public Template toEntityModel() {
        TemplateImpl templateImpl = new TemplateImpl();

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

        templateImpl.setTemplateId(templateId);
        templateImpl.setCompanyId(companyId);
        templateImpl.setGroupId(groupId);
        templateImpl.setUserId(userId);

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

        templateImpl.setEstilo(estilo);
        templateImpl.setAtivo(ativo);

        if (cabecalho == null) {
            templateImpl.setCabecalho(StringPool.BLANK);
        } else {
            templateImpl.setCabecalho(cabecalho);
        }

        if (rodape == null) {
            templateImpl.setRodape(StringPool.BLANK);
        } else {
            templateImpl.setRodape(rodape);
        }

        if (corpo == null) {
            templateImpl.setCorpo(StringPool.BLANK);
        } else {
            templateImpl.setCorpo(corpo);
        }

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

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

        templateImpl.setThumbnailFileEntryId(thumbnailFileEntryId);

        if (thumbnailURL == null) {
            templateImpl.setThumbnailURL(StringPool.BLANK);
        } else {
            templateImpl.setThumbnailURL(thumbnailURL);
        }

        templateImpl.resetOriginalValues();

        return templateImpl;
    }

    @Override
    public void readExternal(ObjectInput objectInput) throws IOException {
        uuid = objectInput.readUTF();
        templateId = objectInput.readLong();
        companyId = objectInput.readLong();
        groupId = objectInput.readLong();
        userId = objectInput.readLong();
        nome = objectInput.readUTF();
        estilo = objectInput.readInt();
        ativo = objectInput.readBoolean();
        cabecalho = objectInput.readUTF();
        rodape = objectInput.readUTF();
        corpo = objectInput.readUTF();
        dataCriacao = objectInput.readLong();
        dataAtualizacao = objectInput.readLong();
        thumbnailFileEntryId = objectInput.readLong();
        thumbnailURL = objectInput.readUTF();
    }

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

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

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

        objectOutput.writeInt(estilo);
        objectOutput.writeBoolean(ativo);

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

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

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

        objectOutput.writeLong(dataCriacao);
        objectOutput.writeLong(dataAtualizacao);
        objectOutput.writeLong(thumbnailFileEntryId);

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