diff WebServiceToolWorkflow/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/IncludeImpl.java @ 0:d5cd409b8a18 default tip

Migrated tool version 1.0.0 from old tool shed archive to new tool shed repository
author ganjoo
date Tue, 07 Jun 2011 18:00:50 -0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebServiceToolWorkflow/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/IncludeImpl.java	Tue Jun 07 18:00:50 2011 -0400
@@ -0,0 +1,207 @@
+/*
+ * (c) Copyright IBM Corp 2001, 2005 
+ */
+
+package edu.uga.cs.lsdis.meteors.wadls;
+
+import java.util.*;
+
+import javax.wadls.*;
+import javax.xml.namespace.*;
+import org.w3c.dom.*;
+
+/**
+ * This class represents an import, and may contain a reference
+ * to the imported definition.
+ *
+ * @author Matthew J. Duftler (duftler@us.ibm.com)
+ */
+public class IncludeImpl implements Include
+{
+  protected String namespaceURI = null;
+  protected String locationURI = null;
+  /*
+    This would need to be made into a generic reference to handle other
+    types of referenced documents.
+  */
+  protected Application application = null;
+  protected Element docEl = null;
+  protected Map extensionAttributes = new HashMap();
+  protected List nativeAttributeNames =
+    Arrays.asList(Constants.IMPORT_ATTR_NAMES);
+
+  public static final long serialVersionUID = 1;
+
+  public void setNamespaceURI(String namespaceURI)
+  {
+    this.namespaceURI = namespaceURI;
+  }
+
+  public String getNamespaceURI()
+  {
+    return namespaceURI;
+  }
+
+  public void setLocationURI(String locationURI)
+  {
+    this.locationURI = locationURI;
+  }
+
+  public String getLocationURI()
+  {
+    return locationURI;
+  }
+
+  /**
+   * This property can be used to hang a referenced Definition,
+   * and the top-level Definition (i.e. the one with the <import>)
+   * will use this Definition when resolving referenced WSDL parts.
+   * This would need to be made into a generic reference to handle
+   * other types of referenced documents.
+   */
+  public void setApplication(Application application)
+  {
+    this.application = application;
+  }
+
+  /**
+   * This property can be used to hang a referenced Definition,
+   * and the top-level Definition (i.e. the one with the <import>)
+   * will use this Definition when resolving referenced WSDL parts.
+   * This would need to be made into a generic reference to handle
+   * other types of referenced documents.
+   */
+  public Application getApplication()
+  {
+    return application;
+  }
+
+  /**
+   * Set the documentation element for this document. This dependency
+   * on org.w3c.dom.Element should eventually be removed when a more
+   * appropriate way of representing this information is employed.
+   *
+   * @param docEl the documentation element
+   */
+  public void setDocumentationElement(Element docEl)
+  {
+    this.docEl = docEl;
+  }
+
+  /**
+   * Get the documentation element. This dependency on org.w3c.dom.Element
+   * should eventually be removed when a more appropriate way of
+   * representing this information is employed.
+   *
+   * @return the documentation element
+   */
+  public Element getDocumentationElement()
+  {
+    return docEl;
+  }
+
+  /**
+   * Set an extension attribute on this element. Pass in a null value to remove
+   * an extension attribute.
+   *
+   * @param name the extension attribute name
+   * @param value the extension attribute value. Can be a String, a QName, a
+   * List of Strings, or a List of QNames.
+   *
+   * @see #getExtensionAttribute
+   * @see #getExtensionAttributes
+   * @see ExtensionRegistry#registerExtensionAttributeType
+   * @see ExtensionRegistry#queryExtensionAttributeType
+   */
+  public void setExtensionAttribute(QName name, Object value)
+  {
+    if (value != null)
+    {
+      extensionAttributes.put(name, value);
+    }
+    else
+    {
+      extensionAttributes.remove(name);
+    }
+  }
+
+  /**
+   * Retrieve an extension attribute from this element. If the extension
+   * attribute is not defined, null is returned.
+   *
+   * @param name the extension attribute name
+   *
+   * @return the value of the extension attribute, or null if
+   * it is not defined. Can be a String, a QName, a List of Strings, or a List
+   * of QNames.
+   *
+   * @see #setExtensionAttribute
+   * @see #getExtensionAttributes
+   * @see ExtensionRegistry#registerExtensionAttributeType
+   * @see ExtensionRegistry#queryExtensionAttributeType
+   */
+  public Object getExtensionAttribute(QName name)
+  {
+    return extensionAttributes.get(name);
+  }
+
+  /**
+   * Get the map containing all the extension attributes defined
+   * on this element. The keys are the qnames of the attributes.
+   *
+   * @return a map containing all the extension attributes defined
+   * on this element
+   *
+   * @see #setExtensionAttribute
+   * @see #getExtensionAttribute
+   */
+  public Map getExtensionAttributes()
+  {
+    return extensionAttributes;
+  }
+
+  /**
+   * Get the list of local attribute names defined for this element in
+   * the WSDL specification.
+   *
+   * @return a List of Strings, one for each local attribute name
+   */
+  public List getNativeAttributeNames()
+  {
+    return nativeAttributeNames;
+  }
+
+  public String toString()
+  {
+    StringBuffer strBuf = new StringBuffer();
+
+    strBuf.append("Import:");
+
+    if (namespaceURI != null)
+    {
+      strBuf.append("\nnamespaceURI=" + namespaceURI);
+    }
+
+    if (locationURI != null)
+    {
+      strBuf.append("\nlocationURI=" + locationURI);
+    }
+
+    if (application != null)
+    {
+      strBuf.append("\napplication=" + application);
+    }
+
+    Iterator keys = extensionAttributes.keySet().iterator();
+
+    while (keys.hasNext())
+    {
+      QName name = (QName)keys.next();
+
+      strBuf.append("\nextension attribute: " + name + "=" +
+                    extensionAttributes.get(name));
+    }
+
+    return strBuf.toString();
+  }
+}