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/08/20 11:17:19 UTC

svn commit: r1696733 - in /webservices/axiom/trunk: aspects/core-aspects/src/main/java/org/apache/axiom/core/ aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/ aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/ im...

Author: veithen
Date: Thu Aug 20 09:17:18 2015
New Revision: 1696733

URL: http://svn.apache.org/r1696733
Log:
Unify some of the createOMElement methods.

Modified:
    webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/NodeFactory.java
    webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomElementSupport.aj
    webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/AxiomNodeFactorySupport.aj
    webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ElementImpl.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/OMElementImpl.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=1696733&r1=1696732&r2=1696733&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 Thu Aug 20 09:17:18 2015
@@ -23,6 +23,7 @@ public interface NodeFactory {
     CoreDocumentTypeDeclaration createDocumentTypeDeclaration();
     CoreCharacterDataNode createCharacterDataNode();
     CoreCDATASection createCDATASection();
+    CoreNSAwareElement createNSAwareElement();
     CoreNSUnawareAttribute createAttribute(CoreDocument document, String name, String value, String type);
     CoreNSAwareAttribute createAttribute(CoreDocument document, String namespaceURI, String localName, String prefix, String value, String type);
     CoreNamespaceDeclaration createNamespaceDeclaration(CoreDocument document, String prefix, String namespaceURI);

Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomElementSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomElementSupport.aj?rev=1696733&r1=1696732&r2=1696733&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomElementSupport.aj (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/AxiomElementSupport.aj Thu Aug 20 09:17:18 2015
@@ -65,6 +65,11 @@ import org.apache.commons.logging.LogFac
 public aspect AxiomElementSupport {
     private static final Log log = LogFactory.getLog(AxiomElementSupport.class);
     
+    public final void AxiomElement.initName(String localName, OMNamespace ns, boolean generateNSDecl) {
+        internalSetLocalName(localName);
+        internalSetNamespace(generateNSDecl ? handleNamespace(this, ns, false, true) : ns);
+    }
+    
     final void AxiomElement.beforeSetLocalName() {
         forceExpand();
     }

Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/AxiomNodeFactorySupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/AxiomNodeFactorySupport.aj?rev=1696733&r1=1696732&r2=1696733&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/AxiomNodeFactorySupport.aj (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/AxiomNodeFactorySupport.aj Thu Aug 20 09:17:18 2015
@@ -24,6 +24,7 @@ import org.apache.axiom.ext.stax.datahan
 import org.apache.axiom.om.OMContainer;
 import org.apache.axiom.om.OMDocType;
 import org.apache.axiom.om.OMDocument;
+import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMNamespace;
 import org.apache.axiom.om.OMNode;
 import org.apache.axiom.om.OMProcessingInstruction;
@@ -32,6 +33,7 @@ import org.apache.axiom.om.OMXMLParserWr
 import org.apache.axiom.om.impl.OMContainerEx;
 import org.apache.axiom.om.impl.common.AxiomCDATASection;
 import org.apache.axiom.om.impl.common.AxiomCharacterDataNode;
+import org.apache.axiom.om.impl.common.AxiomContainer;
 import org.apache.axiom.om.impl.common.AxiomDocType;
 import org.apache.axiom.om.impl.common.AxiomDocument;
 import org.apache.axiom.om.impl.common.AxiomElement;
@@ -180,4 +182,28 @@ public aspect AxiomNodeFactorySupport {
         }
         return node;
     }
+
+    public final OMElement AxiomNodeFactory.createOMElement(String localName, OMNamespace ns) {
+        return createOMElement(localName, ns, null);
+    }
+
+    public final OMElement AxiomNodeFactory.createOMElement(String localName, OMNamespace ns, OMContainer parent) {
+        AxiomElement element = (AxiomElement)createNSAwareElement();
+        if (parent != null) {
+            parent.addChild(element);
+        }
+        element.initName(localName, ns, true);
+        return element;
+    }
+
+    public final OMElement AxiomNodeFactory.createOMElement(String localName, OMContainer parent,
+            OMXMLParserWrapper builder) {
+        AxiomElement element = (AxiomElement)createNSAwareElement();
+        element.coreSetBuilder(builder);
+        if (parent != null) {
+            ((AxiomContainer)parent).addChild(element, true);
+        }
+        element.initName(localName, null, false);
+        return element;
+    }
 }

Modified: webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ElementImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ElementImpl.java?rev=1696733&r1=1696732&r2=1696733&view=diff
==============================================================================
--- webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ElementImpl.java (original)
+++ webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/om/impl/dom/ElementImpl.java Thu Aug 20 09:17:18 2015
@@ -50,10 +50,13 @@ public class ElementImpl extends ParentN
 
     private int lineNumber;
 
+    public ElementImpl(OMFactory factory) {
+        super(factory);
+    }
+    
     public ElementImpl(ParentNode parentNode, String localName, OMNamespace ns, OMXMLParserWrapper builder,
                        OMFactory factory, boolean generateNSDecl) {
         super(factory);
-        internalSetLocalName(localName);
         coreSetBuilder(builder);
         if (parentNode != null) {
             // TODO: dirty hack to get the correct semantics (reordering) if the parent is a SOAP envelope
@@ -63,7 +66,7 @@ public class ElementImpl extends ParentN
                 parentNode.coreAppendChild(this, builder != null);
             }
         }
-        internalSetNamespace(generateNSDecl ? handleNamespace(this, ns, false, true) : ns);
+        initName(localName, ns, generateNSDecl);
     }
 
     private final String checkNamespaceIsDeclared(String prefix, String namespaceURI, boolean allowDefaultNamespace, boolean declare) {

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=1696733&r1=1696732&r2=1696733&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 Thu Aug 20 09:17:18 2015
@@ -24,6 +24,7 @@ import org.apache.axiom.core.CoreCharact
 import org.apache.axiom.core.CoreDocument;
 import org.apache.axiom.core.CoreDocumentTypeDeclaration;
 import org.apache.axiom.core.CoreNSAwareAttribute;
+import org.apache.axiom.core.CoreNSAwareElement;
 import org.apache.axiom.core.CoreNSUnawareAttribute;
 import org.apache.axiom.core.CoreNamespaceDeclaration;
 import org.apache.axiom.core.CoreProcessingInstruction;
@@ -43,7 +44,6 @@ import org.apache.axiom.om.OMNode;
 import org.apache.axiom.om.OMProcessingInstruction;
 import org.apache.axiom.om.OMSourcedElement;
 import org.apache.axiom.om.OMText;
-import org.apache.axiom.om.OMXMLParserWrapper;
 import org.apache.axiom.om.impl.OMContainerEx;
 import org.apache.axiom.om.impl.builder.StAXOMBuilder;
 import org.apache.axiom.om.impl.common.AxiomNamespaceDeclaration;
@@ -59,8 +59,6 @@ import org.apache.axiom.om.impl.dom.Enti
 import org.apache.axiom.om.impl.dom.NamespaceDeclaration;
 import org.apache.axiom.om.impl.dom.NSAwareAttribute;
 import org.apache.axiom.om.impl.dom.NSUnawareAttribute;
-import org.apache.axiom.om.impl.dom.OMDOMException;
-import org.apache.axiom.om.impl.dom.ParentNode;
 import org.apache.axiom.om.impl.dom.ProcessingInstructionImpl;
 import org.apache.axiom.om.impl.dom.TextImpl;
 import org.apache.axiom.om.impl.util.OMSerializerUtil;
@@ -86,25 +84,6 @@ public class OMDOMFactory implements Axi
         return metaFactory;
     }
 
-    public OMElement createOMElement(String localName, OMNamespace ns) {
-        return new ElementImpl(null, localName, ns, null, this, true);
-    }
-
-    public OMElement createOMElement(String localName, OMNamespace ns,
-                                     OMContainer parent) throws OMDOMException {
-        if (parent == null) {
-            return createOMElement(localName, ns);
-        } else {
-            return new ElementImpl((ParentNode) parent, localName, ns, null, this, true);
-        }
-    }
-
-    /** Creates an OMElement with the builder. */
-    public OMElement createOMElement(String localName, OMContainer parent,
-                                     OMXMLParserWrapper builder) {
-        return new ElementImpl((ParentNode) parent, localName, null, builder, this, false);
-    }
-
     public OMSourcedElement createOMElement(OMDataSource source) {
         throw new UnsupportedOperationException("Not supported for DOM");
     }
@@ -310,6 +289,10 @@ public class OMDOMFactory implements Axi
         return new CDATASectionImpl(this);
     }
 
+    public final CoreNSAwareElement createNSAwareElement() {
+        return new ElementImpl(this);
+    }
+
     public final CoreNSUnawareAttribute createAttribute(CoreDocument document, String name, String value, String type) {
         NSUnawareAttribute attr = new NSUnawareAttribute((DocumentImpl)document, this);
         attr.coreSetName(name);

Modified: webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMElementImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMElementImpl.java?rev=1696733&r1=1696732&r2=1696733&view=diff
==============================================================================
--- webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMElementImpl.java (original)
+++ webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/om/impl/llom/OMElementImpl.java Thu Aug 20 09:17:18 2015
@@ -50,12 +50,11 @@ public class OMElementImpl extends OMNod
     public OMElementImpl(OMContainer parent, String localName, OMNamespace ns, OMXMLParserWrapper builder,
                     OMFactory factory, boolean generateNSDecl) {
         super(factory);
-        internalSetLocalName(localName);
         coreSetBuilder(builder);
         if (parent != null) {
             ((AxiomContainer)parent).addChild(this, builder != null);
         }
-        internalSetNamespace(generateNSDecl ? handleNamespace(this, ns, false, true) : ns);
+        initName(localName, ns, generateNSDecl);
     }
 
     /**
@@ -74,12 +73,7 @@ public class OMElementImpl extends OMNod
         internalSetNamespace(handleNamespace(qname));
     }
     
-    /**
-     * Constructor reserved for use by {@link OMSourcedElementImpl}.
-     * 
-     * @param factory
-     */
-    OMElementImpl(OMFactory factory) {
+    public OMElementImpl(OMFactory factory) {
         super(factory);
     }
 

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=1696733&r1=1696732&r2=1696733&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 Thu Aug 20 09:17:18 2015
@@ -24,6 +24,7 @@ import org.apache.axiom.core.CoreCharact
 import org.apache.axiom.core.CoreDocument;
 import org.apache.axiom.core.CoreDocumentTypeDeclaration;
 import org.apache.axiom.core.CoreNSAwareAttribute;
+import org.apache.axiom.core.CoreNSAwareElement;
 import org.apache.axiom.core.CoreNSUnawareAttribute;
 import org.apache.axiom.core.CoreNamespaceDeclaration;
 import org.apache.axiom.core.CoreProcessingInstruction;
@@ -42,7 +43,6 @@ import org.apache.axiom.om.OMNode;
 import org.apache.axiom.om.OMProcessingInstruction;
 import org.apache.axiom.om.OMSourcedElement;
 import org.apache.axiom.om.OMText;
-import org.apache.axiom.om.OMXMLParserWrapper;
 import org.apache.axiom.om.impl.builder.StAXOMBuilder;
 import org.apache.axiom.om.impl.common.AxiomNamespaceDeclaration;
 import org.apache.axiom.om.impl.common.OMNamespaceImpl;
@@ -87,34 +87,6 @@ public class OMLinkedListImplFactory imp
         return metaFactory;
     }
 
-    /**
-     * Method createOMElement.
-     *
-     * @param localName
-     * @param ns
-     * @return Returns OMElement.
-     */
-    public OMElement createOMElement(String localName, OMNamespace ns) {
-        return new OMElementImpl(null, localName, ns, null, this, true);
-    }
-
-    public OMElement createOMElement(String localName, OMNamespace ns, OMContainer parent) {
-        return new OMElementImpl(parent, localName, ns, null, this, true);
-    }
-
-    /**
-     * Method createOMElement.
-     *
-     * @param localName
-     * @param parent
-     * @param builder
-     * @return Returns OMElement.
-     */
-    public OMElement createOMElement(String localName, OMContainer parent,
-                                     OMXMLParserWrapper builder) {
-        return new OMElementImpl(parent, localName, null, builder, this, false);
-    }
-
     public OMElement createOMElement(String localName, String namespaceURI, String prefix) {
         if (namespaceURI == null) {
             throw new IllegalArgumentException("namespaceURI must not be null");
@@ -312,6 +284,10 @@ public class OMLinkedListImplFactory imp
         return new CDATASectionImpl(this);
     }
 
+    public final CoreNSAwareElement createNSAwareElement() {
+        return new OMElementImpl(this);
+    }
+
     public CoreNSUnawareAttribute createAttribute(CoreDocument document, String name, String value,
             String type) {
         // TODO