Author: veithen
Date: Sat Jul 12 14:54:31 2014
New Revision: 1609939
URL: http://svn.apache.org/r1609939
Log:
Refactor the named node helpers into aspects.
Added:
webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/OMNamedInformationItemSupport.aj
- copied, changed from r1609263,
webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/OMNamedInformationItemHelper.java
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NamedNodeSupport.aj
- copied, changed from r1609263,
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NamedNodeHelper.java
Removed:
webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/OMNamedInformationItemHelper.java
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NamedNodeHelper.java
Modified:
webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/IElement.java
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/AttrImpl.java
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ChildNode.java
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DocumentFragmentImpl.java
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DocumentImpl.java
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ElementImpl.java
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NamedNode.java
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NodeImpl.java
webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMAttributeImpl.java
webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMElementImpl.java
Modified:
webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/IElement.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/IElement.java?rev=1609939&r1=1609938&r2=1609939&view=diff
==============================================================================
---
webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/IElement.java
(original)
+++
webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/IElement.java
Sat Jul 12 14:54:31 2014
@@ -22,6 +22,6 @@ import org.apache.axiom.core.DeferringPa
import org.apache.axiom.om.OMNamespace;
import org.apache.axiom.om.impl.OMElementEx;
-public interface IElement extends OMElementEx, IContainer, INode,
DeferringParentNode {
+public interface IElement extends OMElementEx, IContainer, INode,
INamedInformationItem, DeferringParentNode {
void addNamespaceDeclaration(OMNamespace ns);
}
Copied:
webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/OMNamedInformationItemSupport.aj
(from r1609263,
webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/OMNamedInformationItemHelper.java)
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/OMNamedInformationItemSupport.aj?p2=webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/OMNamedInformationItemSupport.aj&p1=webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/OMNamedInformationItemHelper.java&r1=1609263&r2=1609939&rev=1609939&view=diff
==============================================================================
---
webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/OMNamedInformationItemHelper.java
(original)
+++
webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/OMNamedInformationItemSupport.aj
Sat Jul 12 14:54:31 2014
@@ -21,10 +21,8 @@ package org.apache.axiom.om.impl.common;
import org.apache.axiom.om.OMNamespace;
import org.apache.axiom.om.impl.util.OMSerializerUtil;
-public final class OMNamedInformationItemHelper {
- private OMNamedInformationItemHelper() {}
-
- public static OMNamespace handleNamespace(IElement context, OMNamespace
ns, boolean attr, boolean declare) {
+public aspect OMNamedInformationItemSupport {
+ public final OMNamespace INamedInformationItem.handleNamespace(IElement
context, OMNamespace ns, boolean attr, boolean declare) {
String namespaceURI = ns == null ? "" : ns.getNamespaceURI();
String prefix = ns == null ? "" : ns.getPrefix();
if (namespaceURI.length() == 0) {
Modified:
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/AttrImpl.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/AttrImpl.java?rev=1609939&r1=1609938&r2=1609939&view=diff
==============================================================================
---
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/AttrImpl.java
(original)
+++
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/AttrImpl.java
Sat Jul 12 14:54:31 2014
@@ -28,7 +28,7 @@ import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
import org.apache.axiom.om.OMOutputFormat;
import org.apache.axiom.om.impl.OMAttributeEx;
-import org.apache.axiom.om.impl.common.OMNamedInformationItemHelper;
+import org.apache.axiom.om.impl.common.IAttribute;
import org.apache.axiom.om.impl.common.OMNamespaceImpl;
import org.apache.axiom.om.impl.common.serializer.push.Serializer;
import org.w3c.dom.Attr;
@@ -42,7 +42,7 @@ import javax.xml.XMLConstants;
import javax.xml.namespace.QName;
/** Implementation of <code>org.w3c.dom.Attr</code> and
<code>org.apache.axiom.om.OMAttribute</code> */
-public class AttrImpl extends RootNode implements OMAttributeEx, Attr,
NamedNode, NonDeferringParentNode {
+public class AttrImpl extends RootNode implements OMAttributeEx, IAttribute,
Attr, NamedNode, NonDeferringParentNode {
private String localName;
private String type;
@@ -315,7 +315,7 @@ public class AttrImpl extends RootNode i
}
public void setNamespace(OMNamespace namespace, boolean declare) {
- this.namespace = OMNamedInformationItemHelper.handleNamespace(owner
instanceof ElementImpl ? (ElementImpl)owner : null, namespace, true, declare);
+ this.namespace = handleNamespace(owner instanceof ElementImpl ?
(ElementImpl)owner : null, namespace, true, declare);
}
/**
@@ -382,19 +382,6 @@ public class AttrImpl extends RootNode i
return (this.namespace != null) ? namespace.getNamespaceURI() : null;
}
- /**
- * Returns the namespace prefix of this attr node.
- *
- * @see org.w3c.dom.Node#getPrefix()
- */
- public String getPrefix() {
- return NamedNodeHelper.getPrefix(this);
- }
-
- public void setPrefix(String prefix) throws DOMException {
- NamedNodeHelper.setPrefix(this, prefix);
- }
-
/*
* DOM-Level 3 methods
*/
Modified:
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ChildNode.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ChildNode.java?rev=1609939&r1=1609938&r2=1609939&view=diff
==============================================================================
---
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ChildNode.java
(original)
+++
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ChildNode.java
Sat Jul 12 14:54:31 2014
@@ -25,6 +25,7 @@ import org.apache.axiom.om.OMCloneOption
import org.apache.axiom.om.OMException;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMXMLParserWrapper;
+import org.w3c.dom.DOMException;
import org.w3c.dom.Element;
public abstract class ChildNode extends NodeImpl implements DOMChildNode {
@@ -111,4 +112,12 @@ public abstract class ChildNode extends
ParentNode parent = parentNode();
return parent instanceof Element ? parent.lookupPrefix(namespaceURI) :
null;
}
+
+ public final String getPrefix() {
+ return null;
+ }
+
+ public final void setPrefix(String prefix) throws DOMException {
+ throw DOMUtil.newDOMException(DOMException.NAMESPACE_ERR);
+ }
}
Modified:
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DocumentFragmentImpl.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DocumentFragmentImpl.java?rev=1609939&r1=1609938&r2=1609939&view=diff
==============================================================================
---
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DocumentFragmentImpl.java
(original)
+++
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DocumentFragmentImpl.java
Sat Jul 12 14:54:31 2014
@@ -26,6 +26,7 @@ import org.apache.axiom.om.OMNode;
import org.apache.axiom.om.OMOutputFormat;
import org.apache.axiom.om.impl.common.IContainer;
import org.apache.axiom.om.impl.common.serializer.push.Serializer;
+import org.w3c.dom.DOMException;
import org.w3c.dom.DocumentFragment;
import org.w3c.dom.Node;
@@ -109,4 +110,12 @@ public class DocumentFragmentImpl extend
public final void checkChild(OMNode child) {
}
+
+ public final String getPrefix() {
+ return null;
+ }
+
+ public final void setPrefix(String prefix) throws DOMException {
+ throw DOMUtil.newDOMException(DOMException.NAMESPACE_ERR);
+ }
}
Modified:
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DocumentImpl.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DocumentImpl.java?rev=1609939&r1=1609938&r2=1609939&view=diff
==============================================================================
---
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DocumentImpl.java
(original)
+++
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DocumentImpl.java
Sat Jul 12 14:54:31 2014
@@ -601,4 +601,12 @@ public class DocumentImpl extends RootNo
protected void checkDocumentElement(OMElement element) {
}
+
+ public final String getPrefix() {
+ return null;
+ }
+
+ public final void setPrefix(String prefix) throws DOMException {
+ throw DOMUtil.newDOMException(DOMException.NAMESPACE_ERR);
+ }
}
Modified:
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ElementImpl.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ElementImpl.java?rev=1609939&r1=1609938&r2=1609939&view=diff
==============================================================================
---
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ElementImpl.java
(original)
+++
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ElementImpl.java
Sat Jul 12 14:54:31 2014
@@ -36,7 +36,6 @@ import org.apache.axiom.om.impl.common.I
import org.apache.axiom.om.impl.common.IElement;
import org.apache.axiom.om.impl.common.NamespaceIterator;
import org.apache.axiom.om.impl.common.OMChildElementIterator;
-import org.apache.axiom.om.impl.common.OMNamedInformationItemHelper;
import org.apache.axiom.om.impl.common.OMNamespaceImpl;
import org.apache.axiom.om.impl.common.serializer.push.OutputException;
import org.apache.axiom.om.impl.common.serializer.push.Serializer;
@@ -99,7 +98,7 @@ public class ElementImpl extends ParentN
((IContainer)parentNode).addChild(this, builder != null);
}
this.attributes = new AttributeMap(this);
- namespace = generateNSDecl ?
OMNamedInformationItemHelper.handleNamespace(this, ns, false, true) : ns;
+ namespace = generateNSDecl ? handleNamespace(this, ns, false, true) :
ns;
}
final ParentNode internalGetOwnerNode() {
@@ -748,7 +747,7 @@ public class ElementImpl extends ParentN
}
public void setNamespace(OMNamespace namespace, boolean declare) {
- this.namespace = OMNamedInformationItemHelper.handleNamespace(this,
namespace, false, declare);
+ this.namespace = handleNamespace(this, namespace, false, declare);
}
public void setNamespace(OMNamespace namespace) {
@@ -834,19 +833,6 @@ public class ElementImpl extends ParentN
return this.localName;
}
- /**
- * Returns the namespace prefix of this element node
- *
- * @see org.w3c.dom.Node#getPrefix()
- */
- public String getPrefix() {
- return NamedNodeHelper.getPrefix(this);
- }
-
- public void setPrefix(String prefix) throws DOMException {
- NamedNodeHelper.setPrefix(this, prefix);
- }
-
public QName resolveQName(String qname) {
int idx = qname.indexOf(':');
if (idx == -1) {
Modified:
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NamedNode.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NamedNode.java?rev=1609939&r1=1609938&r2=1609939&view=diff
==============================================================================
---
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NamedNode.java
(original)
+++
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NamedNode.java
Sat Jul 12 14:54:31 2014
@@ -18,10 +18,10 @@
*/
package org.apache.axiom.om.impl.dom;
-import org.apache.axiom.om.OMNamedInformationItem;
import org.apache.axiom.om.OMNamespace;
+import org.apache.axiom.om.impl.common.INamedInformationItem;
-interface NamedNode extends OMNamedInformationItem {
+interface NamedNode extends INamedInformationItem {
/**
* Set the namespace of the node without adding a corresponding namespace
declaration.
*
Copied:
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NamedNodeSupport.aj
(from r1609263,
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NamedNodeHelper.java)
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NamedNodeSupport.aj?p2=webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NamedNodeSupport.aj&p1=webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NamedNodeHelper.java&r1=1609263&r2=1609939&rev=1609939&view=diff
==============================================================================
---
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NamedNodeHelper.java
(original)
+++
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NamedNodeSupport.aj
Sat Jul 12 14:54:31 2014
@@ -22,11 +22,9 @@ import org.apache.axiom.om.OMNamespace;
import org.apache.axiom.om.impl.common.OMNamespaceImpl;
import org.w3c.dom.DOMException;
-final class NamedNodeHelper {
- private NamedNodeHelper() {}
-
- static String getPrefix(NamedNode node) {
- OMNamespace ns = node.getNamespace();
+aspect NamedNodeSupport {
+ public final String NamedNode.getPrefix() {
+ OMNamespace ns = getNamespace();
if (ns == null) {
return null;
} else {
@@ -35,11 +33,11 @@ final class NamedNodeHelper {
}
}
- static void setPrefix(NamedNode node, String prefix) throws DOMException {
+ public final void NamedNode.setPrefix(String prefix) throws DOMException {
if (prefix == null) {
prefix = "";
}
- OMNamespace ns = node.getNamespace();
+ OMNamespace ns = getNamespace();
if (ns == null) {
if (prefix.length() > 0) {
throw DOMUtil.newDOMException(DOMException.NAMESPACE_ERR);
@@ -47,7 +45,7 @@ final class NamedNodeHelper {
// No need to set a new OMNamespace in this case
}
} else {
- node.internalSetNamespace(new
OMNamespaceImpl(ns.getNamespaceURI(), prefix == null ? "" : prefix));
+ internalSetNamespace(new OMNamespaceImpl(ns.getNamespaceURI(),
prefix == null ? "" : prefix));
}
}
}
Modified:
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NodeImpl.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NodeImpl.java?rev=1609939&r1=1609938&r2=1609939&view=diff
==============================================================================
---
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NodeImpl.java
(original)
+++
webservices/axiom/trunk/modules/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NodeImpl.java
Sat Jul 12 14:54:31 2014
@@ -115,21 +115,10 @@ public abstract class NodeImpl extends I
return null;
}
- /*
- * Overidden in ElementImpl and AttrImpl.
- */
- public String getPrefix() {
- return null;
- }
-
public void setNodeValue(String nodeValue) throws DOMException {
// Don't do anything, to be overridden in SOME Child classes
}
- public void setPrefix(String prefix) throws DOMException {
- throw DOMUtil.newDOMException(DOMException.NAMESPACE_ERR);
- }
-
/**
* Returns the collection of attributes associated with this node, or null
if none. At this
* writing, Element is the only type of node which will ever have
attributes.
Modified:
webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMAttributeImpl.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMAttributeImpl.java?rev=1609939&r1=1609938&r2=1609939&view=diff
==============================================================================
---
webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMAttributeImpl.java
(original)
+++
webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMAttributeImpl.java
Sat Jul 12 14:54:31 2014
@@ -26,12 +26,12 @@ import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMInformationItem;
import org.apache.axiom.om.OMNamespace;
import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.impl.common.OMNamedInformationItemHelper;
+import org.apache.axiom.om.impl.common.IAttribute;
import javax.xml.namespace.QName;
/** Class OMAttributeImpl */
-public class OMAttributeImpl implements OMAttribute {
+public class OMAttributeImpl implements IAttribute {
private String localName;
private String value;
@@ -161,7 +161,7 @@ public class OMAttributeImpl implements
}
public void setNamespace(OMNamespace namespace, boolean declare) {
- this.namespace = OMNamedInformationItemHelper.handleNamespace(owner,
namespace, true, declare);
+ this.namespace = handleNamespace(owner, namespace, true, declare);
this.qName = null;
}
Modified:
webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMElementImpl.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMElementImpl.java?rev=1609939&r1=1609938&r2=1609939&view=diff
==============================================================================
---
webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMElementImpl.java
(original)
+++
webservices/axiom/trunk/modules/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMElementImpl.java
Sat Jul 12 14:54:31 2014
@@ -34,7 +34,6 @@ import org.apache.axiom.om.impl.common.I
import org.apache.axiom.om.impl.common.IElement;
import org.apache.axiom.om.impl.common.NamespaceIterator;
import org.apache.axiom.om.impl.common.OMChildElementIterator;
-import org.apache.axiom.om.impl.common.OMNamedInformationItemHelper;
import org.apache.axiom.om.impl.common.OMNamespaceImpl;
import org.apache.axiom.om.impl.common.serializer.push.OutputException;
import org.apache.axiom.om.impl.common.serializer.push.Serializer;
@@ -99,7 +98,7 @@ public class OMElementImpl extends OMNod
if (parent != null) {
((IContainer)parent).addChild(this, builder != null);
}
- this.ns = generateNSDecl ?
OMNamedInformationItemHelper.handleNamespace(this, ns, false, true) : ns;
+ this.ns = generateNSDecl ? handleNamespace(this, ns, false, true) : ns;
}
/**
@@ -615,7 +614,7 @@ public class OMElementImpl extends OMNod
}
public void setNamespace(OMNamespace namespace, boolean declare) {
- this.ns = OMNamedInformationItemHelper.handleNamespace(this,
namespace, false, declare);
+ this.ns = handleNamespace(this, namespace, false, declare);
this.qName = null;
}