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

import br.mp.mprj.portal.portlet.gestaomensagens.service.model.Agendamento;
import br.mp.mprj.portal.portlet.gestaomensagens.service.model.AgendamentoModel;

import com.liferay.portal.kernel.bean.AutoEscapeBeanHandler;
import com.liferay.portal.kernel.util.DateUtil;
import com.liferay.portal.kernel.util.GetterUtil;
import com.liferay.portal.kernel.util.ProxyUtil;
import com.liferay.portal.kernel.util.StringBundler;
import com.liferay.portal.kernel.util.StringPool;
import com.liferay.portal.model.CacheModel;
import com.liferay.portal.model.impl.BaseModelImpl;
import com.liferay.portal.service.ServiceContext;

import com.liferay.portlet.expando.model.ExpandoBridge;
import com.liferay.portlet.expando.util.ExpandoBridgeFactoryUtil;

import java.io.Serializable;

import java.sql.Types;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

/**
 * The base model implementation for the Agendamento service. Represents a row in the &quot;PRT_GESTMSG_AGENDAMENTO&quot; database table, with each column mapped to a property of this class.
 *
 * <p>
 * This implementation and its corresponding interface {@link br.mp.mprj.portal.portlet.gestaomensagens.service.model.AgendamentoModel} exist only as a container for the default property accessors generated by ServiceBuilder. Helper methods and all application logic should be put in {@link AgendamentoImpl}.
 * </p>
 *
 * @author Henrique Simoes
 * @see AgendamentoImpl
 * @see br.mp.mprj.portal.portlet.gestaomensagens.service.model.Agendamento
 * @see br.mp.mprj.portal.portlet.gestaomensagens.service.model.AgendamentoModel
 * @generated
 */
public class AgendamentoModelImpl extends BaseModelImpl<Agendamento>
    implements AgendamentoModel {
    /*
     * NOTE FOR DEVELOPERS:
     *
     * Never modify or reference this class directly. All methods that expect a agendamento model instance should use the {@link br.mp.mprj.portal.portlet.gestaomensagens.service.model.Agendamento} interface instead.
     */
    public static final String TABLE_NAME = "PRT_GESTMSG_AGENDAMENTO";
    public static final Object[][] TABLE_COLUMNS = {
            { "uuid_", Types.VARCHAR },
            { "agendamentoId", Types.BIGINT },
            { "mensagemId", Types.BIGINT },
            { "companyId", Types.BIGINT },
            { "groupId", Types.BIGINT },
            { "tipoAgendamento", Types.INTEGER },
            { "dataCalendario", Types.TIMESTAMP },
            { "dataInicio", Types.TIMESTAMP },
            { "dataFim", Types.TIMESTAMP },
            { "padraoRecorrencia", Types.INTEGER },
            { "frequencia", Types.INTEGER },
            { "diarioTodos", Types.BOOLEAN },
            { "semanalDias", Types.VARCHAR },
            { "mensalDiaFrequencia", Types.INTEGER },
            { "dataAtualizacao", Types.TIMESTAMP },
            { "dataEnvio", Types.TIMESTAMP },
            { "situacaoEnvio", Types.INTEGER },
            { "erroEnvio", Types.BOOLEAN },
            { "mensagemErro", Types.VARCHAR }
        };
    public static final String TABLE_SQL_CREATE = "create table PRT_GESTMSG_AGENDAMENTO (uuid_ VARCHAR(75) null,agendamentoId LONG not null primary key,mensagemId LONG,companyId LONG,groupId LONG,tipoAgendamento INTEGER,dataCalendario DATE null,dataInicio DATE null,dataFim DATE null,padraoRecorrencia INTEGER,frequencia INTEGER,diarioTodos BOOLEAN,semanalDias VARCHAR(75) null,mensalDiaFrequencia INTEGER,dataAtualizacao DATE null,dataEnvio DATE null,situacaoEnvio INTEGER,erroEnvio BOOLEAN,mensagemErro VARCHAR(75) null)";
    public static final String TABLE_SQL_DROP = "drop table PRT_GESTMSG_AGENDAMENTO";
    public static final String ORDER_BY_JPQL = " ORDER BY agendamento.dataInicio ASC";
    public static final String ORDER_BY_SQL = " ORDER BY PRT_GESTMSG_AGENDAMENTO.dataInicio ASC";
    public static final String DATA_SOURCE = "liferayDataSource";
    public static final String SESSION_FACTORY = "liferaySessionFactory";
    public static final String TX_MANAGER = "liferayTransactionManager";
    public static final boolean ENTITY_CACHE_ENABLED = GetterUtil.getBoolean(com.liferay.util.service.ServiceProps.get(
                "value.object.entity.cache.enabled.br.mp.mprj.portal.portlet.gestaomensagens.service.model.Agendamento"),
            true);
    public static final boolean FINDER_CACHE_ENABLED = GetterUtil.getBoolean(com.liferay.util.service.ServiceProps.get(
                "value.object.finder.cache.enabled.br.mp.mprj.portal.portlet.gestaomensagens.service.model.Agendamento"),
            true);
    public static final boolean COLUMN_BITMASK_ENABLED = GetterUtil.getBoolean(com.liferay.util.service.ServiceProps.get(
                "value.object.column.bitmask.enabled.br.mp.mprj.portal.portlet.gestaomensagens.service.model.Agendamento"),
            true);
    public static long AGENDAMENTOID_COLUMN_BITMASK = 1L;
    public static long COMPANYID_COLUMN_BITMASK = 2L;
    public static long DATACALENDARIO_COLUMN_BITMASK = 4L;
    public static long GROUPID_COLUMN_BITMASK = 8L;
    public static long MENSAGEMID_COLUMN_BITMASK = 16L;
    public static long SITUACAOENVIO_COLUMN_BITMASK = 32L;
    public static long TIPOAGENDAMENTO_COLUMN_BITMASK = 64L;
    public static long UUID_COLUMN_BITMASK = 128L;
    public static long DATAINICIO_COLUMN_BITMASK = 256L;
    public static final long LOCK_EXPIRATION_TIME = GetterUtil.getLong(com.liferay.util.service.ServiceProps.get(
                "lock.expiration.time.br.mp.mprj.portal.portlet.gestaomensagens.service.model.Agendamento"));
    private static ClassLoader _classLoader = Agendamento.class.getClassLoader();
    private static Class<?>[] _escapedModelInterfaces = new Class[] {
            Agendamento.class
        };
    private String _uuid;
    private String _originalUuid;
    private long _agendamentoId;
    private long _originalAgendamentoId;
    private boolean _setOriginalAgendamentoId;
    private long _mensagemId;
    private long _originalMensagemId;
    private boolean _setOriginalMensagemId;
    private long _companyId;
    private long _originalCompanyId;
    private boolean _setOriginalCompanyId;
    private long _groupId;
    private long _originalGroupId;
    private boolean _setOriginalGroupId;
    private int _tipoAgendamento;
    private int _originalTipoAgendamento;
    private boolean _setOriginalTipoAgendamento;
    private Date _dataCalendario;
    private Date _originalDataCalendario;
    private Date _dataInicio;
    private Date _dataFim;
    private int _padraoRecorrencia;
    private int _frequencia;
    private boolean _diarioTodos;
    private String _semanalDias;
    private int _mensalDiaFrequencia;
    private Date _dataAtualizacao;
    private Date _dataEnvio;
    private int _situacaoEnvio;
    private int _originalSituacaoEnvio;
    private boolean _setOriginalSituacaoEnvio;
    private boolean _erroEnvio;
    private String _mensagemErro;
    private long _columnBitmask;
    private Agendamento _escapedModel;

    public AgendamentoModelImpl() {
    }

    @Override
    public long getPrimaryKey() {
        return _agendamentoId;
    }

    @Override
    public void setPrimaryKey(long primaryKey) {
        setAgendamentoId(primaryKey);
    }

    @Override
    public Serializable getPrimaryKeyObj() {
        return _agendamentoId;
    }

    @Override
    public void setPrimaryKeyObj(Serializable primaryKeyObj) {
        setPrimaryKey(((Long) primaryKeyObj).longValue());
    }

    @Override
    public Class<?> getModelClass() {
        return Agendamento.class;
    }

    @Override
    public String getModelClassName() {
        return Agendamento.class.getName();
    }

    @Override
    public Map<String, Object> getModelAttributes() {
        Map<String, Object> attributes = new HashMap<String, Object>();

        attributes.put("uuid", getUuid());
        attributes.put("agendamentoId", getAgendamentoId());
        attributes.put("mensagemId", getMensagemId());
        attributes.put("companyId", getCompanyId());
        attributes.put("groupId", getGroupId());
        attributes.put("tipoAgendamento", getTipoAgendamento());
        attributes.put("dataCalendario", getDataCalendario());
        attributes.put("dataInicio", getDataInicio());
        attributes.put("dataFim", getDataFim());
        attributes.put("padraoRecorrencia", getPadraoRecorrencia());
        attributes.put("frequencia", getFrequencia());
        attributes.put("diarioTodos", getDiarioTodos());
        attributes.put("semanalDias", getSemanalDias());
        attributes.put("mensalDiaFrequencia", getMensalDiaFrequencia());
        attributes.put("dataAtualizacao", getDataAtualizacao());
        attributes.put("dataEnvio", getDataEnvio());
        attributes.put("situacaoEnvio", getSituacaoEnvio());
        attributes.put("erroEnvio", getErroEnvio());
        attributes.put("mensagemErro", getMensagemErro());

        return attributes;
    }

    @Override
    public void setModelAttributes(Map<String, Object> attributes) {
        String uuid = (String) attributes.get("uuid");

        if (uuid != null) {
            setUuid(uuid);
        }

        Long agendamentoId = (Long) attributes.get("agendamentoId");

        if (agendamentoId != null) {
            setAgendamentoId(agendamentoId);
        }

        Long mensagemId = (Long) attributes.get("mensagemId");

        if (mensagemId != null) {
            setMensagemId(mensagemId);
        }

        Long companyId = (Long) attributes.get("companyId");

        if (companyId != null) {
            setCompanyId(companyId);
        }

        Long groupId = (Long) attributes.get("groupId");

        if (groupId != null) {
            setGroupId(groupId);
        }

        Integer tipoAgendamento = (Integer) attributes.get("tipoAgendamento");

        if (tipoAgendamento != null) {
            setTipoAgendamento(tipoAgendamento);
        }

        Date dataCalendario = (Date) attributes.get("dataCalendario");

        if (dataCalendario != null) {
            setDataCalendario(dataCalendario);
        }

        Date dataInicio = (Date) attributes.get("dataInicio");

        if (dataInicio != null) {
            setDataInicio(dataInicio);
        }

        Date dataFim = (Date) attributes.get("dataFim");

        if (dataFim != null) {
            setDataFim(dataFim);
        }

        Integer padraoRecorrencia = (Integer) attributes.get(
                "padraoRecorrencia");

        if (padraoRecorrencia != null) {
            setPadraoRecorrencia(padraoRecorrencia);
        }

        Integer frequencia = (Integer) attributes.get("frequencia");

        if (frequencia != null) {
            setFrequencia(frequencia);
        }

        Boolean diarioTodos = (Boolean) attributes.get("diarioTodos");

        if (diarioTodos != null) {
            setDiarioTodos(diarioTodos);
        }

        String semanalDias = (String) attributes.get("semanalDias");

        if (semanalDias != null) {
            setSemanalDias(semanalDias);
        }

        Integer mensalDiaFrequencia = (Integer) attributes.get(
                "mensalDiaFrequencia");

        if (mensalDiaFrequencia != null) {
            setMensalDiaFrequencia(mensalDiaFrequencia);
        }

        Date dataAtualizacao = (Date) attributes.get("dataAtualizacao");

        if (dataAtualizacao != null) {
            setDataAtualizacao(dataAtualizacao);
        }

        Date dataEnvio = (Date) attributes.get("dataEnvio");

        if (dataEnvio != null) {
            setDataEnvio(dataEnvio);
        }

        Integer situacaoEnvio = (Integer) attributes.get("situacaoEnvio");

        if (situacaoEnvio != null) {
            setSituacaoEnvio(situacaoEnvio);
        }

        Boolean erroEnvio = (Boolean) attributes.get("erroEnvio");

        if (erroEnvio != null) {
            setErroEnvio(erroEnvio);
        }

        String mensagemErro = (String) attributes.get("mensagemErro");

        if (mensagemErro != null) {
            setMensagemErro(mensagemErro);
        }
    }

    @Override
    public String getUuid() {
        if (_uuid == null) {
            return StringPool.BLANK;
        } else {
            return _uuid;
        }
    }

    @Override
    public void setUuid(String uuid) {
        if (_originalUuid == null) {
            _originalUuid = _uuid;
        }

        _uuid = uuid;
    }

    public String getOriginalUuid() {
        return GetterUtil.getString(_originalUuid);
    }

    @Override
    public long getAgendamentoId() {
        return _agendamentoId;
    }

    @Override
    public void setAgendamentoId(long agendamentoId) {
        _columnBitmask |= AGENDAMENTOID_COLUMN_BITMASK;

        if (!_setOriginalAgendamentoId) {
            _setOriginalAgendamentoId = true;

            _originalAgendamentoId = _agendamentoId;
        }

        _agendamentoId = agendamentoId;
    }

    public long getOriginalAgendamentoId() {
        return _originalAgendamentoId;
    }

    @Override
    public long getMensagemId() {
        return _mensagemId;
    }

    @Override
    public void setMensagemId(long mensagemId) {
        _columnBitmask |= MENSAGEMID_COLUMN_BITMASK;

        if (!_setOriginalMensagemId) {
            _setOriginalMensagemId = true;

            _originalMensagemId = _mensagemId;
        }

        _mensagemId = mensagemId;
    }

    public long getOriginalMensagemId() {
        return _originalMensagemId;
    }

    @Override
    public long getCompanyId() {
        return _companyId;
    }

    @Override
    public void setCompanyId(long companyId) {
        _columnBitmask |= COMPANYID_COLUMN_BITMASK;

        if (!_setOriginalCompanyId) {
            _setOriginalCompanyId = true;

            _originalCompanyId = _companyId;
        }

        _companyId = companyId;
    }

    public long getOriginalCompanyId() {
        return _originalCompanyId;
    }

    @Override
    public long getGroupId() {
        return _groupId;
    }

    @Override
    public void setGroupId(long groupId) {
        _columnBitmask |= GROUPID_COLUMN_BITMASK;

        if (!_setOriginalGroupId) {
            _setOriginalGroupId = true;

            _originalGroupId = _groupId;
        }

        _groupId = groupId;
    }

    public long getOriginalGroupId() {
        return _originalGroupId;
    }

    @Override
    public int getTipoAgendamento() {
        return _tipoAgendamento;
    }

    @Override
    public void setTipoAgendamento(int tipoAgendamento) {
        _columnBitmask |= TIPOAGENDAMENTO_COLUMN_BITMASK;

        if (!_setOriginalTipoAgendamento) {
            _setOriginalTipoAgendamento = true;

            _originalTipoAgendamento = _tipoAgendamento;
        }

        _tipoAgendamento = tipoAgendamento;
    }

    public int getOriginalTipoAgendamento() {
        return _originalTipoAgendamento;
    }

    @Override
    public Date getDataCalendario() {
        return _dataCalendario;
    }

    @Override
    public void setDataCalendario(Date dataCalendario) {
        _columnBitmask |= DATACALENDARIO_COLUMN_BITMASK;

        if (_originalDataCalendario == null) {
            _originalDataCalendario = _dataCalendario;
        }

        _dataCalendario = dataCalendario;
    }

    public Date getOriginalDataCalendario() {
        return _originalDataCalendario;
    }

    @Override
    public Date getDataInicio() {
        return _dataInicio;
    }

    @Override
    public void setDataInicio(Date dataInicio) {
        _columnBitmask = -1L;

        _dataInicio = dataInicio;
    }

    @Override
    public Date getDataFim() {
        return _dataFim;
    }

    @Override
    public void setDataFim(Date dataFim) {
        _dataFim = dataFim;
    }

    @Override
    public int getPadraoRecorrencia() {
        return _padraoRecorrencia;
    }

    @Override
    public void setPadraoRecorrencia(int padraoRecorrencia) {
        _padraoRecorrencia = padraoRecorrencia;
    }

    @Override
    public int getFrequencia() {
        return _frequencia;
    }

    @Override
    public void setFrequencia(int frequencia) {
        _frequencia = frequencia;
    }

    @Override
    public boolean getDiarioTodos() {
        return _diarioTodos;
    }

    @Override
    public boolean isDiarioTodos() {
        return _diarioTodos;
    }

    @Override
    public void setDiarioTodos(boolean diarioTodos) {
        _diarioTodos = diarioTodos;
    }

    @Override
    public String getSemanalDias() {
        if (_semanalDias == null) {
            return StringPool.BLANK;
        } else {
            return _semanalDias;
        }
    }

    @Override
    public void setSemanalDias(String semanalDias) {
        _semanalDias = semanalDias;
    }

    @Override
    public int getMensalDiaFrequencia() {
        return _mensalDiaFrequencia;
    }

    @Override
    public void setMensalDiaFrequencia(int mensalDiaFrequencia) {
        _mensalDiaFrequencia = mensalDiaFrequencia;
    }

    @Override
    public Date getDataAtualizacao() {
        return _dataAtualizacao;
    }

    @Override
    public void setDataAtualizacao(Date dataAtualizacao) {
        _dataAtualizacao = dataAtualizacao;
    }

    @Override
    public Date getDataEnvio() {
        return _dataEnvio;
    }

    @Override
    public void setDataEnvio(Date dataEnvio) {
        _dataEnvio = dataEnvio;
    }

    @Override
    public int getSituacaoEnvio() {
        return _situacaoEnvio;
    }

    @Override
    public void setSituacaoEnvio(int situacaoEnvio) {
        _columnBitmask |= SITUACAOENVIO_COLUMN_BITMASK;

        if (!_setOriginalSituacaoEnvio) {
            _setOriginalSituacaoEnvio = true;

            _originalSituacaoEnvio = _situacaoEnvio;
        }

        _situacaoEnvio = situacaoEnvio;
    }

    public int getOriginalSituacaoEnvio() {
        return _originalSituacaoEnvio;
    }

    @Override
    public boolean getErroEnvio() {
        return _erroEnvio;
    }

    @Override
    public boolean isErroEnvio() {
        return _erroEnvio;
    }

    @Override
    public void setErroEnvio(boolean erroEnvio) {
        _erroEnvio = erroEnvio;
    }

    @Override
    public String getMensagemErro() {
        if (_mensagemErro == null) {
            return StringPool.BLANK;
        } else {
            return _mensagemErro;
        }
    }

    @Override
    public void setMensagemErro(String mensagemErro) {
        _mensagemErro = mensagemErro;
    }

    public long getColumnBitmask() {
        return _columnBitmask;
    }

    @Override
    public ExpandoBridge getExpandoBridge() {
        return ExpandoBridgeFactoryUtil.getExpandoBridge(getCompanyId(),
            Agendamento.class.getName(), getPrimaryKey());
    }

    @Override
    public void setExpandoBridgeAttributes(ServiceContext serviceContext) {
        ExpandoBridge expandoBridge = getExpandoBridge();

        expandoBridge.setAttributes(serviceContext);
    }

    @Override
    public Agendamento toEscapedModel() {
        if (_escapedModel == null) {
            _escapedModel = (Agendamento) ProxyUtil.newProxyInstance(_classLoader,
                    _escapedModelInterfaces, new AutoEscapeBeanHandler(this));
        }

        return _escapedModel;
    }

    @Override
    public Object clone() {
        AgendamentoImpl agendamentoImpl = new AgendamentoImpl();

        agendamentoImpl.setUuid(getUuid());
        agendamentoImpl.setAgendamentoId(getAgendamentoId());
        agendamentoImpl.setMensagemId(getMensagemId());
        agendamentoImpl.setCompanyId(getCompanyId());
        agendamentoImpl.setGroupId(getGroupId());
        agendamentoImpl.setTipoAgendamento(getTipoAgendamento());
        agendamentoImpl.setDataCalendario(getDataCalendario());
        agendamentoImpl.setDataInicio(getDataInicio());
        agendamentoImpl.setDataFim(getDataFim());
        agendamentoImpl.setPadraoRecorrencia(getPadraoRecorrencia());
        agendamentoImpl.setFrequencia(getFrequencia());
        agendamentoImpl.setDiarioTodos(getDiarioTodos());
        agendamentoImpl.setSemanalDias(getSemanalDias());
        agendamentoImpl.setMensalDiaFrequencia(getMensalDiaFrequencia());
        agendamentoImpl.setDataAtualizacao(getDataAtualizacao());
        agendamentoImpl.setDataEnvio(getDataEnvio());
        agendamentoImpl.setSituacaoEnvio(getSituacaoEnvio());
        agendamentoImpl.setErroEnvio(getErroEnvio());
        agendamentoImpl.setMensagemErro(getMensagemErro());

        agendamentoImpl.resetOriginalValues();

        return agendamentoImpl;
    }

    @Override
    public int compareTo(Agendamento agendamento) {
        int value = 0;

        value = DateUtil.compareTo(getDataInicio(), agendamento.getDataInicio());

        if (value != 0) {
            return value;
        }

        return 0;
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }

        if (!(obj instanceof Agendamento)) {
            return false;
        }

        Agendamento agendamento = (Agendamento) obj;

        long primaryKey = agendamento.getPrimaryKey();

        if (getPrimaryKey() == primaryKey) {
            return true;
        } else {
            return false;
        }
    }

    @Override
    public int hashCode() {
        return (int) getPrimaryKey();
    }

    @Override
    public void resetOriginalValues() {
        AgendamentoModelImpl agendamentoModelImpl = this;

        agendamentoModelImpl._originalUuid = agendamentoModelImpl._uuid;

        agendamentoModelImpl._originalAgendamentoId = agendamentoModelImpl._agendamentoId;

        agendamentoModelImpl._setOriginalAgendamentoId = false;

        agendamentoModelImpl._originalMensagemId = agendamentoModelImpl._mensagemId;

        agendamentoModelImpl._setOriginalMensagemId = false;

        agendamentoModelImpl._originalCompanyId = agendamentoModelImpl._companyId;

        agendamentoModelImpl._setOriginalCompanyId = false;

        agendamentoModelImpl._originalGroupId = agendamentoModelImpl._groupId;

        agendamentoModelImpl._setOriginalGroupId = false;

        agendamentoModelImpl._originalTipoAgendamento = agendamentoModelImpl._tipoAgendamento;

        agendamentoModelImpl._setOriginalTipoAgendamento = false;

        agendamentoModelImpl._originalDataCalendario = agendamentoModelImpl._dataCalendario;

        agendamentoModelImpl._originalSituacaoEnvio = agendamentoModelImpl._situacaoEnvio;

        agendamentoModelImpl._setOriginalSituacaoEnvio = false;

        agendamentoModelImpl._columnBitmask = 0;
    }

    @Override
    public CacheModel<Agendamento> toCacheModel() {
        AgendamentoCacheModel agendamentoCacheModel = new AgendamentoCacheModel();

        agendamentoCacheModel.uuid = getUuid();

        String uuid = agendamentoCacheModel.uuid;

        if ((uuid != null) && (uuid.length() == 0)) {
            agendamentoCacheModel.uuid = null;
        }

        agendamentoCacheModel.agendamentoId = getAgendamentoId();

        agendamentoCacheModel.mensagemId = getMensagemId();

        agendamentoCacheModel.companyId = getCompanyId();

        agendamentoCacheModel.groupId = getGroupId();

        agendamentoCacheModel.tipoAgendamento = getTipoAgendamento();

        Date dataCalendario = getDataCalendario();

        if (dataCalendario != null) {
            agendamentoCacheModel.dataCalendario = dataCalendario.getTime();
        } else {
            agendamentoCacheModel.dataCalendario = Long.MIN_VALUE;
        }

        Date dataInicio = getDataInicio();

        if (dataInicio != null) {
            agendamentoCacheModel.dataInicio = dataInicio.getTime();
        } else {
            agendamentoCacheModel.dataInicio = Long.MIN_VALUE;
        }

        Date dataFim = getDataFim();

        if (dataFim != null) {
            agendamentoCacheModel.dataFim = dataFim.getTime();
        } else {
            agendamentoCacheModel.dataFim = Long.MIN_VALUE;
        }

        agendamentoCacheModel.padraoRecorrencia = getPadraoRecorrencia();

        agendamentoCacheModel.frequencia = getFrequencia();

        agendamentoCacheModel.diarioTodos = getDiarioTodos();

        agendamentoCacheModel.semanalDias = getSemanalDias();

        String semanalDias = agendamentoCacheModel.semanalDias;

        if ((semanalDias != null) && (semanalDias.length() == 0)) {
            agendamentoCacheModel.semanalDias = null;
        }

        agendamentoCacheModel.mensalDiaFrequencia = getMensalDiaFrequencia();

        Date dataAtualizacao = getDataAtualizacao();

        if (dataAtualizacao != null) {
            agendamentoCacheModel.dataAtualizacao = dataAtualizacao.getTime();
        } else {
            agendamentoCacheModel.dataAtualizacao = Long.MIN_VALUE;
        }

        Date dataEnvio = getDataEnvio();

        if (dataEnvio != null) {
            agendamentoCacheModel.dataEnvio = dataEnvio.getTime();
        } else {
            agendamentoCacheModel.dataEnvio = Long.MIN_VALUE;
        }

        agendamentoCacheModel.situacaoEnvio = getSituacaoEnvio();

        agendamentoCacheModel.erroEnvio = getErroEnvio();

        agendamentoCacheModel.mensagemErro = getMensagemErro();

        String mensagemErro = agendamentoCacheModel.mensagemErro;

        if ((mensagemErro != null) && (mensagemErro.length() == 0)) {
            agendamentoCacheModel.mensagemErro = null;
        }

        return agendamentoCacheModel;
    }

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

        sb.append("{uuid=");
        sb.append(getUuid());
        sb.append(", agendamentoId=");
        sb.append(getAgendamentoId());
        sb.append(", mensagemId=");
        sb.append(getMensagemId());
        sb.append(", companyId=");
        sb.append(getCompanyId());
        sb.append(", groupId=");
        sb.append(getGroupId());
        sb.append(", tipoAgendamento=");
        sb.append(getTipoAgendamento());
        sb.append(", dataCalendario=");
        sb.append(getDataCalendario());
        sb.append(", dataInicio=");
        sb.append(getDataInicio());
        sb.append(", dataFim=");
        sb.append(getDataFim());
        sb.append(", padraoRecorrencia=");
        sb.append(getPadraoRecorrencia());
        sb.append(", frequencia=");
        sb.append(getFrequencia());
        sb.append(", diarioTodos=");
        sb.append(getDiarioTodos());
        sb.append(", semanalDias=");
        sb.append(getSemanalDias());
        sb.append(", mensalDiaFrequencia=");
        sb.append(getMensalDiaFrequencia());
        sb.append(", dataAtualizacao=");
        sb.append(getDataAtualizacao());
        sb.append(", dataEnvio=");
        sb.append(getDataEnvio());
        sb.append(", situacaoEnvio=");
        sb.append(getSituacaoEnvio());
        sb.append(", erroEnvio=");
        sb.append(getErroEnvio());
        sb.append(", mensagemErro=");
        sb.append(getMensagemErro());
        sb.append("}");

        return sb.toString();
    }

    @Override
    public String toXmlString() {
        StringBundler sb = new StringBundler(61);

        sb.append("<model><model-name>");
        sb.append(
            "br.mp.mprj.portal.portlet.gestaomensagens.service.model.Agendamento");
        sb.append("</model-name>");

        sb.append(
            "<column><column-name>uuid</column-name><column-value><![CDATA[");
        sb.append(getUuid());
        sb.append("]]></column-value></column>");
        sb.append(
            "<column><column-name>agendamentoId</column-name><column-value><![CDATA[");
        sb.append(getAgendamentoId());
        sb.append("]]></column-value></column>");
        sb.append(
            "<column><column-name>mensagemId</column-name><column-value><![CDATA[");
        sb.append(getMensagemId());
        sb.append("]]></column-value></column>");
        sb.append(
            "<column><column-name>companyId</column-name><column-value><![CDATA[");
        sb.append(getCompanyId());
        sb.append("]]></column-value></column>");
        sb.append(
            "<column><column-name>groupId</column-name><column-value><![CDATA[");
        sb.append(getGroupId());
        sb.append("]]></column-value></column>");
        sb.append(
            "<column><column-name>tipoAgendamento</column-name><column-value><![CDATA[");
        sb.append(getTipoAgendamento());
        sb.append("]]></column-value></column>");
        sb.append(
            "<column><column-name>dataCalendario</column-name><column-value><![CDATA[");
        sb.append(getDataCalendario());
        sb.append("]]></column-value></column>");
        sb.append(
            "<column><column-name>dataInicio</column-name><column-value><![CDATA[");
        sb.append(getDataInicio());
        sb.append("]]></column-value></column>");
        sb.append(
            "<column><column-name>dataFim</column-name><column-value><![CDATA[");
        sb.append(getDataFim());
        sb.append("]]></column-value></column>");
        sb.append(
            "<column><column-name>padraoRecorrencia</column-name><column-value><![CDATA[");
        sb.append(getPadraoRecorrencia());
        sb.append("]]></column-value></column>");
        sb.append(
            "<column><column-name>frequencia</column-name><column-value><![CDATA[");
        sb.append(getFrequencia());
        sb.append("]]></column-value></column>");
        sb.append(
            "<column><column-name>diarioTodos</column-name><column-value><![CDATA[");
        sb.append(getDiarioTodos());
        sb.append("]]></column-value></column>");
        sb.append(
            "<column><column-name>semanalDias</column-name><column-value><![CDATA[");
        sb.append(getSemanalDias());
        sb.append("]]></column-value></column>");
        sb.append(
            "<column><column-name>mensalDiaFrequencia</column-name><column-value><![CDATA[");
        sb.append(getMensalDiaFrequencia());
        sb.append("]]></column-value></column>");
        sb.append(
            "<column><column-name>dataAtualizacao</column-name><column-value><![CDATA[");
        sb.append(getDataAtualizacao());
        sb.append("]]></column-value></column>");
        sb.append(
            "<column><column-name>dataEnvio</column-name><column-value><![CDATA[");
        sb.append(getDataEnvio());
        sb.append("]]></column-value></column>");
        sb.append(
            "<column><column-name>situacaoEnvio</column-name><column-value><![CDATA[");
        sb.append(getSituacaoEnvio());
        sb.append("]]></column-value></column>");
        sb.append(
            "<column><column-name>erroEnvio</column-name><column-value><![CDATA[");
        sb.append(getErroEnvio());
        sb.append("]]></column-value></column>");
        sb.append(
            "<column><column-name>mensagemErro</column-name><column-value><![CDATA[");
        sb.append(getMensagemErro());
        sb.append("]]></column-value></column>");

        sb.append("</model>");

        return sb.toString();
    }
}
