package org.bimserver.shared.interfaces;
/******************************************************************************
* Copyright (C) 2009-2014 BIMserver.org
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*****************************************************************************/
import java.util.List;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.ParameterStyle;
import javax.jws.soap.SOAPBinding.Style;
import javax.jws.soap.SOAPBinding.Use;
import org.bimserver.interfaces.objects.SServiceInterface;
import org.bimserver.interfaces.objects.SServiceMethod;
import org.bimserver.interfaces.objects.SServiceParameter;
import org.bimserver.interfaces.objects.SServiceType;
import org.bimserver.shared.exceptions.ServerException;
import org.bimserver.shared.exceptions.UserException;
@WebService(name = "MetaInterface", targetNamespace="org.bimserver")
@SOAPBinding(style = Style.DOCUMENT, use = Use.LITERAL, parameterStyle = ParameterStyle.WRAPPED)
public interface MetaInterface extends PublicInterface {
/**
* @return A list of all the registered services
* @throws ServerException
* @throws UserException
*/
@WebMethod(action="getServiceInterfaces")
List<SServiceInterface> getServiceInterfaces() throws ServerException, UserException;
/**
* @return A list of all the registered services
* @throws ServerException
* @throws UserException
*/
@WebMethod(action="getServiceInterface")
SServiceInterface getServiceInterface(
@WebParam(name = "getServiceInterface", partName = "getServiceInterface.serviceInterfaceName") String serviceInterfaceName) throws ServerException, UserException;
/**
* @param serviceInterfaceName
* @return A list of all methods of the given service
* @throws ServerException
* @throws UserException
*/
@WebMethod(action="getServiceMethods")
List<SServiceMethod> getServiceMethods(
@WebParam(name = "serviceInterfaceName", partName = "getServiceMethods.serviceInterfaceName") String serviceInterfaceName) throws ServerException, UserException;
/**
* @param serviceInterfaceName
* @return A list of all methods of the given service
* @throws ServerException
* @throws UserException
*/
@WebMethod(action="getServiceMethod")
SServiceMethod getServiceMethod(
@WebParam(name = "serviceInterfaceName", partName = "getServiceMethod.serviceInterfaceName") String serviceInterfaceName,
@WebParam(name = "methodName", partName = "getServiceMethod.methodName") String methodName) throws ServerException, UserException;
/**
* @param serviceInterfaceName
* @return A list of all types known for the given service
* @throws ServerException
* @throws UserException
*/
@WebMethod(action="getServiceTypes")
List<SServiceType> getServiceTypes(
@WebParam(name = "serviceInterfaceName", partName = "getServiceTypes.serviceInterfaceName") String serviceInterfaceName) throws ServerException, UserException;
/**
* @param serviceInterfaceName
* @param serviceMethodName
* @return A list of all parameters of the given method of the given service
* @throws ServerException
* @throws UserException
*/
@WebMethod(action="getServiceMethodParameters")
List<SServiceParameter> getServiceMethodParameters(
@WebParam(name = "serviceInterfaceName", partName = "getServiceMethodParameters.serviceInterfaceName") String serviceInterfaceName,
@WebParam(name = "serviceMethodName", partName = "getServiceMethodParameters.serviceMethodName") String serviceMethodName) throws ServerException, UserException;
@WebMethod(action="getEnumLiterals")
List<String> getEnumLiterals(
@WebParam(name = "enumName", partName = "getEnumLiterals.enumName") String enumName) throws UserException, ServerException;
@WebMethod(action="getAllAsJson")
String getAllAsJson() throws UserException, ServerException;
}