/* * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * Copyright (c) 2013, MPL CodeInside http://codeinside.ru */ package ru.codeinside.gws.api; import javax.xml.namespace.QName; import javax.xml.soap.SOAPMessage; import java.io.OutputStream; public interface ServerProtocol { /** * Поддерживаемвя ревизия. */ Revision getRevision(); /** * Сформировать запрос по входящему сообщению. * * @param message входящее SOAP сообщение. * @param service идентификатор сервиса. * @param port идентификатор порта. * @return разобранный ответ. */ ServerRequest processRequest(SOAPMessage message, QName service, ServiceDefinition.Port port); /** * Сформировать исходящее сообщение. * * @param request запрос. * @param response ответ. * @param service идентификатор сервиса. * @param port идентификатор порта. * @param serverLog журнал. * @return исходящее SOAP сообщение для транспортного уровня. */ SOAPMessage processResponse( ServerRequest request, ServerResponse response, QName service, ServiceDefinition.Port port, ServerLog serverLog); /** * Подготовить SOAP-сообщение перед отправкой * * @param request запрос * @param response ответ * @param service идентификатор сервиса * @param port идентификатор порта * @param serverLog журнал * @param normalizedBody нормализованный блок Body для получения подписи ОВ * @return предварительное сообщение для отправки */ SOAPMessage createMessage( ServerResponse response, QName service, ServiceDefinition.Port port, ServerLog serverLog, OutputStream normalizedBody); }