Mercurial > repos > uga-galaxy-group > webservice_toolsuite_v1_1
diff WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/IncludeImpl.java @ 0:049760c677de default tip
Galaxy WSExtensions added successfully
author | uga-galaxy-group |
---|---|
date | Tue, 05 Jul 2011 19:34:18 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/WebServiceExtensionsV1.1/WebServiceToolWorkflow_REST_SOAP/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/IncludeImpl.java Tue Jul 05 19:34:18 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(); + } +}