/******************************************************************************* * Copyright (c) 2010 SAP AG. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Emil Simeonov - initial API and implementation. * Dimitar Donchev - initial API and implementation. * Dimitar Tenev - initial API and implementation. * Nevena Manova - initial API and implementation. * Georgi Konstantinov - initial API and implementation. *******************************************************************************/ package org.eclipse.wst.sse.sieditor.ui.v2.factory; import org.eclipse.wst.sse.sieditor.model.api.IModelObject; import org.eclipse.wst.sse.sieditor.model.wsdl.api.IDescription; import org.eclipse.wst.sse.sieditor.model.wsdl.api.IFault; import org.eclipse.wst.sse.sieditor.model.wsdl.api.IOperation; import org.eclipse.wst.sse.sieditor.model.wsdl.api.IParameter; import org.eclipse.wst.sse.sieditor.model.wsdl.api.IServiceInterface; import org.eclipse.wst.sse.sieditor.ui.v2.nodes.ITreeNode; import org.eclipse.wst.sse.sieditor.ui.v2.wsdl.controller.SIFormPageController; import org.eclipse.wst.sse.sieditor.ui.v2.wsdltree.nodes.FaultNode; import org.eclipse.wst.sse.sieditor.ui.v2.wsdltree.nodes.ImportedServicesNode; import org.eclipse.wst.sse.sieditor.ui.v2.wsdltree.nodes.OperationCategory; import org.eclipse.wst.sse.sieditor.ui.v2.wsdltree.nodes.OperationCategoryNode; import org.eclipse.wst.sse.sieditor.ui.v2.wsdltree.nodes.OperationNode; import org.eclipse.wst.sse.sieditor.ui.v2.wsdltree.nodes.ParameterNode; import org.eclipse.wst.sse.sieditor.ui.v2.wsdltree.nodes.ServiceInterfaceNode; /** * Class used to create Nodes for the WSDL tree. The nodes are also added in the * Tree node mapper * */ public class WSDLNodeFactory { private static WSDLNodeFactory singletonInstance; private WSDLNodeFactory() { } public static WSDLNodeFactory getInstance() { if (null == singletonInstance) singletonInstance = new WSDLNodeFactory(); return singletonInstance; } public ImportedServicesNode createImportedServicesNode(final IDescription description, SIFormPageController nodeMapperContainer) { ImportedServicesNode importedServicesNode = new ImportedServicesNode(description, nodeMapperContainer); addToNodeMap(description, importedServicesNode, nodeMapperContainer); return importedServicesNode; } public ServiceInterfaceNode createServiceInterfacenode(final ITreeNode parent, final IServiceInterface serviceInterface, SIFormPageController nodeMapperContainer) { ServiceInterfaceNode serviceInterfaceNode = new ServiceInterfaceNode(parent, serviceInterface, nodeMapperContainer); addToNodeMap(serviceInterface, serviceInterfaceNode, nodeMapperContainer); return serviceInterfaceNode; } public OperationNode createOperationNode(final ITreeNode parent, final IOperation operation, SIFormPageController nodeMapperContainer) { OperationNode operationNode = new OperationNode(parent, operation, nodeMapperContainer); addToNodeMap(operation, operationNode, nodeMapperContainer); return operationNode; } public OperationCategoryNode createOperationCategoryNode(final ITreeNode parent, final OperationCategory operationCategory, final IOperation operation, SIFormPageController nodeMapperContainer) { OperationCategoryNode operationCategoryNode = new OperationCategoryNode(parent, operationCategory, operation, nodeMapperContainer); addToCategoryNodeMap(operationCategory.toString(), operation, operationCategoryNode, nodeMapperContainer); return operationCategoryNode; } public FaultNode createFaultNode(ITreeNode parent, IFault fault, SIFormPageController nodeMapperContainer) { FaultNode faultNode = new FaultNode(parent, fault, nodeMapperContainer); addToNodeMap(fault, faultNode, nodeMapperContainer); return faultNode; } public ParameterNode createParameterNode(ITreeNode parentNode, IParameter parameter, SIFormPageController nodeMapperContainer) { ParameterNode parameterNode = new ParameterNode(parentNode, parameter, nodeMapperContainer); addToNodeMap(parameter, parameterNode, nodeMapperContainer); return parameterNode; } private void addToNodeMap(IModelObject modelObject, ITreeNode treeNode, SIFormPageController nodeMapperContainer) { nodeMapperContainer.getTreeNodeMapper().addToNodeMap(modelObject, treeNode); } private static void addToCategoryNodeMap(final String category, final Object modelObject, final ITreeNode treeNode, SIFormPageController nodeMapperContainer) { nodeMapperContainer.getTreeNodeMapper().addToCategoryNodeMap(category, modelObject, treeNode); } }