Author: veithen
Date: Sun Aug 30 21:09:50 2015
New Revision: 1700162
URL: http://svn.apache.org/r1700162
Log:
Move the remaining Document#createXxx methods to dom-aspects.
Removed:
webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DOMUtil.java
Modified:
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/NodeFactory.java
webservices/axiom/trunk/aspects/dom-aspects/src/main/java/org/apache/axiom/dom/DOMDocumentSupport.aj
webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DocumentImpl.java
webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NSAwareElement.java
webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/OMDOMFactory.java
webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/factory/OMLinkedListImplFactory.java
Modified:
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/NodeFactory.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/NodeFactory.java?rev=1700162&r1=1700161&r2=1700162&view=diff
==============================================================================
---
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/NodeFactory.java
(original)
+++
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/NodeFactory.java
Sun Aug 30 21:09:50 2015
@@ -23,6 +23,7 @@ public interface NodeFactory {
CoreDocumentTypeDeclaration createDocumentTypeDeclaration();
CoreCharacterDataNode createCharacterDataNode();
CoreCDATASection createCDATASection();
+ CoreNSUnawareElement createNSUnawareElement();
<T extends CoreNSAwareElement> T createNSAwareElement(Class<T> type);
CoreNSUnawareAttribute createNSUnawareAttribute();
CoreNSAwareAttribute createNSAwareAttribute();
@@ -30,4 +31,5 @@ public interface NodeFactory {
CoreProcessingInstruction createProcessingInstruction();
CoreEntityReference createEntityReference();
CoreComment createComment();
+ CoreDocumentFragment createDocumentFragment();
}
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=1700162&r1=1700161&r2=1700162&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 Aug 30 21:09:50 2015
@@ -28,6 +28,7 @@ import org.w3c.dom.DOMConfiguration;
import org.w3c.dom.DOMException;
import org.w3c.dom.DOMImplementation;
import org.w3c.dom.Document;
+import org.w3c.dom.DocumentFragment;
import org.w3c.dom.Element;
import org.w3c.dom.EntityReference;
import org.w3c.dom.NamedNodeMap;
@@ -142,13 +143,20 @@ public aspect DOMDocumentSupport {
return text;
}
- public final CDATASection DOMDocument.createCDATASection(String data)
throws DOMException {
+ public final CDATASection DOMDocument.createCDATASection(String data) {
DOMCDATASection cdataSection =
(DOMCDATASection)coreGetNodeFactory().createCDATASection();
cdataSection.coreSetOwnerDocument(this);
cdataSection.coreSetCharacterData(data, Policies.DETACH_POLICY);
return cdataSection;
}
+ public final Element DOMDocument.createElement(String tagName) {
+ DOMNSUnawareElement element =
(DOMNSUnawareElement)coreGetNodeFactory().createNSUnawareElement();
+ element.coreSetOwnerDocument(this);
+ element.coreSetName(tagName);
+ return element;
+ }
+
public final Attr DOMDocument.createAttribute(String name) {
NSUtil.validateName(name);
DOMNSUnawareAttribute attr =
(DOMNSUnawareAttribute)coreGetNodeFactory().createNSUnawareAttribute();
@@ -158,6 +166,25 @@ public aspect DOMDocumentSupport {
return attr;
}
+ public final Element DOMDocument.createElementNS(String namespaceURI,
String qualifiedName) {
+ int i = NSUtil.validateQualifiedName(qualifiedName);
+ String prefix;
+ String localName;
+ if (i == -1) {
+ prefix = "";
+ localName = qualifiedName;
+ } else {
+ prefix = qualifiedName.substring(0, i);
+ localName = qualifiedName.substring(i+1);
+ }
+ namespaceURI = NSUtil.normalizeNamespaceURI(namespaceURI);
+ NSUtil.validateNamespace(namespaceURI, prefix);
+ DOMNSAwareElement element =
coreGetNodeFactory().createNSAwareElement(DOMNSAwareElement.class);
+ element.coreSetOwnerDocument(this);
+ element.coreSetName(namespaceURI, localName, prefix);
+ return element;
+ }
+
public final Attr DOMDocument.createAttributeNS(String namespaceURI,
String qualifiedName) {
int i = NSUtil.validateQualifiedName(qualifiedName);
String prefix;
@@ -207,6 +234,12 @@ public aspect DOMDocumentSupport {
return node;
}
+ public final DocumentFragment DOMDocument.createDocumentFragment() {
+ DOMDocumentFragment fragment =
(DOMDocumentFragment)coreGetNodeFactory().createDocumentFragment();
+ fragment.coreSetOwnerDocument(this);
+ return fragment;
+ }
+
public final NodeList DOMDocument.getElementsByTagName(String tagname) {
return new ElementsByTagName(this, tagname);
}
Modified:
webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DocumentImpl.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DocumentImpl.java?rev=1700162&r1=1700161&r2=1700162&view=diff
==============================================================================
---
webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DocumentImpl.java
(original)
+++
webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/DocumentImpl.java
Sun Aug 30 21:09:50 2015
@@ -33,10 +33,8 @@ import org.apache.axiom.om.OMException;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNode;
import org.apache.axiom.om.impl.common.AxiomDocument;
-import org.apache.axiom.om.impl.common.OMNamespaceImpl;
import org.w3c.dom.Attr;
import org.w3c.dom.DOMException;
-import org.w3c.dom.DocumentFragment;
import org.w3c.dom.DocumentType;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
@@ -59,41 +57,6 @@ public class DocumentImpl extends Parent
// /org.w3c.dom.Document methods
// /
- public DocumentFragment createDocumentFragment() {
- DocumentFragmentImpl fragment = new
DocumentFragmentImpl(getOMFactory());
- fragment.coreSetOwnerDocument(this);
- return fragment;
- }
-
- public Element createElement(String tagName) throws DOMException {
- NSUnawareElement element = new NSUnawareElement(getOMFactory());
- element.coreSetName(tagName);
- element.coreSetOwnerDocument(this);
- return element;
- }
-
- public Element createElementNS(String namespaceURI, String qualifiedName)
- throws DOMException {
-
- if (namespaceURI != null && namespaceURI.length() == 0) {
- namespaceURI = null;
- }
-
- String localName = DOMUtil.getLocalName(qualifiedName);
- String prefix = DOMUtil.getPrefix(qualifiedName);
- DOMUtil.validateElementName(namespaceURI, localName, prefix);
-
- OMNamespaceImpl namespace;
- if (namespaceURI == null) {
- namespace = null;
- } else {
- namespace = new OMNamespaceImpl(namespaceURI, prefix == null ? ""
: prefix);
- }
- NSAwareElement element = new NSAwareElement(null, localName,
namespace, null, getOMFactory(), false);
- element.coreSetOwnerDocument(this);
- return element;
- }
-
public DocumentType getDoctype() {
Iterator it = getChildren();
while (it.hasNext()) {
Modified:
webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NSAwareElement.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NSAwareElement.java?rev=1700162&r1=1700161&r2=1700162&view=diff
==============================================================================
---
webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NSAwareElement.java
(original)
+++
webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/NSAwareElement.java
Sun Aug 30 21:09:50 2015
@@ -28,8 +28,6 @@ import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
import org.apache.axiom.om.OMNode;
-import org.apache.axiom.om.OMXMLParserWrapper;
-import org.apache.axiom.om.impl.common.AxiomContainer;
import org.apache.axiom.om.impl.common.AxiomElement;
/** Implementation of the org.w3c.dom.Element and org.apache.axiom.om.Element
interfaces. */
@@ -42,21 +40,6 @@ public class NSAwareElement extends Elem
super(factory);
}
- public NSAwareElement(ParentNode parentNode, String localName, OMNamespace
ns, OMXMLParserWrapper builder,
- OMFactory factory, boolean generateNSDecl) {
- super(factory);
- coreSetBuilder(builder);
- if (parentNode != null) {
- // TODO: dirty hack to get the correct semantics (reordering) if
the parent is a SOAP envelope
- if (parentNode instanceof AxiomContainer) {
- ((AxiomContainer)parentNode).addChild(this, builder != null);
- } else {
- parentNode.coreAppendChild(this, builder != null);
- }
- }
- initName(localName, ns, generateNSDecl);
- }
-
// /
// /OmElement methods
// /
Modified:
webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/OMDOMFactory.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/OMDOMFactory.java?rev=1700162&r1=1700161&r2=1700162&view=diff
==============================================================================
---
webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/OMDOMFactory.java
(original)
+++
webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/factory/OMDOMFactory.java
Sun Aug 30 21:09:50 2015
@@ -25,13 +25,16 @@ import org.apache.axiom.core.CoreCDATASe
import org.apache.axiom.core.CoreCharacterDataNode;
import org.apache.axiom.core.CoreComment;
import org.apache.axiom.core.CoreDocument;
+import org.apache.axiom.core.CoreDocumentFragment;
import org.apache.axiom.core.CoreDocumentTypeDeclaration;
import org.apache.axiom.core.CoreEntityReference;
import org.apache.axiom.core.CoreNSAwareAttribute;
import org.apache.axiom.core.CoreNSAwareElement;
import org.apache.axiom.core.CoreNSUnawareAttribute;
+import org.apache.axiom.core.CoreNSUnawareElement;
import org.apache.axiom.core.CoreNamespaceDeclaration;
import org.apache.axiom.core.CoreProcessingInstruction;
+import org.apache.axiom.dom.DOMNSAwareElement;
import org.apache.axiom.dom.DOMNodeFactory;
import org.apache.axiom.om.OMComment;
import org.apache.axiom.om.OMContainer;
@@ -51,12 +54,14 @@ import org.apache.axiom.om.impl.common.O
import org.apache.axiom.om.impl.common.factory.AxiomNodeFactory;
import org.apache.axiom.om.impl.dom.CDATASectionImpl;
import org.apache.axiom.om.impl.dom.CommentImpl;
+import org.apache.axiom.om.impl.dom.DocumentFragmentImpl;
import org.apache.axiom.om.impl.dom.DocumentImpl;
import org.apache.axiom.om.impl.dom.DocumentTypeImpl;
import org.apache.axiom.om.impl.dom.EntityReferenceImpl;
import org.apache.axiom.om.impl.dom.NSAwareAttribute;
import org.apache.axiom.om.impl.dom.NSAwareElement;
import org.apache.axiom.om.impl.dom.NSUnawareAttribute;
+import org.apache.axiom.om.impl.dom.NSUnawareElement;
import org.apache.axiom.om.impl.dom.NamespaceDeclaration;
import org.apache.axiom.om.impl.dom.ProcessingInstructionImpl;
import org.apache.axiom.om.impl.dom.TextImpl;
@@ -243,7 +248,7 @@ public class OMDOMFactory implements Axi
public final <T extends CoreNSAwareElement> T
createNSAwareElement(Class<T> type) {
CoreNSAwareElement element;
- if (type == AxiomElement.class) {
+ if (type == AxiomElement.class || type == DOMNSAwareElement.class) {
element = new NSAwareElement(this);
} else if (type == AxiomSOAPEnvelope.class) {
element = new SOAPEnvelopeImpl(this);
@@ -316,4 +321,12 @@ public class OMDOMFactory implements Axi
public final CoreComment createComment() {
return new CommentImpl(this);
}
+
+ public final CoreNSUnawareElement createNSUnawareElement() {
+ return new NSUnawareElement(this);
+ }
+
+ public final CoreDocumentFragment createDocumentFragment() {
+ return new DocumentFragmentImpl(this);
+ }
}
Modified:
webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/factory/OMLinkedListImplFactory.java
URL:
http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/factory/OMLinkedListImplFactory.java?rev=1700162&r1=1700161&r2=1700162&view=diff
==============================================================================
---
webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/factory/OMLinkedListImplFactory.java
(original)
+++
webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/factory/OMLinkedListImplFactory.java
Sun Aug 30 21:09:50 2015
@@ -25,11 +25,13 @@ import org.apache.axiom.core.CoreCDATASe
import org.apache.axiom.core.CoreCharacterDataNode;
import org.apache.axiom.core.CoreComment;
import org.apache.axiom.core.CoreDocument;
+import org.apache.axiom.core.CoreDocumentFragment;
import org.apache.axiom.core.CoreDocumentTypeDeclaration;
import org.apache.axiom.core.CoreEntityReference;
import org.apache.axiom.core.CoreNSAwareAttribute;
import org.apache.axiom.core.CoreNSAwareElement;
import org.apache.axiom.core.CoreNSUnawareAttribute;
+import org.apache.axiom.core.CoreNSUnawareElement;
import org.apache.axiom.core.CoreNamespaceDeclaration;
import org.apache.axiom.core.CoreProcessingInstruction;
import org.apache.axiom.om.OMAbstractFactory;
@@ -323,4 +325,12 @@ public class OMLinkedListImplFactory imp
public CoreComment createComment() {
return new OMCommentImpl(this);
}
+
+ public final CoreNSUnawareElement createNSUnawareElement() {
+ throw new UnsupportedOperationException();
+ }
+
+ public final CoreDocumentFragment createDocumentFragment() {
+ throw new UnsupportedOperationException();
+ }
}