Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'core/bundles/org.eclipse.jst.ws.consumption/src/org/eclipse/jst/ws/internal/webservice/helper/WSDLServiceHelperImpl.java')
-rw-r--r--core/bundles/org.eclipse.jst.ws.consumption/src/org/eclipse/jst/ws/internal/webservice/helper/WSDLServiceHelperImpl.java208
1 files changed, 208 insertions, 0 deletions
diff --git a/core/bundles/org.eclipse.jst.ws.consumption/src/org/eclipse/jst/ws/internal/webservice/helper/WSDLServiceHelperImpl.java b/core/bundles/org.eclipse.jst.ws.consumption/src/org/eclipse/jst/ws/internal/webservice/helper/WSDLServiceHelperImpl.java
new file mode 100644
index 000000000..8d1515e2b
--- /dev/null
+++ b/core/bundles/org.eclipse.jst.ws.consumption/src/org/eclipse/jst/ws/internal/webservice/helper/WSDLServiceHelperImpl.java
@@ -0,0 +1,208 @@
+/*******************************************************************************
+ * Copyright (c) 2005, 2017 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+/*
+ * Created on Feb 21, 2005
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+package org.eclipse.jst.ws.internal.webservice.helper;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.jem.util.emf.workbench.WorkbenchResourceHelperBase;
+import org.eclipse.jst.j2ee.client.ApplicationClient;
+import org.eclipse.jst.j2ee.ejb.EnterpriseBean;
+import org.eclipse.jst.j2ee.internal.webservice.helper.WebServicesManager;
+import org.eclipse.jst.j2ee.internal.webservices.WSDLServiceHelper;
+import org.eclipse.jst.j2ee.webapplication.WebApp;
+import org.eclipse.wst.ws.internal.parser.wsil.WebServiceEntity;
+import org.eclipse.wst.ws.internal.parser.wsil.WebServicesParser;
+import org.eclipse.wst.wsdl.Definition;
+import org.eclipse.wst.wsdl.Port;
+import org.eclipse.wst.wsdl.Service;
+import org.eclipse.wst.wsdl.util.WSDLResourceImpl;
+
+/**
+ * @author cbridgha
+ *
+ * TODO To change the template for this generated type comment go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+public class WSDLServiceHelperImpl implements WSDLServiceHelper {
+
+ /**
+ *
+ */
+ public WSDLServiceHelperImpl() {
+ super();
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jst.j2ee.internal.webservices.WSDLServiceHelper#getPortName(java.lang.Object)
+ */
+ public String getPortName(Object port) {
+ Port aPort = (Port)port;
+ return aPort.getName();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jst.j2ee.internal.webservices.WSDLServiceHelper#getServicePorts(java.lang.Object)
+ */
+ public Map getServicePorts(Object aService) {
+ Service service =(Service)aService;
+ return service.getPorts();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jst.j2ee.internal.webservices.WSDLServiceHelper#getServiceNamespaceURI(java.lang.Object)
+ */
+ public String getServiceNamespaceURI(Object aService) {
+ Service service =(Service)aService;
+ return service.getQName().getNamespaceURI();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jst.j2ee.internal.webservices.WSDLServiceHelper#getServiceDefinitionLocation(org.eclipse.emf.ecore.EObject)
+ */
+ public Object getServiceDefinitionLocation(EObject aService) {
+ Service service =(Service)aService;
+ return service.getEnclosingDefinition().getLocation();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jst.j2ee.internal.webservices.WSDLServiceHelper#getPortBindingNamespaceURI(java.lang.Object)
+ */
+ public String getPortBindingNamespaceURI(Object aPort) {
+ Port port = (Port)aPort;
+ return port.getBinding().getQName().getNamespaceURI();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jst.j2ee.internal.webservices.WSDLServiceHelper#getServiceLocalPart(java.lang.Object)
+ */
+ public String getServiceLocalPart(Object aService) {
+ Service service =(Service)aService;
+ return service.getQName().getLocalPart();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jst.j2ee.internal.webservices.WSDLServiceHelper#getServiceQName(java.lang.Object)
+ */
+ public Object getServiceQName(Object aService) {
+ Service service =(Service)aService;
+ return service.getQName();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jst.j2ee.internal.webservices.WSDLServiceHelper#getDefinitionServices(java.lang.Object)
+ */
+ public Map getDefinitionServices(Object aDefinition) {
+ Definition definition =(Definition)aDefinition;
+ return definition.getServices();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jst.j2ee.internal.webservices.WSDLServiceHelper#getWSDLDefinition(java.lang.String)
+ */
+ public Object getWSDLDefinition(String wsdlURL) {
+ try {
+ WSDLResourceImpl res = (WSDLResourceImpl) WorkbenchResourceHelperBase.getResource(URI.createURI(wsdlURL), true);
+ if (res == null)
+ return null;
+ return res.getDefinition();
+ } catch (Exception wsdle) {
+ return null;
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jst.j2ee.internal.webservices.WSDLServiceHelper#getWSDLDefinition(org.eclipse.emf.ecore.resource.Resource)
+ */
+ public Object getWSDLDefinition(Resource wsdlResource) {
+ return ((WSDLResourceImpl)wsdlResource).getDefinition();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jst.j2ee.internal.webservices.WSDLServiceHelper#getWsdlServicesFromWsilFile(org.eclipse.core.resources.IFile)
+ */
+ public List getWsdlServicesFromWsilFile(IFile wsil) {
+ List result = new ArrayList();
+ WebServiceEntity entity = parseWsilFile(wsil);
+ if (entity != null && entity.getType() == WebServiceEntity.TYPE_WSIL) {
+ // get all the WSDL references from the WSIL entity
+ List wsdlList = entity.getChildren();
+ for (Iterator it = wsdlList.iterator(); it.hasNext();) {
+ Object item = it.next();
+ if (item != null && item instanceof WebServiceEntity) {
+ if (((WebServiceEntity) item).getModel() != null && ((WebServiceEntity) item).getModel() instanceof Definition) {
+ Definition def = (Definition) ((WebServiceEntity) item).getModel();
+ if (def != null && !def.getServices().isEmpty())
+ result.addAll(def.getServices().values());
+ }
+ }
+ }
+ }
+ return result;
+ }
+ public WebServiceEntity parseWsilFile(IFile wsil) {
+ WebServicesParser parser = null;
+ String url = null;
+ // verify proper input
+ if (wsil == null || !wsil.getFileExtension().equals(WSIL_EXT))
+ return null;
+ // Parse wsil file to get wsdl services
+ try {
+ url = wsil.getLocation().toFile().toURL().toString();
+ parser = new WebServicesParser(url);
+ parser.parse(WebServicesParser.PARSE_WSIL | WebServicesParser.PARSE_WSDL);
+ } catch (Exception e) {
+ //Ignore
+ }
+ if (parser == null)
+ return null;
+ return parser.getWebServiceEntityByURI(url);
+}
+
+ public boolean isService(Object aService) {
+
+ return aService instanceof Service;
+ }
+ public boolean isWSDLResource(Object aResource) {
+
+ return aResource instanceof WSDLResourceImpl;
+ }
+ public boolean isDefinition(Object aDefinition) {
+
+ return aDefinition instanceof Definition;
+ }
+
+
+ public List get13ServiceRefs(EObject j2eeObject) {
+ if (j2eeObject instanceof ApplicationClient)
+ return WebServicesManager.getInstance().get13ServiceRefs((ApplicationClient)j2eeObject);
+ else if (j2eeObject instanceof EnterpriseBean)
+ return WebServicesManager.getInstance().get13ServiceRefs((EnterpriseBean)j2eeObject);
+ else if (j2eeObject instanceof WebApp)
+ return WebServicesManager.getInstance().get13ServiceRefs((WebApp)j2eeObject);
+ else
+ return Collections.EMPTY_LIST;
+ }
+}

Back to the top