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

import br.mp.mprj.portal.portlet.gestaomensagens.service.service.MensagemServiceUtil;

import com.liferay.portal.kernel.log.Log;
import com.liferay.portal.kernel.log.LogFactoryUtil;

import java.rmi.RemoteException;

/**
 * Provides the SOAP utility for the
 * {@link br.mp.mprj.portal.portlet.gestaomensagens.service.service.MensagemServiceUtil} service utility. The
 * static methods of this class calls the same methods of the service utility.
 * However, the signatures are different because it is difficult for SOAP to
 * support certain types.
 *
 * <p>
 * ServiceBuilder follows certain rules in translating the methods. For example,
 * if the method in the service utility returns a {@link java.util.List}, that
 * is translated to an array of {@link br.mp.mprj.portal.portlet.gestaomensagens.service.model.MensagemSoap}.
 * If the method in the service utility returns a
 * {@link br.mp.mprj.portal.portlet.gestaomensagens.service.model.Mensagem}, that is translated to a
 * {@link br.mp.mprj.portal.portlet.gestaomensagens.service.model.MensagemSoap}. Methods that SOAP cannot
 * safely wire are skipped.
 * </p>
 *
 * <p>
 * The benefits of using the SOAP utility is that it is cross platform
 * compatible. SOAP allows different languages like Java, .NET, C++, PHP, and
 * even Perl, to call the generated services. One drawback of SOAP is that it is
 * slow because it needs to serialize all calls into a text format (XML).
 * </p>
 *
 * <p>
 * You can see a list of services at http://localhost:8080/api/axis. Set the
 * property <b>axis.servlet.hosts.allowed</b> in portal.properties to configure
 * security.
 * </p>
 *
 * <p>
 * The SOAP utility is only generated for remote services.
 * </p>
 *
 * @author Henrique Simoes
 * @see MensagemServiceHttp
 * @see br.mp.mprj.portal.portlet.gestaomensagens.service.model.MensagemSoap
 * @see br.mp.mprj.portal.portlet.gestaomensagens.service.service.MensagemServiceUtil
 * @generated
 */
public class MensagemServiceSoap {
    private static Log _log = LogFactoryUtil.getLog(MensagemServiceSoap.class);

    /**
    * 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)
        throws RemoteException {
        try {
            br.mp.mprj.portal.portlet.gestaomensagens.ws.vo.MensagemRetorno returnValue =
                MensagemServiceUtil.enviaMensagem(assunto, conteudo,
                    nomeSolicitante, emailSolicitante, contaDeSaidaId,
                    prioridade, listaDestinatarioIds, dataHoraEnvio);

            return returnValue;
        } catch (Exception e) {
            _log.error(e, e);

            throw new RemoteException(e.getMessage());
        }
    }
}
