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());