package br.mp.mprj.portal.portlet.gestaomensagens.service.service.base;

import br.mp.mprj.portal.portlet.gestaomensagens.service.model.Mensagem;
import br.mp.mprj.portal.portlet.gestaomensagens.service.service.MensagemService;
import br.mp.mprj.portal.portlet.gestaomensagens.service.service.persistence.AgendamentoFinder;
import br.mp.mprj.portal.portlet.gestaomensagens.service.service.persistence.AgendamentoPersistence;
import br.mp.mprj.portal.portlet.gestaomensagens.service.service.persistence.AnexoMensagemPersistence;
import br.mp.mprj.portal.portlet.gestaomensagens.service.service.persistence.EmailDestinatarioPersistence;
import br.mp.mprj.portal.portlet.gestaomensagens.service.service.persistence.GrupoDestinatarioPersistence;
import br.mp.mprj.portal.portlet.gestaomensagens.service.service.persistence.MensagemPersistence;
import br.mp.mprj.portal.portlet.gestaomensagens.service.service.persistence.MensagemWorkflowPersistence;
import br.mp.mprj.portal.portlet.gestaomensagens.service.service.persistence.TemplatePersistence;

import com.liferay.portal.kernel.bean.BeanReference;
import com.liferay.portal.kernel.bean.IdentifiableBean;
import com.liferay.portal.kernel.dao.jdbc.SqlUpdate;
import com.liferay.portal.kernel.dao.jdbc.SqlUpdateFactoryUtil;
import com.liferay.portal.kernel.exception.SystemException;
import com.liferay.portal.service.BaseServiceImpl;
import com.liferay.portal.service.persistence.UserPersistence;
import com.liferay.portal.service.persistence.WorkflowDefinitionLinkPersistence;
import com.liferay.portal.service.persistence.WorkflowInstanceLinkPersistence;

import com.liferay.portlet.asset.service.persistence.AssetEntryPersistence;

import javax.sql.DataSource;

/**
 * Provides the base implementation for the mensagem remote service.
 *
 * <p>
 * This implementation exists only as a container for the default service methods generated by ServiceBuilder. All custom service methods should be put in {@link br.mp.mprj.portal.portlet.gestaomensagens.service.service.impl.MensagemServiceImpl}.
 * </p>
 *
 * @author Henrique Simoes
 * @see br.mp.mprj.portal.portlet.gestaomensagens.service.service.impl.MensagemServiceImpl
 * @see br.mp.mprj.portal.portlet.gestaomensagens.service.service.MensagemServiceUtil
 * @generated
 */
public abstract class MensagemServiceBaseImpl extends BaseServiceImpl
    implements MensagemService, IdentifiableBean {
    @BeanReference(type = br.mp.mprj.portal.portlet.gestaomensagens.service.service.AgendamentoLocalService.class)
    protected br.mp.mprj.portal.portlet.gestaomensagens.service.service.AgendamentoLocalService agendamentoLocalService;
    @BeanReference(type = AgendamentoPersistence.class)
    protected AgendamentoPersistence agendamentoPersistence;
    @BeanReference(type = AgendamentoFinder.class)
    protected AgendamentoFinder agendamentoFinder;
    @BeanReference(type = br.mp.mprj.portal.portlet.gestaomensagens.service.service.AnexoMensagemLocalService.class)
    protected br.mp.mprj.portal.portlet.gestaomensagens.service.service.AnexoMensagemLocalService anexoMensagemLocalService;
    @BeanReference(type = AnexoMensagemPersistence.class)
    protected AnexoMensagemPersistence anexoMensagemPersistence;
    @BeanReference(type = br.mp.mprj.portal.portlet.gestaomensagens.service.service.EmailDestinatarioLocalService.class)
    protected br.mp.mprj.portal.portlet.gestaomensagens.service.service.EmailDestinatarioLocalService emailDestinatarioLocalService;
    @BeanReference(type = EmailDestinatarioPersistence.class)
    protected EmailDestinatarioPersistence emailDestinatarioPersistence;
    @BeanReference(type = br.mp.mprj.portal.portlet.gestaomensagens.service.service.GrupoDestinatarioLocalService.class)
    protected br.mp.mprj.portal.portlet.gestaomensagens.service.service.GrupoDestinatarioLocalService grupoDestinatarioLocalService;
    @BeanReference(type = br.mp.mprj.portal.portlet.gestaomensagens.service.service.GrupoDestinatarioService.class)
    protected br.mp.mprj.portal.portlet.gestaomensagens.service.service.GrupoDestinatarioService grupoDestinatarioService;
    @BeanReference(type = GrupoDestinatarioPersistence.class)
    protected GrupoDestinatarioPersistence grupoDestinatarioPersistence;
    @BeanReference(type = br.mp.mprj.portal.portlet.gestaomensagens.service.service.MensagemLocalService.class)
    protected br.mp.mprj.portal.portlet.gestaomensagens.service.service.MensagemLocalService mensagemLocalService;
    @BeanReference(type = br.mp.mprj.portal.portlet.gestaomensagens.service.service.MensagemService.class)
    protected br.mp.mprj.portal.portlet.gestaomensagens.service.service.MensagemService mensagemService;
    @BeanReference(type = MensagemPersistence.class)
    protected MensagemPersistence mensagemPersistence;
    @BeanReference(type = br.mp.mprj.portal.portlet.gestaomensagens.service.service.MensagemWorkflowLocalService.class)
    protected br.mp.mprj.portal.portlet.gestaomensagens.service.service.MensagemWorkflowLocalService mensagemWorkflowLocalService;
    @BeanReference(type = MensagemWorkflowPersistence.class)
    protected MensagemWorkflowPersistence mensagemWorkflowPersistence;
    @BeanReference(type = br.mp.mprj.portal.portlet.gestaomensagens.service.service.TemplateLocalService.class)
    protected br.mp.mprj.portal.portlet.gestaomensagens.service.service.TemplateLocalService templateLocalService;
    @BeanReference(type = br.mp.mprj.portal.portlet.gestaomensagens.service.service.TemplateService.class)
    protected br.mp.mprj.portal.portlet.gestaomensagens.service.service.TemplateService templateService;
    @BeanReference(type = TemplatePersistence.class)
    protected TemplatePersistence templatePersistence;
    @BeanReference(type = com.liferay.counter.service.CounterLocalService.class)
    protected com.liferay.counter.service.CounterLocalService counterLocalService;
    @BeanReference(type = com.liferay.portal.service.ResourceLocalService.class)
    protected com.liferay.portal.service.ResourceLocalService resourceLocalService;
    @BeanReference(type = com.liferay.portal.service.UserLocalService.class)
    protected com.liferay.portal.service.UserLocalService userLocalService;
    @BeanReference(type = com.liferay.portal.service.UserService.class)
    protected com.liferay.portal.service.UserService userService;
    @BeanReference(type = UserPersistence.class)
    protected UserPersistence userPersistence;
    @BeanReference(type = com.liferay.portal.service.WorkflowDefinitionLinkLocalService.class)
    protected com.liferay.portal.service.WorkflowDefinitionLinkLocalService workflowDefinitionLinkLocalService;
    @BeanReference(type = WorkflowDefinitionLinkPersistence.class)
    protected WorkflowDefinitionLinkPersistence workflowDefinitionLinkPersistence;
    @BeanReference(type = com.liferay.portal.service.WorkflowInstanceLinkLocalService.class)
    protected com.liferay.portal.service.WorkflowInstanceLinkLocalService workflowInstanceLinkLocalService;
    @BeanReference(type = WorkflowInstanceLinkPersistence.class)
    protected WorkflowInstanceLinkPersistence workflowInstanceLinkPersistence;
    @BeanReference(type = com.liferay.portlet.asset.service.AssetEntryLocalService.class)
    protected com.liferay.portlet.asset.service.AssetEntryLocalService assetEntryLocalService;
    @BeanReference(type = com.liferay.portlet.asset.service.AssetEntryService.class)
    protected com.liferay.portlet.asset.service.AssetEntryService assetEntryService;
    @BeanReference(type = AssetEntryPersistence.class)
    protected AssetEntryPersistence assetEntryPersistence;
    private String _beanIdentifier;
    private ClassLoader _classLoader;
    private MensagemServiceClpInvoker _clpInvoker = new MensagemServiceClpInvoker();

    /*
     * NOTE FOR DEVELOPERS:
     *
     * Never modify or reference this class directly. Always use {@link br.mp.mprj.portal.portlet.gestaomensagens.service.service.MensagemServiceUtil} to access the mensagem remote service.
     */

    /**
     * Returns the agendamento local service.
     *
     * @return the agendamento local service
     */
    public br.mp.mprj.portal.portlet.gestaomensagens.service.service.AgendamentoLocalService getAgendamentoLocalService() {
        return agendamentoLocalService;
    }

    /**
     * Sets the agendamento local service.
     *
     * @param agendamentoLocalService the agendamento local service
     */
    public void setAgendamentoLocalService(
        br.mp.mprj.portal.portlet.gestaomensagens.service.service.AgendamentoLocalService agendamentoLocalService) {
        this.agendamentoLocalService = agendamentoLocalService;
    }

    /**
     * Returns the agendamento persistence.
     *
     * @return the agendamento persistence
     */
    public AgendamentoPersistence getAgendamentoPersistence() {
        return agendamentoPersistence;
    }

    /**
     * Sets the agendamento persistence.
     *
     * @param agendamentoPersistence the agendamento persistence
     */
    public void setAgendamentoPersistence(
        AgendamentoPersistence agendamentoPersistence) {
        this.agendamentoPersistence = agendamentoPersistence;
    }

    /**
     * Returns the agendamento finder.
     *
     * @return the agendamento finder
     */
    public AgendamentoFinder getAgendamentoFinder() {
        return agendamentoFinder;
    }

    /**
     * Sets the agendamento finder.
     *
     * @param agendamentoFinder the agendamento finder
     */
    public void setAgendamentoFinder(AgendamentoFinder agendamentoFinder) {
        this.agendamentoFinder = agendamentoFinder;
    }

    /**
     * Returns the anexo mensagem local service.
     *
     * @return the anexo mensagem local service
     */
    public br.mp.mprj.portal.portlet.gestaomensagens.service.service.AnexoMensagemLocalService getAnexoMensagemLocalService() {
        return anexoMensagemLocalService;
    }

    /**
     * Sets the anexo mensagem local service.
     *
     * @param anexoMensagemLocalService the anexo mensagem local service
     */
    public void setAnexoMensagemLocalService(
        br.mp.mprj.portal.portlet.gestaomensagens.service.service.AnexoMensagemLocalService anexoMensagemLocalService) {
        this.anexoMensagemLocalService = anexoMensagemLocalService;
    }

    /**
     * Returns the anexo mensagem persistence.
     *
     * @return the anexo mensagem persistence
     */
    public AnexoMensagemPersistence getAnexoMensagemPersistence() {
        return anexoMensagemPersistence;
    }

    /**
     * Sets the anexo mensagem persistence.
     *
     * @param anexoMensagemPersistence the anexo mensagem persistence
     */
    public void setAnexoMensagemPersistence(
        AnexoMensagemPersistence anexoMensagemPersistence) {
        this.anexoMensagemPersistence = anexoMensagemPersistence;
    }

    /**
     * Returns the email destinatario local service.
     *
     * @return the email destinatario local service
     */
    public br.mp.mprj.portal.portlet.gestaomensagens.service.service.EmailDestinatarioLocalService getEmailDestinatarioLocalService() {
        return emailDestinatarioLocalService;
    }

    /**
     * Sets the email destinatario local service.
     *
     * @param emailDestinatarioLocalService the email destinatario local service
     */
    public void setEmailDestinatarioLocalService(
        br.mp.mprj.portal.portlet.gestaomensagens.service.service.EmailDestinatarioLocalService emailDestinatarioLocalService) {
        this.emailDestinatarioLocalService = emailDestinatarioLocalService;
    }

    /**
     * Returns the email destinatario persistence.
     *
     * @return the email destinatario persistence
     */
    public EmailDestinatarioPersistence getEmailDestinatarioPersistence() {
        return emailDestinatarioPersistence;
    }

    /**
     * Sets the email destinatario persistence.
     *
     * @param emailDestinatarioPersistence the email destinatario persistence
     */
    public void setEmailDestinatarioPersistence(
        EmailDestinatarioPersistence emailDestinatarioPersistence) {
        this.emailDestinatarioPersistence = emailDestinatarioPersistence;
    }

    /**
     * Returns the grupo destinatario local service.
     *
     * @return the grupo destinatario local service
     */
    public br.mp.mprj.portal.portlet.gestaomensagens.service.service.GrupoDestinatarioLocalService getGrupoDestinatarioLocalService() {
        return grupoDestinatarioLocalService;
    }

    /**
     * Sets the grupo destinatario local service.
     *
     * @param grupoDestinatarioLocalService the grupo destinatario local service
     */
    public void setGrupoDestinatarioLocalService(
        br.mp.mprj.portal.portlet.gestaomensagens.service.service.GrupoDestinatarioLocalService grupoDestinatarioLocalService) {
        this.grupoDestinatarioLocalService = grupoDestinatarioLocalService;
    }

    /**
     * Returns the grupo destinatario remote service.
     *
     * @return the grupo destinatario remote service
     */
    public br.mp.mprj.portal.portlet.gestaomensagens.service.service.GrupoDestinatarioService getGrupoDestinatarioService() {
        return grupoDestinatarioService;
    }

    /**
     * Sets the grupo destinatario remote service.
     *
     * @param grupoDestinatarioService the grupo destinatario remote service
     */
    public void setGrupoDestinatarioService(
        br.mp.mprj.portal.portlet.gestaomensagens.service.service.GrupoDestinatarioService grupoDestinatarioService) {
        this.grupoDestinatarioService = grupoDestinatarioService;
    }

    /**
     * Returns the grupo destinatario persistence.
     *
     * @return the grupo destinatario persistence
     */
    public GrupoDestinatarioPersistence getGrupoDestinatarioPersistence() {
        return grupoDestinatarioPersistence;
    }

    /**
     * Sets the grupo destinatario persistence.
     *
     * @param grupoDestinatarioPersistence the grupo destinatario persistence
     */
    public void setGrupoDestinatarioPersistence(
        GrupoDestinatarioPersistence grupoDestinatarioPersistence) {
        this.grupoDestinatarioPersistence = grupoDestinatarioPersistence;
    }

    /**
     * Returns the mensagem local service.
     *
     * @return the mensagem local service
     */
    public br.mp.mprj.portal.portlet.gestaomensagens.service.service.MensagemLocalService getMensagemLocalService() {
        return mensagemLocalService;
    }

    /**
     * Sets the mensagem local service.
     *
     * @param mensagemLocalService the mensagem local service
     */
    public void setMensagemLocalService(
        br.mp.mprj.portal.portlet.gestaomensagens.service.service.MensagemLocalService mensagemLocalService) {
        this.mensagemLocalService = mensagemLocalService;
    }

    /**
     * Returns the mensagem remote service.
     *
     * @return the mensagem remote service
     */
    public br.mp.mprj.portal.portlet.gestaomensagens.service.service.MensagemService getMensagemService() {
        return mensagemService;
    }

    /**
     * Sets the mensagem remote service.
     *
     * @param mensagemService the mensagem remote service
     */
    public void setMensagemService(
        br.mp.mprj.portal.portlet.gestaomensagens.service.service.MensagemService mensagemService) {
        this.mensagemService = mensagemService;
    }

    /**
     * Returns the mensagem persistence.
     *
     * @return the mensagem persistence
     */
    public MensagemPersistence getMensagemPersistence() {
        return mensagemPersistence;
    }

    /**
     * Sets the mensagem persistence.
     *
     * @param mensagemPersistence the mensagem persistence
     */
    public void setMensagemPersistence(MensagemPersistence mensagemPersistence) {
        this.mensagemPersistence = mensagemPersistence;
    }

    /**
     * Returns the mensagem workflow local service.
     *
     * @return the mensagem workflow local service
     */
    public br.mp.mprj.portal.portlet.gestaomensagens.service.service.MensagemWorkflowLocalService getMensagemWorkflowLocalService() {
        return mensagemWorkflowLocalService;
    }

    /**
     * Sets the mensagem workflow local service.
     *
     * @param mensagemWorkflowLocalService the mensagem workflow local service
     */
    public void setMensagemWorkflowLocalService(
        br.mp.mprj.portal.portlet.gestaomensagens.service.service.MensagemWorkflowLocalService mensagemWorkflowLocalService) {
        this.mensagemWorkflowLocalService = mensagemWorkflowLocalService;
    }

    /**
     * Returns the mensagem workflow persistence.
     *
     * @return the mensagem workflow persistence
     */
    public MensagemWorkflowPersistence getMensagemWorkflowPersistence() {
        return mensagemWorkflowPersistence;
    }

    /**
     * Sets the mensagem workflow persistence.
     *
     * @param mensagemWorkflowPersistence the mensagem workflow persistence
     */
    public void setMensagemWorkflowPersistence(
        MensagemWorkflowPersistence mensagemWorkflowPersistence) {
        this.mensagemWorkflowPersistence = mensagemWorkflowPersistence;
    }

    /**
     * Returns the template local service.
     *
     * @return the template local service
     */
    public br.mp.mprj.portal.portlet.gestaomensagens.service.service.TemplateLocalService getTemplateLocalService() {
        return templateLocalService;
    }

    /**
     * Sets the template local service.
     *
     * @param templateLocalService the template local service
     */
    public void setTemplateLocalService(
        br.mp.mprj.portal.portlet.gestaomensagens.service.service.TemplateLocalService templateLocalService) {
        this.templateLocalService = templateLocalService;
    }

    /**
     * Returns the template remote service.
     *
     * @return the template remote service
     */
    public br.mp.mprj.portal.portlet.gestaomensagens.service.service.TemplateService getTemplateService() {
        return templateService;
    }

    /**
     * Sets the template remote service.
     *
     * @param templateService the template remote service
     */
    public void setTemplateService(
        br.mp.mprj.portal.portlet.gestaomensagens.service.service.TemplateService templateService) {
        this.templateService = templateService;
    }

    /**
     * Returns the template persistence.
     *
     * @return the template persistence
     */
    public TemplatePersistence getTemplatePersistence() {
        return templatePersistence;
    }

    /**
     * Sets the template persistence.
     *
     * @param templatePersistence the template persistence
     */
    public void setTemplatePersistence(TemplatePersistence templatePersistence) {
        this.templatePersistence = templatePersistence;
    }

    /**
     * Returns the counter local service.
     *
     * @return the counter local service
     */
    public com.liferay.counter.service.CounterLocalService getCounterLocalService() {
        return counterLocalService;
    }

    /**
     * Sets the counter local service.
     *
     * @param counterLocalService the counter local service
     */
    public void setCounterLocalService(
        com.liferay.counter.service.CounterLocalService counterLocalService) {
        this.counterLocalService = counterLocalService;
    }

    /**
     * Returns the resource local service.
     *
     * @return the resource local service
     */
    public com.liferay.portal.service.ResourceLocalService getResourceLocalService() {
        return resourceLocalService;
    }

    /**
     * Sets the resource local service.
     *
     * @param resourceLocalService the resource local service
     */
    public void setResourceLocalService(
        com.liferay.portal.service.ResourceLocalService resourceLocalService) {
        this.resourceLocalService = resourceLocalService;
    }

    /**
     * Returns the user local service.
     *
     * @return the user local service
     */
    public com.liferay.portal.service.UserLocalService getUserLocalService() {
        return userLocalService;
    }

    /**
     * Sets the user local service.
     *
     * @param userLocalService the user local service
     */
    public void setUserLocalService(
        com.liferay.portal.service.UserLocalService userLocalService) {
        this.userLocalService = userLocalService;
    }

    /**
     * Returns the user remote service.
     *
     * @return the user remote service
     */
    public com.liferay.portal.service.UserService getUserService() {
        return userService;
    }

    /**
     * Sets the user remote service.
     *
     * @param userService the user remote service
     */
    public void setUserService(
        com.liferay.portal.service.UserService userService) {
        this.userService = userService;
    }

    /**
     * Returns the user persistence.
     *
     * @return the user persistence
     */
    public UserPersistence getUserPersistence() {
        return userPersistence;
    }

    /**
     * Sets the user persistence.
     *
     * @param userPersistence the user persistence
     */
    public void setUserPersistence(UserPersistence userPersistence) {
        this.userPersistence = userPersistence;
    }

    /**
     * Returns the workflow definition link local service.
     *
     * @return the workflow definition link local service
     */
    public com.liferay.portal.service.WorkflowDefinitionLinkLocalService getWorkflowDefinitionLinkLocalService() {
        return workflowDefinitionLinkLocalService;
    }

    /**
     * Sets the workflow definition link local service.
     *
     * @param workflowDefinitionLinkLocalService the workflow definition link local service
     */
    public void setWorkflowDefinitionLinkLocalService(
        com.liferay.portal.service.WorkflowDefinitionLinkLocalService workflowDefinitionLinkLocalService) {
        this.workflowDefinitionLinkLocalService = workflowDefinitionLinkLocalService;
    }

    /**
     * Returns the workflow definition link persistence.
     *
     * @return the workflow definition link persistence
     */
    public WorkflowDefinitionLinkPersistence getWorkflowDefinitionLinkPersistence() {
        return workflowDefinitionLinkPersistence;
    }

    /**
     * Sets the workflow definition link persistence.
     *
     * @param workflowDefinitionLinkPersistence the workflow definition link persistence
     */
    public void setWorkflowDefinitionLinkPersistence(
        WorkflowDefinitionLinkPersistence workflowDefinitionLinkPersistence) {
        this.workflowDefinitionLinkPersistence = workflowDefinitionLinkPersistence;
    }

    /**
     * Returns the workflow instance link local service.
     *
     * @return the workflow instance link local service
     */
    public com.liferay.portal.service.WorkflowInstanceLinkLocalService getWorkflowInstanceLinkLocalService() {
        return workflowInstanceLinkLocalService;
    }

    /**
     * Sets the workflow instance link local service.
     *
     * @param workflowInstanceLinkLocalService the workflow instance link local service
     */
    public void setWorkflowInstanceLinkLocalService(
        com.liferay.portal.service.WorkflowInstanceLinkLocalService workflowInstanceLinkLocalService) {
        this.workflowInstanceLinkLocalService = workflowInstanceLinkLocalService;
    }

    /**
     * Returns the workflow instance link persistence.
     *
     * @return the workflow instance link persistence
     */
    public WorkflowInstanceLinkPersistence getWorkflowInstanceLinkPersistence() {
        return workflowInstanceLinkPersistence;
    }

    /**
     * Sets the workflow instance link persistence.
     *
     * @param workflowInstanceLinkPersistence the workflow instance link persistence
     */
    public void setWorkflowInstanceLinkPersistence(
        WorkflowInstanceLinkPersistence workflowInstanceLinkPersistence) {
        this.workflowInstanceLinkPersistence = workflowInstanceLinkPersistence;
    }

    /**
     * Returns the asset entry local service.
     *
     * @return the asset entry local service
     */
    public com.liferay.portlet.asset.service.AssetEntryLocalService getAssetEntryLocalService() {
        return assetEntryLocalService;
    }

    /**
     * Sets the asset entry local service.
     *
     * @param assetEntryLocalService the asset entry local service
     */
    public void setAssetEntryLocalService(
        com.liferay.portlet.asset.service.AssetEntryLocalService assetEntryLocalService) {
        this.assetEntryLocalService = assetEntryLocalService;
    }

    /**
     * Returns the asset entry remote service.
     *
     * @return the asset entry remote service
     */
    public com.liferay.portlet.asset.service.AssetEntryService getAssetEntryService() {
        return assetEntryService;
    }

    /**
     * Sets the asset entry remote service.
     *
     * @param assetEntryService the asset entry remote service
     */
    public void setAssetEntryService(
        com.liferay.portlet.asset.service.AssetEntryService assetEntryService) {
        this.assetEntryService = assetEntryService;
    }

    /**
     * Returns the asset entry persistence.
     *
     * @return the asset entry persistence
     */
    public AssetEntryPersistence getAssetEntryPersistence() {
        return assetEntryPersistence;
    }

    /**
     * Sets the asset entry persistence.
     *
     * @param assetEntryPersistence the asset entry persistence
     */
    public void setAssetEntryPersistence(
        AssetEntryPersistence assetEntryPersistence) {
        this.assetEntryPersistence = assetEntryPersistence;
    }

    public void afterPropertiesSet() {
        Class<?> clazz = getClass();

        _classLoader = clazz.getClassLoader();
    }

    public void destroy() {
    }

    /**
     * Returns the Spring bean ID for this bean.
     *
     * @return the Spring bean ID for this bean
     */
    @Override
    public String getBeanIdentifier() {
        return _beanIdentifier;
    }

    /**
     * Sets the Spring bean ID for this bean.
     *
     * @param beanIdentifier the Spring bean ID for this bean
     */
    @Override
    public void setBeanIdentifier(String beanIdentifier) {
        _beanIdentifier = beanIdentifier;
    }

    @Override
    public Object invokeMethod(String name, String[] parameterTypes,
        Object[] arguments) throws Throwable {
        Thread currentThread = Thread.currentThread();

        ClassLoader contextClassLoader = currentThread.getContextClassLoader();

        if (contextClassLoader != _classLoader) {
            currentThread.setContextClassLoader(_classLoader);
        }

        try {
            return _clpInvoker.invokeMethod(name, parameterTypes, arguments);
        } finally {
            if (contextClassLoader != _classLoader) {
                currentThread.setContextClassLoader(contextClassLoader);
            }
        }
    }

    protected Class<?> getModelClass() {
        return Mensagem.class;
    }

    protected String getModelClassName() {
        return Mensagem.class.getName();
    }

    /**
     * Performs an SQL query.
     *
     * @param sql the sql query
     */
    protected void runSQL(String sql) throws SystemException {
        try {
            DataSource dataSource = mensagemPersistence.getDataSource();

            SqlUpdate sqlUpdate = SqlUpdateFactoryUtil.getSqlUpdate(dataSource,
                    sql, new int[0]);

            sqlUpdate.update();
        } catch (Exception e) {
            throw new SystemException(e);
        }
    }
}
