You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by ve...@apache.org on 2015/07/19 11:12:05 UTC
svn commit: r1691805 - in /webservices/axiom/trunk:
aspects/dom-aspects/src/main/java/org/apache/axiom/dom/
implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/
Author: veithen
Date: Sun Jul 19 09:12:05 2015
New Revision: 1691805
URL: http://svn.apache.org/r1691805
Log:
Reorganize the lookupPrefix/lookupNamespaceURI code.
Modified:
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMAttributeSupport.aj
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMDocumentFragmentSupport.aj
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMDocumentSupport.aj
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMElementSupport.aj
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMEntityReferenceSupport.aj
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMLeafNodeSupport.aj
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMNode.java
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMNodeSupport.aj
webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/AttrImpl.java
webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ChildNode.java
Modified: webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMAttributeSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMAttributeSupport.aj?rev=1691805&r1=1691804&r2=1691805&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMAttributeSupport.aj (original)
+++ webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMAttributeSupport.aj Sun Jul 19 09:12:05 2015
@@ -18,6 +18,7 @@
*/
package org.apache.axiom.dom;
+import org.apache.axiom.core.CoreElement;
import org.w3c.dom.DOMException;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
@@ -62,4 +63,8 @@ public aspect DOMAttributeSupport {
public final void DOMAttribute.setValue(String value) {
coreSetTextContent(value, Policies.DETACH_POLICY);
}
+
+ public final CoreElement DOMAttribute.getNamespaceContext() {
+ return coreGetOwnerElement();
+ }
}
Modified: webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMDocumentFragmentSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMDocumentFragmentSupport.aj?rev=1691805&r1=1691804&r2=1691805&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMDocumentFragmentSupport.aj (original)
+++ webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMDocumentFragmentSupport.aj Sun Jul 19 09:12:05 2015
@@ -20,6 +20,7 @@ package org.apache.axiom.dom;
import static org.apache.axiom.dom.DOMExceptionUtil.newDOMException;
+import org.apache.axiom.core.CoreElement;
import org.w3c.dom.DOMException;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
@@ -40,11 +41,7 @@ public aspect DOMDocumentFragmentSupport
public final void DOMDocumentFragment.setNodeValue(String nodeValue) {
}
- public final String DOMDocumentFragment.lookupNamespaceURI(String specifiedPrefix) {
- return null;
- }
-
- public final String DOMDocumentFragment.lookupPrefix(String namespaceURI) {
+ public final CoreElement DOMDocumentFragment.getNamespaceContext() {
return null;
}
Modified: webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMDocumentSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMDocumentSupport.aj?rev=1691805&r1=1691804&r2=1691805&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMDocumentSupport.aj (original)
+++ webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMDocumentSupport.aj Sun Jul 19 09:12:05 2015
@@ -20,6 +20,7 @@ package org.apache.axiom.dom;
import javax.xml.XMLConstants;
+import org.apache.axiom.core.CoreElement;
import org.w3c.dom.Attr;
import org.w3c.dom.CDATASection;
import org.w3c.dom.DOMConfiguration;
@@ -80,16 +81,8 @@ public aspect DOMDocumentSupport {
return (Element)coreGetDocumentElement();
}
- public final String DOMDocument.lookupNamespaceURI(String specifiedPrefix) {
- Element documentElement = getDocumentElement();
- return documentElement == null ? null
- : documentElement.lookupNamespaceURI(specifiedPrefix);
- }
-
- public final String DOMDocument.lookupPrefix(String namespaceURI) {
- Element documentElement = getDocumentElement();
- return documentElement == null ? null
- : getDocumentElement().lookupPrefix(namespaceURI);
+ public final CoreElement DOMDocument.getNamespaceContext() {
+ return coreGetDocumentElement();
}
public final DOMConfiguration DOMDocument.getDomConfig() {
Modified: webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMElementSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMElementSupport.aj?rev=1691805&r1=1691804&r2=1691805&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMElementSupport.aj (original)
+++ webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMElementSupport.aj Sun Jul 19 09:12:05 2015
@@ -21,6 +21,7 @@ package org.apache.axiom.dom;
import javax.xml.XMLConstants;
import org.apache.axiom.core.AttributeMatcher;
+import org.apache.axiom.core.CoreElement;
import org.apache.axiom.core.CoreModelException;
import org.apache.axiom.core.CoreNSAwareAttribute;
import org.apache.axiom.core.CoreNamespaceDeclaration;
@@ -52,23 +53,8 @@ public aspect DOMElementSupport {
throw new UnsupportedOperationException();
}
- public final String DOMElement.lookupNamespaceURI(String prefix) {
- if (prefix == null) {
- prefix = "";
- } else if (prefix.length() == 0) {
- return null;
- }
- String namespaceURI = coreLookupNamespaceURI(prefix, false);
- return namespaceURI == null || namespaceURI.length() == 0 ? null : namespaceURI;
- }
-
- public final String DOMElement.lookupPrefix(String namespaceURI) {
- if (namespaceURI == null) {
- return null;
- } else {
- String prefix = coreLookupPrefix(namespaceURI, false);
- return prefix == null || prefix.length() == 0 ? null : prefix;
- }
+ public final CoreElement DOMElement.getNamespaceContext() {
+ return this;
}
public final boolean DOMElement.hasAttributes() {
Modified: webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMEntityReferenceSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMEntityReferenceSupport.aj?rev=1691805&r1=1691804&r2=1691805&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMEntityReferenceSupport.aj (original)
+++ webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMEntityReferenceSupport.aj Sun Jul 19 09:12:05 2015
@@ -20,6 +20,7 @@ package org.apache.axiom.dom;
import static org.apache.axiom.dom.DOMExceptionUtil.newDOMException;
+import org.apache.axiom.core.CoreElement;
import org.w3c.dom.DOMException;
import org.w3c.dom.NamedNodeMap;
@@ -62,4 +63,8 @@ public aspect DOMEntityReferenceSupport
public final void DOMEntityReference.setTextContent(String textContent) {
throw new UnsupportedOperationException();
}
+
+ public final CoreElement DOMEntityReference.getNamespaceContext() {
+ return coreGetParentElement();
+ }
}
Modified: webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMLeafNodeSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMLeafNodeSupport.aj?rev=1691805&r1=1691804&r2=1691805&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMLeafNodeSupport.aj (original)
+++ webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMLeafNodeSupport.aj Sun Jul 19 09:12:05 2015
@@ -20,6 +20,7 @@ package org.apache.axiom.dom;
import static org.apache.axiom.dom.DOMExceptionUtil.newDOMException;
+import org.apache.axiom.core.CoreElement;
import org.w3c.dom.DOMException;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
@@ -89,4 +90,8 @@ public aspect DOMLeafNodeSupport {
public final void DOMLeafNode.setTextContent(String textContent) {
setNodeValue(textContent);
}
+
+ public final CoreElement DOMLeafNode.getNamespaceContext() {
+ return coreGetParentElement();
+ }
}
Modified: webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMNode.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMNode.java?rev=1691805&r1=1691804&r2=1691805&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMNode.java (original)
+++ webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMNode.java Sun Jul 19 09:12:05 2015
@@ -18,9 +18,20 @@
*/
package org.apache.axiom.dom;
+import org.apache.axiom.core.CoreElement;
import org.apache.axiom.core.CoreNode;
import org.w3c.dom.Node;
public interface DOMNode extends Node, CoreNode {
-
+ /**
+ * Get the element that defines this node's namespace context. The returned element is used by
+ * the implementations of {@link Node#lookupNamespaceURI(String)},
+ * {@link Node#lookupPrefix(String)} and {@link Node#isDefaultNamespace(String)}. The
+ * implementation must be compatible with the provisions in appendix B of the DOM Level 3 Core
+ * specification.
+ *
+ * @return the element defining the namespace context of this node or <code>null</code> if the
+ * namespace context of this node is defined to be empty
+ */
+ CoreElement getNamespaceContext();
}
Modified: webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMNodeSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMNodeSupport.aj?rev=1691805&r1=1691804&r2=1691805&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMNodeSupport.aj (original)
+++ webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMNodeSupport.aj Sun Jul 19 09:12:05 2015
@@ -18,9 +18,38 @@
*/
package org.apache.axiom.dom;
+import org.apache.axiom.core.CoreElement;
+
public aspect DOMNodeSupport {
// TODO: should eventually have package access
public void DOMNode.normalize(DOMConfigurationImpl config) {
// Default: do nothing
}
+
+ public final String DOMNode.lookupNamespaceURI(String prefix) {
+ CoreElement context = getNamespaceContext();
+ if (context == null) {
+ return null;
+ }
+ if (prefix == null) {
+ prefix = "";
+ } else if (prefix.length() == 0) {
+ return null;
+ }
+ String namespaceURI = context.coreLookupNamespaceURI(prefix, false);
+ return namespaceURI == null || namespaceURI.length() == 0 ? null : namespaceURI;
+ }
+
+ public final String DOMNode.lookupPrefix(String namespaceURI) {
+ CoreElement context = getNamespaceContext();
+ if (context == null) {
+ return null;
+ }
+ if (namespaceURI == null) {
+ return null;
+ } else {
+ String prefix = context.coreLookupPrefix(namespaceURI, false);
+ return prefix == null || prefix.length() == 0 ? null : prefix;
+ }
+ }
}
Modified: webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/AttrImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/AttrImpl.java?rev=1691805&r1=1691804&r2=1691805&view=diff
==============================================================================
--- webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/AttrImpl.java (original)
+++ webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/AttrImpl.java Sun Jul 19 09:12:05 2015
@@ -66,14 +66,4 @@ public abstract class AttrImpl extends P
public boolean isId() {
return isId;
}
-
- public final String lookupNamespaceURI(String specifiedPrefix) {
- Element ownerElement = getOwnerElement();
- return ownerElement == null ? null : ownerElement.lookupNamespaceURI(specifiedPrefix);
- }
-
- public final String lookupPrefix(String namespaceURI) {
- Element ownerElement = getOwnerElement();
- return ownerElement == null ? null : ownerElement.lookupPrefix(namespaceURI);
- }
}
Modified: webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ChildNode.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ChildNode.java?rev=1691805&r1=1691804&r2=1691805&view=diff
==============================================================================
--- webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ChildNode.java (original)
+++ webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ChildNode.java Sun Jul 19 09:12:05 2015
@@ -24,7 +24,6 @@ import org.apache.axiom.om.OMException;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMXMLParserWrapper;
import org.apache.axiom.om.impl.common.AxiomChildNode;
-import org.w3c.dom.Element;
public abstract class ChildNode extends NodeImpl implements DOMChildNode, AxiomChildNode {
public ChildNode(OMFactory factory) {
@@ -67,17 +66,4 @@ public abstract class ChildNode extends
public final void build() {
// Do nothing; a leaf node is always complete
}
-
- public final String lookupNamespaceURI(String specifiedPrefix) {
- ParentNode parent = (ParentNode)coreGetParent();
- // Note: according to the DOM specs, we need to delegate the lookup if the parent
- // is an element or an entity reference. However, since we don't support entity
- // references fully, we only check for elements.
- return parent instanceof Element ? parent.lookupNamespaceURI(specifiedPrefix) : null;
- }
-
- public final String lookupPrefix(String namespaceURI) {
- ParentNode parent = (ParentNode)coreGetParent();
- return parent instanceof Element ? parent.lookupPrefix(namespaceURI) : null;
- }
}