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/02/26 21:11:35 UTC

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

Author: veithen
Date: Fri Feb 26 20:11:34 2016
New Revision: 1732553

URL: http://svn.apache.org/viewvc?rev=1732553&view=rev
Log:
Instead of storing a reference to the builder, store a reference to the input context.

Added:
    webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/InputContext.java   (with props)
Modified:
    webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreParentNode.java
    webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/DeferringParentNodeSupport.aj
    webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/NonDeferringParentNodeSupport.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/Context.java
    webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomSourcedElementSupport.aj

Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreParentNode.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreParentNode.java?rev=1732553&r1=1732552&r2=1732553&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreParentNode.java (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/CoreParentNode.java Fri Feb 26 20:11:34 2016
@@ -29,7 +29,8 @@ public interface CoreParentNode extends
     int COMPACT = 4;
     
     Builder coreGetBuilder();
-    void coreSetBuilder(Builder builder);
+    InputContext coreGetInputContext();
+    void coreSetInputContext(InputContext context);
     int getState();
     void coreSetState(int state);
     void build();

Added: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/InputContext.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/InputContext.java?rev=1732553&view=auto
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/InputContext.java (added)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/InputContext.java Fri Feb 26 20:11:34 2016
@@ -0,0 +1,23 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axiom.core;
+
+public interface InputContext {
+    Builder getBuilder();
+}

Propchange: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/InputContext.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/DeferringParentNodeSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/DeferringParentNodeSupport.aj?rev=1732553&r1=1732552&r2=1732553&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/DeferringParentNodeSupport.aj (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/DeferringParentNodeSupport.aj Fri Feb 26 20:11:34 2016
@@ -20,17 +20,22 @@ package org.apache.axiom.core.impl.mixin
 
 import org.apache.axiom.core.Builder;
 import org.apache.axiom.core.DeferringParentNode;
+import org.apache.axiom.core.InputContext;
 
 public aspect DeferringParentNodeSupport {
-    private Builder DeferringParentNode.builder;
+    private InputContext DeferringParentNode.context;
 
     public final Builder DeferringParentNode.coreGetBuilder() {
         forceExpand();
-        return builder;
+        return context == null ? null : context.getBuilder();
     }
 
-    public final void DeferringParentNode.coreSetBuilder(Builder builder) {
-        this.builder = builder;
-        coreSetState(builder == null ? COMPLETE : INCOMPLETE);
+    public final InputContext DeferringParentNode.coreGetInputContext() {
+        return context;
+    }
+
+    public final void DeferringParentNode.coreSetInputContext(InputContext context) {
+        this.context = context;
+        coreSetState(context == null ? COMPLETE : INCOMPLETE);
     }
 }

Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/NonDeferringParentNodeSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/NonDeferringParentNodeSupport.aj?rev=1732553&r1=1732552&r2=1732553&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/NonDeferringParentNodeSupport.aj (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/NonDeferringParentNodeSupport.aj Fri Feb 26 20:11:34 2016
@@ -19,6 +19,7 @@
 package org.apache.axiom.core.impl.mixin;
 
 import org.apache.axiom.core.Builder;
+import org.apache.axiom.core.InputContext;
 import org.apache.axiom.core.NonDeferringParentNode;
 
 public aspect NonDeferringParentNodeSupport {
@@ -26,7 +27,11 @@ public aspect NonDeferringParentNodeSupp
         return null;
     }
 
-    public final void NonDeferringParentNode.coreSetBuilder(Builder builder) {
+    public final InputContext NonDeferringParentNode.coreGetInputContext() {
+        return null;
+    }
+
+    public final void NonDeferringParentNode.coreSetInputContext(InputContext context) {
         throw new UnsupportedOperationException();
     }
     

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=1732553&r1=1732552&r2=1732553&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 Fri Feb 26 20:11:34 2016
@@ -124,7 +124,7 @@ public final class BuilderHandler implem
             document.coreSetXmlVersion(xmlVersion);
             document.coreSetXmlEncoding(xmlEncoding);
             document.coreSetStandalone(standalone);
-            document.coreSetBuilder(builder);
+            document.coreSetInputContext(context);
             nodeAdded(document);
             context.target = document;
         }

Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/Context.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/Context.java?rev=1732553&r1=1732552&r2=1732553&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/Context.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/Context.java Fri Feb 26 20:11:34 2016
@@ -18,8 +18,10 @@
  */
 package org.apache.axiom.om.impl.common.builder;
 
+import org.apache.axiom.core.Builder;
 import org.apache.axiom.core.CoreCharacterDataNode;
 import org.apache.axiom.core.CoreParentNode;
+import org.apache.axiom.core.InputContext;
 import org.apache.axiom.om.OMNamespace;
 import org.apache.axiom.om.impl.common.AxiomSemantics;
 import org.apache.axiom.om.impl.common.OMNamespaceImpl;
@@ -35,7 +37,7 @@ import org.apache.axiom.om.impl.intf.Axi
 import org.apache.axiom.om.impl.intf.AxiomNamespaceDeclaration;
 import org.apache.axiom.om.impl.intf.AxiomProcessingInstruction;
 
-public final class Context {
+public final class Context implements InputContext {
     private static final OMNamespace DEFAULT_NS = new OMNamespaceImpl("", "");
     
     private final BuilderHandler builderHandler;
@@ -53,6 +55,11 @@ public final class Context {
         this.depth = depth;
     }
 
+    @Override
+    public Builder getBuilder() {
+        return builderHandler.builder;
+    }
+
     private Context newContext(AxiomContainer target) {
         if (nestedContext == null) {
             nestedContext = new Context(builderHandler, this, depth+1);
@@ -90,11 +97,13 @@ public final class Context {
         if (depth == 0 && builderHandler.root != null) {
             builderHandler.root.validateName(prefix, localName, namespaceURI);
             builderHandler.root.initName(localName, ns, false);
+            builderHandler.root.coreSetInputContext(this);
+            builderHandler.root.coreSetState(CoreParentNode.ATTRIBUTES_PENDING);
             element = builderHandler.root;
         } else {
             element = builderHandler.nodeFactory.createNode(builderHandler.model.determineElementType(
                     target, depth+1, namespaceURI, localName));
-            element.coreSetBuilder(builderHandler.builder);
+            element.coreSetInputContext(this);
             element.coreSetState(CoreParentNode.ATTRIBUTES_PENDING);
             element.initName(localName, ns, false);
             addChild(element);
@@ -104,7 +113,7 @@ public final class Context {
     
     public Context endElement() {
         target.setComplete(true);
-        target.coreSetBuilder(null);
+        target.coreSetInputContext(null);
         if (pendingCharacterData != null) {
             target.coreSetCharacterData(pendingCharacterData, null);
             pendingCharacterData = null;
@@ -181,7 +190,7 @@ public final class Context {
         }
         if (target != null) {
             target.setComplete(true);
-            target.coreSetBuilder(null);
+            target.coreSetInputContext(null);
         }
         target = null;
     }

Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomSourcedElementSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomSourcedElementSupport.aj?rev=1732553&r1=1732552&r2=1732553&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomSourcedElementSupport.aj (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomSourcedElementSupport.aj Fri Feb 26 20:11:34 2016
@@ -235,7 +235,6 @@ public aspect AxiomSourcedElementSupport
                 builder = new StAXOMBuilder(coreGetNodeFactory(), readerFromDS, this);
             }
             isExpanded = true;
-            coreSetBuilder(builder);
             coreSetState(ATTRIBUTES_PENDING);
             do {
                 builder.next();
@@ -484,7 +483,7 @@ public aspect AxiomSourcedElementSupport
             this.dataSource = dataSource;
             setComplete(false);
             isExpanded = false;
-            coreSetBuilder(null);
+            coreSetInputContext(null);
             if (isLossyPrefix(dataSource)) {
                 // Create a deferred namespace that forces an expand to get the prefix
                 definedNamespace = new DeferredNamespace(this, definedNamespace.getNamespaceURI());