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 2016/03/20 23:19:27 UTC

svn commit: r1735909 - in /webservices/axiom/trunk/aspects: core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/ om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/

Author: veithen
Date: Sun Mar 20 22:19:26 2016
New Revision: 1735909

URL: http://svn.apache.org/viewvc?rev=1735909&view=rev
Log:
Further decouple the builder from the Axiom API.

Modified:
    webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreNSAwareElementSupport.aj
    webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/BuilderHandler.java
    webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/BuilderImpl.java
    webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/UnwrappingContext.java

Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreNSAwareElementSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreNSAwareElementSupport.aj?rev=1735909&r1=1735908&r2=1735909&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreNSAwareElementSupport.aj (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreNSAwareElementSupport.aj Sun Mar 20 22:19:26 2016
@@ -49,4 +49,7 @@ public aspect CoreNSAwareElementSupport
     public final void CoreNSAwareElement.serializeEndEvent(XmlHandler handler) throws StreamException {
         handler.endElement();
     }
+
+    public void CoreNSAwareElement.validateName(String staxPrefix, String staxLocalName, String staxNamespaceURI) {
+    }
 }

Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/BuilderHandler.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/BuilderHandler.java?rev=1735909&r1=1735908&r2=1735909&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/BuilderHandler.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/BuilderHandler.java Sun Mar 20 22:19:26 2016
@@ -25,12 +25,12 @@ import java.util.Queue;
 import javax.xml.stream.XMLStreamConstants;
 
 import org.apache.axiom.core.Builder;
+import org.apache.axiom.core.CoreDocument;
+import org.apache.axiom.core.CoreNSAwareElement;
 import org.apache.axiom.core.CoreNode;
 import org.apache.axiom.core.NodeFactory;
 import org.apache.axiom.core.stream.StreamException;
 import org.apache.axiom.core.stream.XmlHandler;
-import org.apache.axiom.om.impl.intf.AxiomDocument;
-import org.apache.axiom.om.impl.intf.AxiomSourcedElement;
 
 final class BuilderHandler implements XmlHandler {
     final NodeFactory nodeFactory;
@@ -42,7 +42,7 @@ final class BuilderHandler implements Xm
     private int activeContextCount;
     // returns the state of completion
     private boolean done;
-    private AxiomDocument document;
+    private CoreDocument document;
     
     /**
      * Tracks the depth of the node identified by {@link #target}. By definition, the document has
@@ -54,7 +54,7 @@ final class BuilderHandler implements Xm
     private ArrayList<BuilderListener> listeners;
     private Queue<Runnable> deferredActions;
 
-    BuilderHandler(NodeFactory nodeFactory, Model model, AxiomSourcedElement root, Builder builder) {
+    BuilderHandler(NodeFactory nodeFactory, Model model, CoreNSAwareElement root, Builder builder) {
         this.nodeFactory = nodeFactory;
         this.model = model;
         this.builder = builder;
@@ -71,8 +71,8 @@ final class BuilderHandler implements Xm
     }
     
     void nodeAdded(CoreNode node) {
-        if (node instanceof AxiomDocument) {
-            document = (AxiomDocument)node;
+        if (node instanceof CoreDocument) {
+            document = (CoreDocument)node;
         }
         if (listeners != null) {
             for (int i=0, size=listeners.size(); i<size; i++) {
@@ -121,7 +121,7 @@ final class BuilderHandler implements Xm
         return done;
     }
     
-    AxiomDocument getDocument() {
+    CoreDocument getDocument() {
         if (rootContext instanceof UnwrappingContext) {
             throw new UnsupportedOperationException("There is no document linked to this builder");
         } else {

Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/BuilderImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/BuilderImpl.java?rev=1735909&r1=1735908&r2=1735909&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/BuilderImpl.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/BuilderImpl.java Sun Mar 20 22:19:26 2016
@@ -19,6 +19,8 @@
 package org.apache.axiom.om.impl.common.builder;
 
 import org.apache.axiom.core.Builder;
+import org.apache.axiom.core.CoreDocument;
+import org.apache.axiom.core.CoreNSAwareElement;
 import org.apache.axiom.core.NodeFactory;
 import org.apache.axiom.core.stream.NamespaceRepairingFilterHandler;
 import org.apache.axiom.core.stream.StreamException;
@@ -34,7 +36,6 @@ import org.apache.axiom.om.ds.custombuil
 import org.apache.axiom.om.ds.custombuilder.CustomBuilder.Selector;
 import org.apache.axiom.om.impl.builder.Detachable;
 import org.apache.axiom.om.impl.intf.AxiomDocument;
-import org.apache.axiom.om.impl.intf.AxiomSourcedElement;
 
 public class BuilderImpl implements OMXMLParserWrapper, Builder, CustomBuilderSupport {
     private final XmlReader reader;
@@ -43,7 +44,7 @@ public class BuilderImpl implements OMXM
     private final CustomBuilderManager customBuilderManager = new CustomBuilderManager();
 
     public BuilderImpl(XmlInput input, NodeFactory nodeFactory, Model model,
-            AxiomSourcedElement root, boolean repairNamespaces, Detachable detachable) {
+            CoreNSAwareElement root, boolean repairNamespaces, Detachable detachable) {
         builderHandler = new BuilderHandler(nodeFactory, model, root, this);
         reader = input.createReader(repairNamespaces ? new NamespaceRepairingFilterHandler(builderHandler, null, false) : builderHandler);
         this.detachable = detachable;
@@ -79,11 +80,11 @@ public class BuilderImpl implements OMXM
 
     @Override
     public final OMDocument getDocument() {
-        AxiomDocument document;
+        CoreDocument document;
         while ((document = builderHandler.getDocument()) == null) {
             next();
         }
-        return document;
+        return (AxiomDocument)document;
     }
     
     @Override

Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/UnwrappingContext.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/UnwrappingContext.java?rev=1735909&r1=1735908&r2=1735909&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/UnwrappingContext.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/UnwrappingContext.java Sun Mar 20 22:19:26 2016
@@ -18,14 +18,14 @@
  */
 package org.apache.axiom.om.impl.common.builder;
 
+import org.apache.axiom.core.CoreNSAwareElement;
 import org.apache.axiom.core.CoreParentNode;
 import org.apache.axiom.core.stream.StreamException;
-import org.apache.axiom.om.impl.intf.AxiomSourcedElement;
 
 final class UnwrappingContext extends Context {
-    private final AxiomSourcedElement root;
+    private final CoreNSAwareElement root;
     
-    UnwrappingContext(BuilderHandler builderHandler, AxiomSourcedElement root) {
+    UnwrappingContext(BuilderHandler builderHandler, CoreNSAwareElement root) {
         super(builderHandler, 0);
         this.root = root;
     }
@@ -50,7 +50,7 @@ final class UnwrappingContext extends Co
     Context startElement(String namespaceURI, String localName, String prefix)
             throws StreamException {
         root.validateName(prefix, localName, namespaceURI);
-        root.initName(localName, builderHandler.nsCache.getOMNamespace(namespaceURI, prefix), false);
+        root.initName(namespaceURI, localName, prefix, builderHandler.nsCache);
         root.coreSetState(CoreParentNode.ATTRIBUTES_PENDING);
         Context nestedContext = newContext(root);
         // We will basically ignore events in the epilog, so mark this context as inactive