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

import com.liferay.portal.kernel.bean.PortletBeanLocatorUtil;
import com.liferay.portal.kernel.util.ReferenceRegistry;
import com.liferay.portal.service.InvokableService;

/**
 * Provides the remote service utility for Mensagem. This utility wraps
 * {@link br.mp.mprj.portal.portlet.gestaomensagens.service.service.impl.MensagemServiceImpl} and is the
 * primary access point for service operations in application layer code running
 * on a remote server. Methods of this service are expected to have security
 * checks based on the propagated JAAS credentials because this service can be
 * accessed remotely.
 *
 * @author Henrique Simoes
 * @see MensagemService
 * @see br.mp.mprj.portal.portlet.gestaomensagens.service.service.base.MensagemServiceBaseImpl
 * @see br.mp.mprj.portal.portlet.gestaomensagens.service.service.impl.MensagemServiceImpl
 * @generated
 */
public class MensagemServiceUtil {
    private static MensagemService _service;

    /*
     * NOTE FOR DEVELOPERS:
     *
     * Never modify this class directly. Add custom service methods to {@link br.mp.mprj.portal.portlet.gestaomensagens.service.service.impl.MensagemServiceImpl} and rerun ServiceBuilder to regenerate this class.
     */

    /**
    * Returns the Spring bean ID for this bean.
    *
    * @return the Spring bean ID for this bean
    */
    public static java.lang.String getBeanIdentifier() {
        return getService().getBeanIdentifier();
    }

    /**
    * Sets the Spring bean ID for this bean.
    *
    * @param beanIdentifier the Spring bean ID for this bean
    */
    public static void setBeanIdentifier(java.lang.String beanIdentifier) {
        getService().setBeanIdentifier(beanIdentifier);
    }

    public static java.lang.Object invokeMethod(java.lang.String name,
        java.lang.String[] parameterTypes, java.lang.Object[] arguments)
        throws java.lang.Throwable {
        return getService().invokeMethod(name, parameterTypes, arguments);
    }

    /**
    * Servico responsavel por criar e enviar uma mensagem.
    *
    * @param assunto - Assunto da mensagem.
    * @param conteudo - HTML ou texto da mensagem.
    * @param nomeSolicitante - Nome do responsavel pela solicitacao da mensagem.
    * @param emailSolicitante - Email do solicitante.
    * @param contaDeSaidaId - Indetificador da Conta de Saida.
    * @param prioridade - Prioridade da Mensagem.
    * @param listaDestinatarioIds - Identificadores das listas de Destinatarios.
    * @param userId - Identificador do usuario no Liferay.
    * @param groupId - Identificador do Grupo do Usuario no Liferay.
    * @param companyId - Identificador da Empresa no Liferay.
    * @throws SystemException - Em caso de falha.
    Url de chamada do envia-mensagem WS : http://servidor/api/jsonws/invoke
    */
    public static br.mp.mprj.portal.portlet.gestaomensagens.ws.vo.MensagemRetorno enviaMensagem(
        java.lang.String assunto, java.lang.String conteudo,
        java.lang.String nomeSolicitante, java.lang.String emailSolicitante,
        long contaDeSaidaId, int prioridade,
        java.lang.String listaDestinatarioIds, java.lang.String dataHoraEnvio) {
        return getService()
                   .enviaMensagem(assunto, conteudo, nomeSolicitante,
            emailSolicitante, contaDeSaidaId, prioridade, listaDestinatarioIds,
            dataHoraEnvio);
    }

    public static void clearService() {
        _service = null;
    }

    public static MensagemService getService() {
        if (_service == null) {
            InvokableService invokableService = (InvokableService) PortletBeanLocatorUtil.locate(ClpSerializer.getServletContextName(),
                    MensagemService.class.getName());

            if (invokableService instanceof MensagemService) {
                _service = (MensagemService) invokableService;
            } else {
                _service = new MensagemServiceClp(invokableService);
            }

            ReferenceRegistry.registerReference(MensagemServiceUtil.class,
                "_service");
        }

        return _service;
    }

    /**
     * @deprecated As of 6.2.0
     */
    public void setService(MensagemService service) {
    }
}
