Mercurial > repos > ganjoo > webservice_toolsuite
diff WebServiceToolWorkflow/lib/SAWADLParser/src/edu/uga/cs/lsdis/meteors/wadls/extensions/schema/SchemaImpl.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/extensions/schema/SchemaImpl.java Tue Jun 07 18:00:50 2011 -0400 @@ -0,0 +1,235 @@ +/* + * (c) Copyright IBM Corp 2004, 2005 + */ + +package edu.uga.cs.lsdis.meteors.wadls.extensions.schema; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Vector; + +import javax.wadls.extensions.schema.Schema; +import javax.wadls.extensions.schema.SchemaImport; +import javax.wadls.extensions.schema.SchemaReference; +import javax.xml.namespace.QName; + +import org.w3c.dom.Element; + +/** + * This class is used to wrap schema elements. It holds the DOM Element to the + * <code><schema></code> element. + * + * @see SchemaSerializer + * @see SchemaDeserializer + * + * @author Jeremy Hughes <hughesj@uk.ibm.com> + */ +public class SchemaImpl implements Schema +{ + protected QName elementType = null; + // Uses the wrapper type so we can tell if it was set or not. + protected Boolean required = null; + protected Element element = null; + + public static final long serialVersionUID = 1; + + /* + * imports is a Map of Lists with key of the import's namespace URI. Each List + * contains the SchemaImport objects for that namespace. There can be more + * than one SchemaImport in a List - one for each schemaLocation attribute + * setting. + */ + private Map imports = new HashMap(); + + /* + * includes is a List of Include objects for the targetNamespace of the + * enclosing schema. There is one Include in the List for each <include> + * element in the XML Schema. + */ + private List includes = new Vector(); + + /* + * redefines is a list of Redefine obejcts for the targetNamespace of the + * enclosing schema. There is one Redefine in the List for each <redefine> + * element in the XML Schema. + */ + private List redefines = new Vector(); + + private String documentBaseURI = null; + + /** + * Get a map of lists containing all the imports defined here. The map's keys + * are Strings representing the namespace URIs, and the map's values are + * lists. There is one list for each namespace URI for which imports have been + * defined. + * + * @return a Map of Lists of Import instances keyed off the import's namespace + */ + public Map getImports() + { + return this.imports; + } + + /** + * Create a new schema import. + * + * @return the newly created schema import + */ + public SchemaImport createImport() + { + return new SchemaImportImpl(); + } + + /** + * Add an import to this LightWeightSchema + * + * @param importSchema the import to be added + */ + public void addImport(SchemaImport importSchema) + { + String namespaceURI = importSchema.getNamespaceURI(); + List importList = (List) this.imports.get(namespaceURI); + + if (importList == null) + { + importList = new Vector(); + + this.imports.put(namespaceURI, importList); + } + + importList.add(importSchema); + } + + /** + * Get list of includes defined here. + * + * @return a List of SchemaReference instances representing the schema + * includes. + */ + + public List getIncludes() + { + return this.includes; + } + + public SchemaReference createInclude() + { + return new SchemaReferenceImpl(); + } + + public void addInclude(SchemaReference includeSchema) + { + this.includes.add(includeSchema); + } + + public List getRedefines() + { + return this.redefines; + } + + public SchemaReference createRedefine() + { + return new SchemaReferenceImpl(); + } + + public void addRedefine(SchemaReference redefineSchema) + { + this.redefines.add(redefineSchema); + } + + public String toString() + { + StringBuffer strBuf = new StringBuffer(); + + strBuf.append("SchemaExtensibilityElement (" + this.elementType + "):"); + strBuf.append("\nrequired=" + this.required); + + if (this.element != null) + { + strBuf.append("\nelement=" + this.element); + } + + return strBuf.toString(); + } + + /** + * Set the type of this extensibility element. + * + * @param elementType the type + */ + public void setElementType(QName elementType) + { + this.elementType = elementType; + } + + /** + * Get the type of this extensibility element. + * + * @return the extensibility element's type + */ + public QName getElementType() + { + return elementType; + } + + /** + * Set whether or not the semantics of this extension + * are required. Relates to the wsdl:required attribute. + */ + public void setRequired(Boolean required) + { + this.required = required; + } + + /** + * Get whether or not the semantics of this extension + * are required. Relates to the wsdl:required attribute. + */ + public Boolean getRequired() + { + return required; + } + + /** + * Set the DOM Element that represents this schema element. + * + * @param element the DOM element representing this schema + */ + public void setElement(Element element) + { + this.element = element; + } + + /** + * Get the DOM Element that represents this schema element. + * + * @return the DOM element representing this schema + */ + public Element getElement() + { + return element; + } + + /** + * Set the document base URI of this schema definition. Can be used to + * represent the origin of the schema, and can be exploited when resolving + * relative URIs (e.g. in <import>s). + * + * @param documentBaseURI the document base URI of this schema + */ + public void setDocumentBaseURI(String documentBaseURI) + { + this.documentBaseURI = documentBaseURI; + } + + /** + * Get the document base URI of this schema + * + * @return the document base URI + */ + public String getDocumentBaseURI() + { + return this.documentBaseURI; + } +} \ No newline at end of file