You are viewing a plain text version of this content. The canonical link for it is here.
Posted to woden-dev@ws.apache.org by jk...@apache.org on 2006/03/03 14:49:47 UTC
svn commit: r382812 - in /incubator/woden/java/src/org/apache/woden:
internal/wsdl20/ internal/wsdl20/extensions/
internal/wsdl20/extensions/soap/ wsdl20/extensions/
Author: jkaputin
Date: Fri Mar 3 05:49:46 2006
New Revision: 382812
URL: http://svn.apache.org/viewcvs?rev=382812&view=rev
Log:
Refactored the implementation of AttributeExtensible
and ElementExtensible into two new impl classes and changed
existing implementors to use delegation to invoke that
behaviour, rather than duplicating the same code across
classes or via inheritance.
Added:
incubator/woden/java/src/org/apache/woden/internal/wsdl20/extensions/AttributeExtensibleImpl.java
incubator/woden/java/src/org/apache/woden/internal/wsdl20/extensions/ElementExtensibleImpl.java
Modified:
incubator/woden/java/src/org/apache/woden/internal/wsdl20/WSDLElementImpl.java
incubator/woden/java/src/org/apache/woden/internal/wsdl20/extensions/soap/SOAPHeaderBlockImpl.java
incubator/woden/java/src/org/apache/woden/internal/wsdl20/extensions/soap/SOAPModuleImpl.java
incubator/woden/java/src/org/apache/woden/wsdl20/extensions/ElementExtensible.java
Modified: incubator/woden/java/src/org/apache/woden/internal/wsdl20/WSDLElementImpl.java
URL: http://svn.apache.org/viewcvs/incubator/woden/java/src/org/apache/woden/internal/wsdl20/WSDLElementImpl.java?rev=382812&r1=382811&r2=382812&view=diff
==============================================================================
--- incubator/woden/java/src/org/apache/woden/internal/wsdl20/WSDLElementImpl.java (original)
+++ incubator/woden/java/src/org/apache/woden/internal/wsdl20/WSDLElementImpl.java Fri Mar 3 05:49:46 2006
@@ -16,15 +16,11 @@
package org.apache.woden.internal.wsdl20;
import java.net.URI;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Vector;
import javax.xml.namespace.QName;
+import org.apache.woden.internal.wsdl20.extensions.AttributeExtensibleImpl;
+import org.apache.woden.internal.wsdl20.extensions.ElementExtensibleImpl;
import org.apache.woden.wsdl20.extensions.ExtensionElement;
import org.apache.woden.wsdl20.xml.WSDLElement;
import org.apache.woden.xml.XMLAttr;
@@ -39,101 +35,70 @@
*/
public class WSDLElementImpl implements WSDLElement
{
- Map fExtAttributes = new HashMap();
- List fExtElements = new Vector();
+ private AttributeExtensibleImpl fAttrExt = new AttributeExtensibleImpl();
+ private ElementExtensibleImpl fElemExt = new ElementExtensibleImpl();
/* (non-Javadoc)
- * @see org.apache.woden.wsdl20.xml.WSDLElement#setExtensionAttribute(javax.xml.namespace.QName, org.apache.woden.xml.XMLAttr)
+ * @see org.apache.woden.wsdl20.extensions.AttributeExtensible#setExtensionAttribute(javax.xml.namespace.QName, org.apache.woden.xml.XMLAttr)
*/
- public void setExtensionAttribute(QName attrQN, XMLAttr attr)
+ public void setExtensionAttribute(QName attrType, XMLAttr attr)
{
- if(attrQN != null) //TODO throw IllegArgExc if it is null?
- {
- if(attr != null) {
- fExtAttributes.put(attrQN, attr);
- } else {
- fExtAttributes.remove(attrQN);
- }
- }
+ fAttrExt.setExtensionAttribute(attrType, attr);
}
/* (non-Javadoc)
- * @see org.apache.woden.wsdl20.xml.WSDLElement#getExtensionAttribute(javax.xml.namespace.QName)
+ * @see org.apache.woden.wsdl20.extensions.AttributeExtensible#getExtensionAttribute(javax.xml.namespace.QName)
*/
- public XMLAttr getExtensionAttribute(QName attrQN)
+ public XMLAttr getExtensionAttribute(QName attrType)
{
- //TODO throw IllegArgExc if it is null?
- if(attrQN != null) {
- return (XMLAttr)fExtAttributes.get(attrQN);
- } else {
- return null;
- }
+ return fAttrExt.getExtensionAttribute(attrType);
}
/* (non-Javadoc)
- * @see org.apache.woden.wsdl20.xml.WSDLElement#getExtensionAttributesForNamespace(java.net.URI)
+ * @see org.apache.woden.wsdl20.extensions.AttributeExtensible#getExtensionAttributesForNamespace(java.net.URI)
*/
public XMLAttr[] getExtensionAttributesForNamespace(URI namespace)
{
- if(namespace != null)
- {
- String extensionNS = namespace.toString();
- List list = new Vector();
- Collection coll = fExtAttributes.keySet();
- for(Iterator i = coll.iterator(); i.hasNext();)
- {
- QName qn = (QName)i.next();
- if(qn.getNamespaceURI().equals(extensionNS))
- {
- list.add(fExtAttributes.get(qn));
- }
- }
- XMLAttr[] array = new XMLAttr[list.size()];
- list.toArray(array);
- return array;
- }
- else
- {
- return new XMLAttr[0];
- }
+ return fAttrExt.getExtensionAttributesForNamespace(namespace);
}
/* (non-Javadoc)
- * @see org.apache.woden.wsdl20.xml.WSDLElement#getExtensionAttributes()
+ * @see org.apache.woden.wsdl20.extensions.AttributeExtensible#getExtensionAttributes()
*/
public XMLAttr[] getExtensionAttributes()
{
- Collection coll = fExtAttributes.values();
- XMLAttr[] array = new XMLAttr[coll.size()];
- coll.toArray(array);
- return array;
+ return fAttrExt.getExtensionAttributes();
}
/* (non-Javadoc)
- * @see org.apache.woden.wsdl20.xml.WSDLElement#addExtensionElement(org.apache.woden.wsdl20.extensions.ExtensionElement)
+ * @see org.apache.woden.wsdl20.extensions.ElementExtensible#addExtensionElement(org.apache.woden.wsdl20.extensions.ExtensionElement)
*/
public void addExtensionElement(ExtensionElement extEl)
{
- if(extEl != null) {
- fExtElements.add(extEl);
- }
+ fElemExt.addExtensionElement(extEl);
}
/* (non-Javadoc)
- * @see org.apache.woden.wsdl20.xml.WSDLElement#removeExtensionElement(org.apache.woden.wsdl20.extensions.ExtensionElement)
+ * @see org.apache.woden.wsdl20.extensions.ElementExtensible#removeExtensionElement(org.apache.woden.wsdl20.extensions.ExtensionElement)
*/
public void removeExtensionElement(ExtensionElement extEl)
{
- fExtElements.remove(extEl);
+ fElemExt.removeExtensionElement(extEl);
}
/* (non-Javadoc)
- * @see org.apache.woden.wsdl20.xml.WSDLElement#getExtensionElements()
+ * @see org.apache.woden.wsdl20.extensions.ElementExtensible#getExtensionElements()
*/
public ExtensionElement[] getExtensionElements()
{
- ExtensionElement[] array = new ExtensionElement[fExtElements.size()];
- fExtElements.toArray(array);
- return array;
+ return fElemExt.getExtensionElements();
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.woden.wsdl20.extensions.ElementExtensible#getExtensionElementsOfType(javax.xml.namespace.QName)
+ */
+ public ExtensionElement[] getExtensionElementsOfType(QName elemType)
+ {
+ return fElemExt.getExtensionElementsOfType(elemType);
}
}
Added: incubator/woden/java/src/org/apache/woden/internal/wsdl20/extensions/AttributeExtensibleImpl.java
URL: http://svn.apache.org/viewcvs/incubator/woden/java/src/org/apache/woden/internal/wsdl20/extensions/AttributeExtensibleImpl.java?rev=382812&view=auto
==============================================================================
--- incubator/woden/java/src/org/apache/woden/internal/wsdl20/extensions/AttributeExtensibleImpl.java (added)
+++ incubator/woden/java/src/org/apache/woden/internal/wsdl20/extensions/AttributeExtensibleImpl.java Fri Mar 3 05:49:46 2006
@@ -0,0 +1,109 @@
+/**
+ * Copyright 2006 Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.woden.internal.wsdl20.extensions;
+
+import java.net.URI;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Vector;
+
+import javax.xml.namespace.QName;
+
+import org.apache.woden.wsdl20.extensions.AttributeExtensible;
+import org.apache.woden.xml.XMLAttr;
+
+/**
+ * Common code for handling extension attributes.
+ * Can be reused by inheritance or by delegation.
+ *
+ * @author jkaputin@ws.apache.org
+ */
+public class AttributeExtensibleImpl implements AttributeExtensible
+{
+ private Map fExtAttributes = new HashMap();
+
+
+ /* (non-Javadoc)
+ * @see org.apache.woden.wsdl20.extensions.AttributeExtensible#setExtensionAttribute(javax.xml.namespace.QName, org.apache.woden.xml.XMLAttr)
+ */
+ public void setExtensionAttribute(QName attrType, XMLAttr attr)
+ {
+ if(attrType != null) //TODO throw IllegArgExc if it is null?
+ {
+ if(attr != null) {
+ fExtAttributes.put(attrType, attr);
+ } else {
+ fExtAttributes.remove(attrType);
+ }
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.woden.wsdl20.extensions.AttributeExtensible#getExtensionAttribute(javax.xml.namespace.QName)
+ */
+ public XMLAttr getExtensionAttribute(QName attrType)
+ {
+ //TODO throw IllegArgExc if it is null?
+ if(attrType != null) {
+ return (XMLAttr)fExtAttributes.get(attrType);
+ } else {
+ return null;
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.woden.wsdl20.extensions.AttributeExtensible#getExtensionAttributesForNamespace(java.net.URI)
+ */
+ public XMLAttr[] getExtensionAttributesForNamespace(URI namespace)
+ {
+ if(namespace != null)
+ {
+ String extensionNS = namespace.toString();
+ List list = new Vector();
+ Collection coll = fExtAttributes.keySet();
+ for(Iterator i = coll.iterator(); i.hasNext();)
+ {
+ QName qn = (QName)i.next();
+ if(qn.getNamespaceURI().equals(extensionNS))
+ {
+ list.add(fExtAttributes.get(qn));
+ }
+ }
+ XMLAttr[] array = new XMLAttr[list.size()];
+ list.toArray(array);
+ return array;
+ }
+ else
+ {
+ return new XMLAttr[0];
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.woden.wsdl20.extensions.AttributeExtensible#getExtensionAttributes()
+ */
+ public XMLAttr[] getExtensionAttributes()
+ {
+ Collection coll = fExtAttributes.values();
+ XMLAttr[] array = new XMLAttr[coll.size()];
+ coll.toArray(array);
+ return array;
+ }
+
+}
Added: incubator/woden/java/src/org/apache/woden/internal/wsdl20/extensions/ElementExtensibleImpl.java
URL: http://svn.apache.org/viewcvs/incubator/woden/java/src/org/apache/woden/internal/wsdl20/extensions/ElementExtensibleImpl.java?rev=382812&view=auto
==============================================================================
--- incubator/woden/java/src/org/apache/woden/internal/wsdl20/extensions/ElementExtensibleImpl.java (added)
+++ incubator/woden/java/src/org/apache/woden/internal/wsdl20/extensions/ElementExtensibleImpl.java Fri Mar 3 05:49:46 2006
@@ -0,0 +1,89 @@
+/**
+ * Copyright 2006 Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.woden.internal.wsdl20.extensions;
+
+import java.util.Iterator;
+import java.util.List;
+import java.util.Vector;
+
+import javax.xml.namespace.QName;
+
+import org.apache.woden.wsdl20.extensions.ElementExtensible;
+import org.apache.woden.wsdl20.extensions.ExtensionElement;
+
+/**
+ * Common code for handling extension elements.
+ * Can be reused by inheritance or by delegation.
+ *
+ * @author jkaputin@ws.apache.org
+ */
+public class ElementExtensibleImpl implements ElementExtensible
+{
+ private List fExtElements = new Vector();
+
+ /* (non-Javadoc)
+ * @see org.apache.woden.wsdl20.extensions.ElementExtensible#addExtensionElement(org.apache.woden.wsdl20.extensions.ExtensionElement)
+ */
+ public void addExtensionElement(ExtensionElement extEl)
+ {
+ if(extEl != null) {
+ fExtElements.add(extEl);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.woden.wsdl20.extensions.ElementExtensible#removeExtensionElement(org.apache.woden.wsdl20.extensions.ExtensionElement)
+ */
+ public void removeExtensionElement(ExtensionElement extEl)
+ {
+ fExtElements.remove(extEl);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.woden.wsdl20.extensions.ElementExtensible#getExtensionElements()
+ */
+ public ExtensionElement[] getExtensionElements()
+ {
+ ExtensionElement[] array = new ExtensionElement[fExtElements.size()];
+ fExtElements.toArray(array);
+ return array;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.woden.wsdl20.extensions.ElementExtensible#getExtensionElementsOfType(javax.xml.namespace.QName)
+ */
+ public ExtensionElement[] getExtensionElementsOfType(QName extType)
+ {
+ List elements = new Vector();
+
+ if(extType != null)
+ {
+ for(Iterator i=fExtElements.iterator(); i.hasNext();)
+ {
+ ExtensionElement extElem = (ExtensionElement)i.next();
+ if(extElem.getExtensionType().equals(extType))
+ {
+ elements.add(extElem);
+ }
+ }
+ }
+
+ ExtensionElement[] array = new ExtensionElement[elements.size()];
+ elements.toArray(array);
+ return array;
+ }
+
+}
Modified: incubator/woden/java/src/org/apache/woden/internal/wsdl20/extensions/soap/SOAPHeaderBlockImpl.java
URL: http://svn.apache.org/viewcvs/incubator/woden/java/src/org/apache/woden/internal/wsdl20/extensions/soap/SOAPHeaderBlockImpl.java?rev=382812&r1=382811&r2=382812&view=diff
==============================================================================
--- incubator/woden/java/src/org/apache/woden/internal/wsdl20/extensions/soap/SOAPHeaderBlockImpl.java (original)
+++ incubator/woden/java/src/org/apache/woden/internal/wsdl20/extensions/soap/SOAPHeaderBlockImpl.java Fri Mar 3 05:49:46 2006
@@ -16,16 +16,14 @@
package org.apache.woden.internal.wsdl20.extensions.soap;
import java.net.URI;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
import java.util.List;
-import java.util.Map;
import java.util.Vector;
import javax.xml.namespace.QName;
import org.apache.woden.internal.wsdl20.TypesImpl;
+import org.apache.woden.internal.wsdl20.extensions.AttributeExtensibleImpl;
+import org.apache.woden.internal.wsdl20.extensions.ElementExtensibleImpl;
import org.apache.woden.wsdl20.ElementDeclaration;
import org.apache.woden.wsdl20.WSDLComponent;
import org.apache.woden.wsdl20.extensions.ExtensionElement;
@@ -47,15 +45,15 @@
public class SOAPHeaderBlockImpl implements SOAPHeaderBlock,
SOAPHeaderBlockElement
{
+ private WSDLElement fParent = null;
+ private List fDocumentationElements = new Vector();
private QName fExtElementType = null;
+ private Boolean fRequired = null;
+ private AttributeExtensibleImpl fAttrExt = new AttributeExtensibleImpl();
+ private ElementExtensibleImpl fElemExt = new ElementExtensibleImpl();
private QName fElementDeclQN = null;
private ElementDeclaration fElementDecl = null;
private Boolean fMustUnderstand = null;
- private Boolean fRequired = null;
- private Map fExtAttributes = new HashMap();
- private List fExtElements = new Vector();
- private WSDLElement fParent = null;
- private List fDocumentationElements = new Vector();
private TypesImpl fTypes = null;
@@ -204,67 +202,32 @@
/* (non-Javadoc)
* @see org.apache.woden.wsdl20.extensions.AttributeExtensible#setExtensionAttribute(javax.xml.namespace.QName, org.apache.woden.xml.XMLAttr)
*/
- public void setExtensionAttribute(QName attrQN, XMLAttr attr)
+ public void setExtensionAttribute(QName attrType, XMLAttr attr)
{
- if(attrQN != null) //TODO throw IllegArgExc if it is null?
- {
- if(attr != null) {
- fExtAttributes.put(attrQN, attr);
- } else {
- fExtAttributes.remove(attrQN);
- }
- }
+ fAttrExt.setExtensionAttribute(attrType, attr);
}
/* (non-Javadoc)
* @see org.apache.woden.wsdl20.extensions.AttributeExtensible#getExtensionAttribute(javax.xml.namespace.QName)
*/
- public XMLAttr getExtensionAttribute(QName attrQN)
+ public XMLAttr getExtensionAttribute(QName attrType)
{
- //TODO throw IllegArgExc if it is null?
- if(attrQN != null) {
- return (XMLAttr)fExtAttributes.get(attrQN);
- } else {
- return null;
- }
+ return fAttrExt.getExtensionAttribute(attrType);
}
/* (non-Javadoc)
- * @see org.apache.woden.wsdl20.xml.WSDLElement#getExtensionAttributesForNamespace(java.net.URI)
+ * @see org.apache.woden.wsdl20.extensions.AttributeExtensible#getExtensionAttributesForNamespace(java.net.URI)
*/
public XMLAttr[] getExtensionAttributesForNamespace(URI namespace)
{
- if(namespace != null)
- {
- String extensionNS = namespace.toString();
- List list = new Vector();
- Collection coll = fExtAttributes.keySet();
- for(Iterator i = coll.iterator(); i.hasNext();)
- {
- QName qn = (QName)i.next();
- if(qn.getNamespaceURI().equals(extensionNS))
- {
- list.add(fExtAttributes.get(qn));
- }
- }
- XMLAttr[] array = new XMLAttr[list.size()];
- list.toArray(array);
- return array;
- }
- else
- {
- return new XMLAttr[0];
- }
+ return fAttrExt.getExtensionAttributesForNamespace(namespace);
}
/* (non-Javadoc)
* @see org.apache.woden.wsdl20.extensions.AttributeExtensible#getExtensionAttributes()
*/
public XMLAttr[] getExtensionAttributes()
{
- Collection coll = fExtAttributes.values();
- XMLAttr[] array = new XMLAttr[coll.size()];
- coll.toArray(array);
- return array;
+ return fAttrExt.getExtensionAttributes();
}
/* (non-Javadoc)
@@ -272,9 +235,7 @@
*/
public void addExtensionElement(ExtensionElement extEl)
{
- if(extEl != null) {
- fExtElements.add(extEl);
- }
+ fElemExt.addExtensionElement(extEl);
}
/* (non-Javadoc)
@@ -282,7 +243,7 @@
*/
public void removeExtensionElement(ExtensionElement extEl)
{
- fExtElements.remove(extEl);
+ fElemExt.removeExtensionElement(extEl);
}
/* (non-Javadoc)
@@ -290,11 +251,16 @@
*/
public ExtensionElement[] getExtensionElements()
{
- ExtensionElement[] array = new ExtensionElement[fExtElements.size()];
- fExtElements.toArray(array);
- return array;
+ return fElemExt.getExtensionElements();
}
+ /* (non-Javadoc)
+ * @see org.apache.woden.wsdl20.extensions.ElementExtensible#getExtensionElementsOfType(javax.xml.namespace.QName)
+ */
+ public ExtensionElement[] getExtensionElementsOfType(QName extType)
+ {
+ return fElemExt.getExtensionElementsOfType(extType);
+ }
/* ************************************************************
* Non-API implementation methods
Modified: incubator/woden/java/src/org/apache/woden/internal/wsdl20/extensions/soap/SOAPModuleImpl.java
URL: http://svn.apache.org/viewcvs/incubator/woden/java/src/org/apache/woden/internal/wsdl20/extensions/soap/SOAPModuleImpl.java?rev=382812&r1=382811&r2=382812&view=diff
==============================================================================
--- incubator/woden/java/src/org/apache/woden/internal/wsdl20/extensions/soap/SOAPModuleImpl.java (original)
+++ incubator/woden/java/src/org/apache/woden/internal/wsdl20/extensions/soap/SOAPModuleImpl.java Fri Mar 3 05:49:46 2006
@@ -16,15 +16,13 @@
package org.apache.woden.internal.wsdl20.extensions.soap;
import java.net.URI;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
import java.util.List;
-import java.util.Map;
import java.util.Vector;
import javax.xml.namespace.QName;
+import org.apache.woden.internal.wsdl20.extensions.AttributeExtensibleImpl;
+import org.apache.woden.internal.wsdl20.extensions.ElementExtensibleImpl;
import org.apache.woden.wsdl20.WSDLComponent;
import org.apache.woden.wsdl20.extensions.ExtensionElement;
import org.apache.woden.wsdl20.extensions.soap.SOAPModule;
@@ -42,13 +40,14 @@
*/
public class SOAPModuleImpl implements SOAPModule, SOAPModuleElement
{
- private QName fExtElementType = null;
- private URI fRef = null;
- private Boolean fRequired = null;
- private Map fExtAttributes = new HashMap();
- private List fExtElements = new Vector();
private WSDLElement fParent = null;
private List fDocumentationElements = new Vector();
+ private QName fExtElementType = null;
+ private Boolean fRequired = null;
+ private AttributeExtensibleImpl fAttrExt = new AttributeExtensibleImpl();
+ private ElementExtensibleImpl fElemExt = new ElementExtensibleImpl();
+ private URI fRef = null;
+
/* ***********************************************************************
* Component model methods (SOAPModule interface), shared with Element model
@@ -157,57 +156,24 @@
/* (non-Javadoc)
* @see org.apache.woden.wsdl20.extensions.AttributeExtensible#setExtensionAttribute(javax.xml.namespace.QName, org.apache.woden.xml.XMLAttr)
*/
- public void setExtensionAttribute(QName attrQN, XMLAttr attr)
+ public void setExtensionAttribute(QName attrType, XMLAttr attr)
{
- if(attrQN != null) //TODO throw IllegArgExc if it is null?
- {
- if(attr != null) {
- fExtAttributes.put(attrQN, attr);
- } else {
- fExtAttributes.remove(attrQN);
- }
- }
+ fAttrExt.setExtensionAttribute(attrType, attr);
}
/* (non-Javadoc)
* @see org.apache.woden.wsdl20.extensions.AttributeExtensible#getExtensionAttribute(javax.xml.namespace.QName)
*/
- public XMLAttr getExtensionAttribute(QName attrQN)
+ public XMLAttr getExtensionAttribute(QName attrType)
{
- //TODO throw IllegArgExc if it is null?
- if(attrQN != null) {
- return (XMLAttr)fExtAttributes.get(attrQN);
- } else {
- return null;
- }
+ return fAttrExt.getExtensionAttribute(attrType);
}
/* (non-Javadoc)
- * @see org.apache.woden.wsdl20.xml.WSDLElement#getExtensionAttributesForNamespace(java.net.URI)
*/
public XMLAttr[] getExtensionAttributesForNamespace(URI namespace)
{
- if(namespace != null)
- {
- String extensionNS = namespace.toString();
- List list = new Vector();
- Collection coll = fExtAttributes.keySet();
- for(Iterator i = coll.iterator(); i.hasNext();)
- {
- QName qn = (QName)i.next();
- if(qn.getNamespaceURI().equals(extensionNS))
- {
- list.add(fExtAttributes.get(qn));
- }
- }
- XMLAttr[] array = new XMLAttr[list.size()];
- list.toArray(array);
- return array;
- }
- else
- {
- return new XMLAttr[0];
- }
+ return fAttrExt.getExtensionAttributesForNamespace(namespace);
}
/* (non-Javadoc)
@@ -215,10 +181,7 @@
*/
public XMLAttr[] getExtensionAttributes()
{
- Collection coll = fExtAttributes.values();
- XMLAttr[] array = new XMLAttr[coll.size()];
- coll.toArray(array);
- return array;
+ return fAttrExt.getExtensionAttributes();
}
/* (non-Javadoc)
@@ -226,9 +189,7 @@
*/
public void addExtensionElement(ExtensionElement extEl)
{
- if(extEl != null) {
- fExtElements.add(extEl);
- }
+ fElemExt.addExtensionElement(extEl);
}
/* (non-Javadoc)
@@ -236,7 +197,7 @@
*/
public void removeExtensionElement(ExtensionElement extEl)
{
- fExtElements.remove(extEl);
+ fElemExt.removeExtensionElement(extEl);
}
/* (non-Javadoc)
@@ -244,9 +205,14 @@
*/
public ExtensionElement[] getExtensionElements()
{
- ExtensionElement[] array = new ExtensionElement[fExtElements.size()];
- fExtElements.toArray(array);
- return array;
+ return fElemExt.getExtensionElements();
}
+ /* (non-Javadoc)
+ * @see org.apache.woden.wsdl20.extensions.ElementExtensible#getExtensionElementsOfType(javax.xml.namespace.QName)
+ */
+ public ExtensionElement[] getExtensionElementsOfType(QName extType)
+ {
+ return fElemExt.getExtensionElementsOfType(extType);
+ }
}
Modified: incubator/woden/java/src/org/apache/woden/wsdl20/extensions/ElementExtensible.java
URL: http://svn.apache.org/viewcvs/incubator/woden/java/src/org/apache/woden/wsdl20/extensions/ElementExtensible.java?rev=382812&r1=382811&r2=382812&view=diff
==============================================================================
--- incubator/woden/java/src/org/apache/woden/wsdl20/extensions/ElementExtensible.java (original)
+++ incubator/woden/java/src/org/apache/woden/wsdl20/extensions/ElementExtensible.java Fri Mar 3 05:49:46 2006
@@ -15,6 +15,8 @@
*/
package org.apache.woden.wsdl20.extensions;
+import javax.xml.namespace.QName;
+
/**
* This interface represents elements that may contain extension elements.
*
@@ -27,4 +29,6 @@
public void removeExtensionElement(ExtensionElement extEl);
public ExtensionElement[] getExtensionElements();
+
+ public ExtensionElement[] getExtensionElementsOfType(QName extType);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: woden-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: woden-dev-help@ws.apache.org