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

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

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 AnexoMensagem in entity cache.
 *
 * @author Henrique Simoes
 * @see AnexoMensagem
 * @generated
 */
public class AnexoMensagemCacheModel implements CacheModel<AnexoMensagem>,
    Externalizable {
    public String uuid;
    public long anexoMensagemId;
    public long mensagemId;
    public long companyId;
    public long groupId;
    public long userId;
    public long dataCriacao;
    public String anexoUrl;
    public String fileName;
    public String versao;
    public String contentType;
    public boolean ativo;
    public long anexoFileEntryId;
    public String anexoPath;

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

        sb.append("{uuid=");
        sb.append(uuid);
        sb.append(", anexoMensagemId=");
        sb.append(anexoMensagemId);
        sb.append(", mensagemId=");
        sb.append(mensagemId);
        sb.append(", companyId=");
        sb.append(companyId);
        sb.append(", groupId=");
        sb.append(groupId);
        sb.append(", userId=");
        sb.append(userId);
        sb.append(", dataCriacao=");
        sb.append(dataCriacao);
        sb.append(", anexoUrl=");
        sb.append(anexoUrl);
        sb.append(", fileName=");
        sb.append(fileName);
        sb.append(", versao=");
        sb.append(versao);
        sb.append(", contentType=");
        sb.append(contentType);
        sb.append(", ativo=");
        sb.append(ativo);
        sb.append(", anexoFileEntryId=");
        sb.append(anexoFileEntryId);
        sb.append(", anexoPath=");
        sb.append(anexoPath);
        sb.append("}");

        return sb.toString();
    }

    @Override
    public AnexoMensagem toEntityModel() {
        AnexoMensagemImpl anexoMensagemImpl = new AnexoMensagemImpl();

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

        anexoMensagemImpl.setAnexoMensagemId(anexoMensagemId);
        anexoMensagemImpl.setMensagemId(mensagemId);
        anexoMensagemImpl.setCompanyId(companyId);
        anexoMensagemImpl.setGroupId(groupId);
        anexoMensagemImpl.setUserId(userId);

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

        if (anexoUrl == null) {
            anexoMensagemImpl.setAnexoUrl(StringPool.BLANK);
        } else {
            anexoMensagemImpl.setAnexoUrl(anexoUrl);
        }

        if (fileName == null) {
            anexoMensagemImpl.setFileName(StringPool.BLANK);
        } else {
            anexoMensagemImpl.setFileName(fileName);
        }

        if (versao == null) {
            anexoMensagemImpl.setVersao(StringPool.BLANK);
        } else {
            anexoMensagemImpl.setVersao(versao);
        }

        if (contentType == null) {
            anexoMensagemImpl.setContentType(StringPool.BLANK);
        } else {
            anexoMensagemImpl.setContentType(contentType);
        }

        anexoMensagemImpl.setAtivo(ativo);
        anexoMensagemImpl.setAnexoFileEntryId(anexoFileEntryId);

        if (anexoPath == null) {
            anexoMensagemImpl.setAnexoPath(StringPool.BLANK);
        } else {
            anexoMensagemImpl.setAnexoPath(anexoPath);
        }

        anexoMensagemImpl.resetOriginalValues();

        return anexoMensagemImpl;
    }

    @Override
    public void readExternal(ObjectInput objectInput) throws IOException {
        uuid = objectInput.readUTF();
        anexoMensagemId = objectInput.readLong();
        mensagemId = objectInput.readLong();
        companyId = objectInput.readLong();
        groupId = objectInput.readLong();
        userId = objectInput.readLong();
        dataCriacao = objectInput.readLong();
        anexoUrl = objectInput.readUTF();
        fileName = objectInput.readUTF();
        versao = objectInput.readUTF();
        contentType = objectInput.readUTF();
        ativo = objectInput.readBoolean();
        anexoFileEntryId = objectInput.readLong();
        anexoPath = objectInput.readUTF();
    }

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

        objectOutput.writeLong(anexoMensagemId);
        objectOutput.writeLong(mensagemId);
        objectOutput.writeLong(companyId);
        objectOutput.writeLong(groupId);
        objectOutput.writeLong(userId);
        objectOutput.writeLong(dataCriacao);

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

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

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

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

        objectOutput.writeBoolean(ativo);
        objectOutput.writeLong(anexoFileEntryId);

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