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.SDeserializerPluginConfiguration;
import org.bimserver.interfaces.objects.SDeserializerPluginDescriptor;
import org.bimserver.interfaces.objects.SInternalServicePluginConfiguration;
import org.bimserver.interfaces.objects.SModelCheckerPluginDescriptor;
import org.bimserver.interfaces.objects.SModelComparePluginConfiguration;
import org.bimserver.interfaces.objects.SModelComparePluginDescriptor;
import org.bimserver.interfaces.objects.SModelMergerPluginConfiguration;
import org.bimserver.interfaces.objects.SModelMergerPluginDescriptor;
import org.bimserver.interfaces.objects.SObjectDefinition;
import org.bimserver.interfaces.objects.SObjectIDMPluginConfiguration;
import org.bimserver.interfaces.objects.SObjectIDMPluginDescriptor;
import org.bimserver.interfaces.objects.SObjectType;
import org.bimserver.interfaces.objects.SPluginDescriptor;
import org.bimserver.interfaces.objects.SQueryEnginePluginConfiguration;
import org.bimserver.interfaces.objects.SQueryEnginePluginDescriptor;
import org.bimserver.interfaces.objects.SRenderEnginePluginConfiguration;
import org.bimserver.interfaces.objects.SRenderEnginePluginDescriptor;
import org.bimserver.interfaces.objects.SSerializerPluginConfiguration;
import org.bimserver.interfaces.objects.SSerializerPluginDescriptor;
import org.bimserver.interfaces.objects.SServicePluginDescriptor;
import org.bimserver.interfaces.objects.SWebModulePluginConfiguration;
import org.bimserver.interfaces.objects.SWebModulePluginDescriptor;
import org.bimserver.shared.exceptions.ServerException;
import org.bimserver.shared.exceptions.UserException;
@WebService(name = "PluginInterface", targetNamespace="org.bimserver")
@SOAPBinding(style = Style.DOCUMENT, use = Use.LITERAL, parameterStyle = ParameterStyle.WRAPPED)
public interface PluginInterface extends PublicInterface {
@WebMethod(action="getDefaultWebModule")
SWebModulePluginConfiguration getDefaultWebModule() throws ServerException, UserException;
@WebMethod(action="getDefaultRenderEngine")
SRenderEnginePluginConfiguration getDefaultRenderEngine() throws ServerException, UserException;
@WebMethod(action="getDefaultQueryEngine")
SQueryEnginePluginConfiguration getDefaultQueryEngine() throws ServerException, UserException;
@WebMethod(action="getDefaultModelCompare")
SModelComparePluginConfiguration getDefaultModelCompare() throws ServerException, UserException;
@WebMethod(action="getDefaultModelMerger")
SModelMergerPluginConfiguration getDefaultModelMerger() throws ServerException, UserException;
@WebMethod(action="getDefaultSerializer")
SSerializerPluginConfiguration getDefaultSerializer() throws ServerException, UserException;
@WebMethod(action="getDefaultObjectIDM")
SObjectIDMPluginConfiguration getDefaultObjectIDM() throws ServerException, UserException;
@WebMethod(action="setDefaultRenderEngine")
void setDefaultRenderEngine(
@WebParam(name = "oid", partName = "setDefaultRenderEngine.oid") Long oid) throws UserException, ServerException;
@WebMethod(action="setDefaultWebModule")
void setDefaultWebModule(
@WebParam(name = "oid", partName = "setDefaultWebModule.oid") Long oid) throws UserException, ServerException;
@WebMethod(action="setDefaultQueryEngine")
void setDefaultQueryEngine(
@WebParam(name = "oid", partName = "setDefaultQueryEngine.oid") Long oid) throws UserException, ServerException;
@WebMethod(action="setDefaultModelCompare")
void setDefaultModelCompare(
@WebParam(name = "oid", partName = "setDefaultModelCompare.oid") Long oid) throws UserException, ServerException;
@WebMethod(action="setDefaultModelMerger")
void setDefaultModelMerger(
@WebParam(name = "oid", partName = "setDefaultModelMerger.oid") Long oid) throws UserException, ServerException;
@WebMethod(action="setDefaultSerializer")
void setDefaultSerializer(
@WebParam(name = "oid", partName = "setDefaultSerializer.oid") Long oid) throws UserException, ServerException;
@WebMethod(action="setDefaultObjectIDM")
void setDefaultObjectIDM(
@WebParam(name = "oid", partName = "setDefaultObjectIDM.oid") Long oid) throws UserException, ServerException;
/**
* @return List of all SerializerPluginDescriptors
* @throws ServerException, UserException
*/
@WebMethod(action = "getAllSerializerPluginDescriptors")
List<SSerializerPluginDescriptor> getAllSerializerPluginDescriptors() throws ServerException, UserException;
@WebMethod(action = "getPluginDescriptor")
SPluginDescriptor getPluginDescriptor(
@WebParam(name = "oid", partName = "getPluginDescriptor.oid") Long oid) throws ServerException, UserException;
/**
* @return List of all SerializerPluginDescriptors
* @throws ServerException, UserException
*/
@WebMethod(action = "getAllWebModulePluginDescriptors")
List<SWebModulePluginDescriptor> getAllWebModulePluginDescriptors() throws ServerException, UserException;
/**
* @return List of all SerializerPluginDescriptors
* @throws ServerException, UserException
*/
@WebMethod(action = "getAllRenderEnginePluginDescriptors")
List<SRenderEnginePluginDescriptor> getAllRenderEnginePluginDescriptors() throws ServerException, UserException;
/**
* @return List of all DeserializerPluginDescriptors
* @throws ServerException, UserException
*/
@WebMethod(action = "getAllDeserializerPluginDescriptors")
List<SDeserializerPluginDescriptor> getAllDeserializerPluginDescriptors() throws ServerException, UserException;
/**
* @return List of all QueryEnginePluginDescriptors
* @throws ServerException, UserException
*/
@WebMethod(action = "getAllQueryEnginePluginDescriptors")
List<SQueryEnginePluginDescriptor> getAllQueryEnginePluginDescriptors() throws ServerException, UserException;
/**
* @return List of all getAllServicePluginDescriptors
* @throws ServerException, UserException
*/
@WebMethod(action = "getAllServicePluginDescriptors")
List<SServicePluginDescriptor> getAllServicePluginDescriptors() throws ServerException, UserException;
/**
* @return List of all SModelComparePluginDescriptor
* @throws ServerException, UserException
*/
@WebMethod(action = "getAllModelComparePluginDescriptors")
List<SModelComparePluginDescriptor> getAllModelComparePluginDescriptors() throws ServerException, UserException;
/**
* @return List of all SModelComparePluginDescriptor
* @throws ServerException, UserException
*/
@WebMethod(action = "getAllModelCheckerPluginDescriptors")
List<SModelCheckerPluginDescriptor> getAllModelCheckerPluginDescriptors() throws ServerException, UserException;
/**
* @return List of all SModelMergerPluginDescriptor
* @throws ServerException, UserException
*/
@WebMethod(action = "getAllModelMergerPluginDescriptors")
List<SModelMergerPluginDescriptor> getAllModelMergerPluginDescriptors() throws ServerException, UserException;
/**
* @param serializerName Name of the Serializer
* @return Serializer
* @throws ServerException, UserException
*/
@WebMethod(action = "getWebModuleByName")
SWebModulePluginConfiguration getWebModuleByName(
@WebParam(name = "name", partName = "getWebModuleByName.name") String name) throws ServerException, UserException;
/**
* @param name Name of the RenderEngine
* @return RenderEngine
* @throws ServerException, UserException
*/
@WebMethod(action = "getRenderEngineByName")
SRenderEnginePluginConfiguration getRenderEngineByName(
@WebParam(name = "name", partName = "getRenderEngineByName.name") String name) throws ServerException, UserException;
/**
* @param name Name of the ModelMerger
* @return SModelMerger
* @throws ServerException, UserException
*/
@WebMethod(action = "getModelMergerByName")
SModelMergerPluginConfiguration getModelMergerByName(
@WebParam(name = "name", partName = "getModelMergerByName.name") String name) throws ServerException, UserException;
/**
* @param name Name of the ModelCompare
* @return SModelCompare
* @throws ServerException, UserException
*/
@WebMethod(action = "getModelCompareByName")
SModelComparePluginConfiguration getModelCompareByName(
@WebParam(name = "name", partName = "getModelCompareByName.name") String name) throws ServerException, UserException;
/**
* @param onlyEnabled Whether to only include enabled serializers
* @return A list of Serializers
* @throws ServerException, UserException
*/
@WebMethod(action = "getAllSerializers")
List<SSerializerPluginConfiguration> getAllSerializers(
@WebParam(name = "onlyEnabled", partName = "getAllSerializers.onlyEnabled") Boolean onlyEnabled) throws ServerException, UserException;
/**
* @param onlyEnabled Whether to only include enabled IFC engines
* @return A list of RenderEngines
* @throws ServerException, UserException
*/
@WebMethod(action = "getAllRenderEngines")
List<SRenderEnginePluginConfiguration> getAllRenderEngines(
@WebParam(name = "onlyEnabled", partName = "getAllRenderEngines.onlyEnabled") Boolean onlyEnabled) throws ServerException, UserException;
/**
* @param onlyEnabled Whether to only include enabled IFC engines
* @return A list of RenderEngines
* @throws ServerException, UserException
*/
@WebMethod(action = "getAllWebModules")
List<SWebModulePluginConfiguration> getAllWebModules(
@WebParam(name = "onlyEnabled", partName = "getAllWebModules.onlyEnabled") Boolean onlyEnabled) throws ServerException, UserException;
/**
* @param onlyEnabled Whether to only include enabled query engines
* @return A list of QueryEngines
* @throws ServerException, UserException
*/
@WebMethod(action = "getAllQueryEngines")
List<SQueryEnginePluginConfiguration> getAllQueryEngines(
@WebParam(name = "onlyEnabled", partName = "getAllQueryEngines.onlyEnabled") Boolean onlyEnabled) throws ServerException, UserException;
/**
* @param onlyEnabled Whether to only include enabled model mergers
* @return A list of SModelMerger
* @throws ServerException, UserException
*/
@WebMethod(action = "getAllModelMergers")
List<SModelMergerPluginConfiguration> getAllModelMergers(
@WebParam(name = "onlyEnabled", partName = "getAllModelMergers.onlyEnabled") Boolean onlyEnabled) throws ServerException, UserException;
/**
* @param onlyEnabled Whether to only include enabled model compare
* @return A list of SModelCompare
* @throws ServerException, UserException
*/
@WebMethod(action = "getAllModelCompares")
List<SModelComparePluginConfiguration> getAllModelCompares(
@WebParam(name = "onlyEnabled", partName = "getAllModelCompares.onlyEnabled") Boolean onlyEnabled) throws ServerException, UserException;
/**
* @param oid ObjectID of the RenderEngine
* @return RenderEngine
* @throws ServerException, UserException
*/
@WebMethod(action = "getRenderEngineById")
SRenderEnginePluginConfiguration getRenderEngineById(
@WebParam(name = "oid", partName = "getRenderEngineById.oid") Long oid) throws ServerException, UserException;
/**
* @param oid ObjectID of the ModelMerger
* @return SModelMerger
* @throws ServerException, UserException
*/
@WebMethod(action = "getModelMergerById")
SModelMergerPluginConfiguration getModelMergerById(
@WebParam(name = "oid", partName = "getModelMergerById.oid") Long oid) throws ServerException, UserException;
/**
* @param oid ObjectID of the ModelCompare
* @return SModelCompare
* @throws ServerException, UserException
*/
@WebMethod(action = "getModelCompareById")
SModelComparePluginConfiguration getModelCompareById(
@WebParam(name = "oid", partName = "getModelCompareById.oid") Long oid) throws ServerException, UserException;
/**
* @param oid ObjectID of the Deserializer
* @return Deserializer
* @throws ServerException, UserException
*/
@WebMethod(action = "getWebModuleById")
SWebModulePluginConfiguration getWebModuleById(
@WebParam(name = "oid", partName = "getWebModuleById.oid") Long oid) throws ServerException, UserException;
/**
* @param serializer Serializer to add
* @throws ServerException, UserException
*/
@WebMethod(action = "addSerializer")
void addSerializer(
@WebParam(name = "serializer", partName = "addSerializer.serializer") SSerializerPluginConfiguration serializer) throws ServerException, UserException;
/**
* @param renderEngine RenderEngine to add
* @throws ServerException, UserException
*/
@WebMethod(action = "addRenderEngine")
void addRenderEngine(
@WebParam(name = "renderEngine", partName = "addRenderEngine.renderEngine") SRenderEnginePluginConfiguration renderEngine) throws ServerException, UserException;
/**
* @param queryEngine QueryEngine to add
* @throws ServerException, UserException
*/
@WebMethod(action = "addQueryEngine")
void addQueryEngine(
@WebParam(name = "queryEngine", partName = "addQueryEngine.queryEngine") SQueryEnginePluginConfiguration queryEngine) throws ServerException, UserException;
/**
* @param modelMerger ModelMerger to add
* @throws ServerException, UserException
*/
@WebMethod(action = "addModelMerger")
void addModelMerger(
@WebParam(name = "modelMerger", partName = "addModelMerger.modelMerger") SModelMergerPluginConfiguration modelMerger) throws ServerException, UserException;
/**
* @param modelCompare ModelCompare to add
* @throws ServerException, UserException
*/
@WebMethod(action = "addModelCompare")
void addModelCompare(
@WebParam(name = "modelCompare", partName = "addModelCompare.modelCompare") SModelComparePluginConfiguration modelCompare) throws ServerException, UserException;
/**
* @param deserializer Deserializer to add
* @throws ServerException, UserException
*/
@WebMethod(action = "addDeserializer")
void addDeserializer(
@WebParam(name = "deserializer", partName = "addDeserializer.deserializer") SDeserializerPluginConfiguration deserializer) throws ServerException, UserException;
/**
* @param serializer Serializer to update
* @throws ServerException, UserException
*/
@WebMethod(action = "updateSerializer")
void updateSerializer(
@WebParam(name = "serializer", partName = "updateSerializer.serializer") SSerializerPluginConfiguration serializer) throws ServerException, UserException;
/**
* @param renderEngine RenderEngine to update
* @throws ServerException, UserException
*/
@WebMethod(action = "updateRenderEngine")
void updateRenderEngine(
@WebParam(name = "renderEngine", partName = "updateRenderEngine.renderEngine") SRenderEnginePluginConfiguration renderEngine) throws ServerException, UserException;
/**
* @param queryEngine QueryEngine to update
* @throws ServerException, UserException
*/
@WebMethod(action = "updateQueryEngine")
void updateQueryEngine(
@WebParam(name = "queryEngine", partName = "updateQueryEngine.queryEngine") SQueryEnginePluginConfiguration queryEngine) throws ServerException, UserException;
/**
* @param modelMerger ModelMerger to update
* @throws ServerException, UserException
*/
@WebMethod(action = "updateModelMerger")
void updateModelMerger(
@WebParam(name = "modelMerger", partName = "updateModelMerger.modelMerger") SModelMergerPluginConfiguration modelMerger) throws ServerException, UserException;
/**
* @param modelCompare ModelCompare to update
* @throws ServerException, UserException
*/
@WebMethod(action = "updateModelCompare")
void updateModelCompare(
@WebParam(name = "modelCompare", partName = "updateModelCompare.modelCompare") SModelComparePluginConfiguration modelCompare) throws ServerException, UserException;
/**
* @param deserializer Deserializer to update
* @throws ServerException, UserException
*/
@WebMethod(action = "updateDeserializer")
void updateDeserializer(
@WebParam(name = "deserializer", partName = "updateDeserializer.deserializer") SDeserializerPluginConfiguration deserializer) throws ServerException, UserException;
/**
* @param onlyEnabled Whether to include only enabled ObjectIDMs
* @return A list of ObjectIDMs
* @throws ServerException, UserException
*/
@WebMethod(action = "getAllObjectIDMs")
List<SObjectIDMPluginConfiguration> getAllObjectIDMs(
@WebParam(name = "onlyEnabled", partName = "getAllSerializers.onlyEnabled") Boolean onlyEnabled) throws ServerException, UserException;
/**
* @param oid ObjectID of the ObjectIDM
* @return ObjectIDM
* @throws ServerException, UserException
*/
@WebMethod(action = "getObjectIDMById")
SObjectIDMPluginConfiguration getObjectIDMById(
@WebParam(name = "oid", partName = "getObjectIDMById.oid") Long oid) throws ServerException, UserException;
/**
* @param objectIDM The ObjectIDM to add
* @throws ServerException, UserException
*/
@WebMethod(action = "addObjectIDM")
void addObjectIDM(
@WebParam(name = "objectIDM", partName = "addObjectIDM.objectIDM") SObjectIDMPluginConfiguration objectIDM) throws ServerException, UserException;
/**
* @param objectIDM The ObjectIDM to update
* @throws ServerException, UserException
*/
@WebMethod(action = "updateObjectIDM")
void updateObjectIDM(
@WebParam(name = "objectIDM", partName = "updateObjectIDM.objectIDM") SObjectIDMPluginConfiguration objectIDM) throws ServerException, UserException;
/**
* @param oid ObjectID of the ObjectIDM to delete
* @throws ServerException, UserException
*/
@WebMethod(action = "deleteObjectIDM")
void deleteObjectIDM(
@WebParam(name = "oid", partName = "deleteObjectIDM.oid") Long oid) throws ServerException, UserException;
/**
* @param sid ObjectID of the Serializer to delete
* @throws ServerException, UserException
*/
@WebMethod(action = "deleteSerializer")
void deleteSerializer(
@WebParam(name = "sid", partName = "deleteSerializer.sid") Long sid) throws ServerException, UserException;
/**
* @param iid ObjectID of the RenderEngine to delete
* @throws ServerException, UserException
*/
@WebMethod(action = "deleteRenderEngine")
void deleteRenderEngine(
@WebParam(name = "iid", partName = "deleteRenderEngine.iid") Long iid) throws ServerException, UserException;
/**
* @param iid ObjectID of the ModelMerger to delete
* @throws ServerException, UserException
*/
@WebMethod(action = "deleteModelMerger")
void deleteModelMerger(
@WebParam(name = "iid", partName = "deleteModelMerger.iid") Long iid) throws ServerException, UserException;
/**
* @param iid ObjectID of the ModelCompare to delete
* @throws ServerException, UserException
*/
@WebMethod(action = "deleteModelCompare")
void deleteModelCompare(
@WebParam(name = "iid", partName = "deleteModelCompare.iid") Long iid) throws ServerException, UserException;
/**
* @param iid ObjectID of the ModelCompare to delete
* @throws ServerException, UserException
*/
@WebMethod(action = "deleteModelChecker")
void deleteModelChecker(
@WebParam(name = "iid", partName = "deleteModelChecker.iid") Long iid) throws ServerException, UserException;
/**
* @param iid ObjectID of the QueryEngine to delete
* @throws ServerException, UserException
*/
@WebMethod(action = "deleteQueryEngine")
void deleteQueryEngine(
@WebParam(name = "iid", partName = "deleteQueryEngine.iid") Long iid) throws ServerException, UserException;
/**
* @param sid ObjectID of the Deserializer to delete
* @throws ServerException, UserException
*/
@WebMethod(action = "deleteDeserializer")
void deleteDeserializer(
@WebParam(name = "sid", partName = "deleteDeserializer.sid") Long sid) throws ServerException, UserException;
/**
* @param objectIDMName Name of the ObjectIDM
* @return ObjectIDM
* @throws ServerException, UserException
*/
@WebMethod(action = "getObjectIDMByName")
SObjectIDMPluginConfiguration getObjectIDMByName(
@WebParam(name = "objectIDMName", partName = "getObjectIDMByName.objectIDMName") String objectIDMName) throws ServerException, UserException;
@WebMethod(action = "getPluginObjectDefinition")
SObjectDefinition getPluginObjectDefinition(
@WebParam(name = "oid", partName = "getPluginObjectDefinition.oid") Long oid) throws ServerException, UserException;
@WebMethod(action = "setPluginSettings")
void setPluginSettings(
@WebParam(name = "poid", partName = "setPluginSettings.poid") Long poid,
@WebParam(name = "settings", partName = "setPluginSettings.settings") SObjectType settings) throws ServerException, UserException;
@WebMethod(action = "getPluginSettings")
SObjectType getPluginSettings(
@WebParam(name = "poid", partName = "getPluginSettings.poid") Long poid) throws ServerException, UserException;
/**
* @param onlyEnabled Whether to only include enabled deserializers
* @return A list of all available deserializers
* @throws ServerException, UserException
*/
@WebMethod(action = "getAllDeserializers")
List<SDeserializerPluginConfiguration> getAllDeserializers(
@WebParam(name = "onlyEnabled", partName = "getAllDeserializers.onlyEnabled") Boolean onlyEnabled) throws ServerException, UserException;
/**
* @param contentType The ContentType
* @return Serializer supporting the given ContentType
* @throws ServerException, UserException
*/
@WebMethod(action = "getSerializerByPluginClassName")
SSerializerPluginConfiguration getSerializerByPluginClassName(
@WebParam(name = "pluginClassName", partName = "getSerializerByPluginClassName.pluginClassName") String pluginClassName) throws ServerException, UserException;
/**
* @param type The type
* @return SSerializerPluginDescriptor
* @throws ServerException, UserException
*/
@WebMethod(action = "getSerializerPluginDescriptor")
SSerializerPluginDescriptor getSerializerPluginDescriptor(
@WebParam(name = "type", partName = "getSerializerPluginDescriptor.type") String type) throws ServerException, UserException;
/**
* @param contentType Content type
* @return Whether there is an active Serializer supporting the given ContentType
* @throws ServerException, UserException
*/
@WebMethod(action = "hasActiveSerializer")
Boolean hasActiveSerializer(
@WebParam(name = "contentType", partName = "hasActiveSerializer.contentType") String contentType) throws ServerException, UserException;
@WebMethod(action="getInternalServiceById")
SInternalServicePluginConfiguration getInternalServiceById(
@WebParam(name = "oid", partName = "getEServiceById.oid") Long oid) throws ServerException, UserException;
@WebMethod(action="updateInternalService")
void updateInternalService(
@WebParam(name = "internalService", partName = "updateInternalService.internalService") SInternalServicePluginConfiguration internalService) throws ServerException, UserException;
@WebMethod(action="addInternalService")
void addInternalService(
@WebParam(name = "internalService", partName = "addInternalService.internalService") SInternalServicePluginConfiguration internalService) throws ServerException, UserException;
@WebMethod(action="deleteInternalService")
void deleteInternalService(
@WebParam(name = "oid", partName = "deleteInternalService.oid") Long oid) throws ServerException, UserException;
@WebMethod(action="getAllInternalServices")
List<SInternalServicePluginConfiguration> getAllInternalServices(
@WebParam(name = "onlyEnabled", partName = "getAllInternalServices.onlyEnabled") Boolean onlyEnabled) throws UserException, ServerException;
/**
* @return A list of available IDMPlugins
* @throws ServerException, UserException
*/
@WebMethod(action = "getAllObjectIDMPluginDescriptors")
List<SObjectIDMPluginDescriptor> getAllObjectIDMPluginDescriptors() throws ServerException, UserException;
}