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/08 23:06:52 UTC
svn commit: r1734172 - 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: Tue Mar 8 22:06:52 2016
New Revision: 1734172
URL: http://svn.apache.org/viewvc?rev=1734172&view=rev
Log:
Remove the old discard code.
Modified:
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/Builder.java
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreChildNodeSupport.aj
webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreParentNodeSupport.aj
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/common/builder/PushBuilder.java
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/StAXOMBuilder.java
webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomElementSupport.aj
Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/Builder.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/Builder.java?rev=1734172&r1=1734171&r2=1734172&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/Builder.java (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/Builder.java Tue Mar 8 22:06:52 2016
@@ -23,6 +23,4 @@ public interface Builder {
boolean isCompleted();
void close();
boolean isClosed();
-
- void discard(CoreParentNode container);
}
Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreChildNodeSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreChildNodeSupport.aj?rev=1734172&r1=1734171&r2=1734172&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreChildNodeSupport.aj (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreChildNodeSupport.aj Tue Mar 8 22:06:52 2016
@@ -117,16 +117,18 @@ public aspect CoreChildNodeSupport {
CoreChildNode nextSibling = coreGetNextSiblingIfAvailable();
if (nextSibling == null) {
CoreParentNode parent = coreGetParent();
- if (parent != null && parent.coreGetBuilder() != null) {
+ if (parent != null) {
switch (parent.getState()) {
case CoreParentNode.DISCARDING:
case CoreParentNode.DISCARDED:
throw new NodeConsumedException();
case CoreParentNode.INCOMPLETE:
- do {
- parent.buildNext();
- } while (parent.getState() == CoreParentNode.INCOMPLETE
- && (nextSibling = coreGetNextSiblingIfAvailable()) == null);
+ if (parent.coreGetBuilder() != null) {
+ do {
+ parent.buildNext();
+ } while (parent.getState() == CoreParentNode.INCOMPLETE
+ && (nextSibling = coreGetNextSiblingIfAvailable()) == null);
+ }
}
}
}
Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreParentNodeSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreParentNodeSupport.aj?rev=1734172&r1=1734171&r2=1734172&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreParentNodeSupport.aj (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/mixin/CoreParentNodeSupport.aj Tue Mar 8 22:06:52 2016
@@ -227,6 +227,29 @@ public aspect CoreParentNodeSupport {
fragmentContent.lastChild = null;
}
+ public final void CoreParentNode.coreDiscard(boolean consumeInput) {
+ if (!isExpanded()) {
+ return;
+ }
+ CoreChildNode child = coreGetFirstChildIfAvailable();
+ while (child != null) {
+ if (child instanceof CoreParentNode) {
+ ((CoreParentNode)child).coreDiscard(consumeInput);
+ }
+ child = child.coreGetNextSiblingIfAvailable();
+ }
+ InputContext context = coreGetInputContext();
+ if (context != null) {
+ context.discard();
+ if (consumeInput) {
+ Builder builder = context.getBuilder();
+ do {
+ builder.next();
+ } while (getState() != DISCARDED);
+ }
+ }
+ }
+
public final void CoreParentNode.coreRemoveChildren(Semantics semantics) {
if (getState() == COMPACT) {
coreSetState(COMPLETE);
@@ -257,7 +280,6 @@ public aspect CoreParentNodeSupport {
}
content = null;
if (updateState) {
- // TODO: need to check that the builder will not modify the state to DISCARDED later
coreSetState(COMPLETE);
}
}
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=1734172&r1=1734171&r2=1734172&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 Tue Mar 8 22:06:52 2016
@@ -119,8 +119,12 @@ public final class Context implements In
if (passThroughHandler != NullXmlHandler.INSTANCE) {
builderHandler.decrementActiveContextCount();
}
+ // TODO: handle this in a better way
+ boolean updateState = target.getState() == CoreParentNode.DISCARDING;
target.coreSetInputContext(null);
- target.coreSetState(CoreParentNode.DISCARDED);
+ if (updateState) {
+ target.coreSetState(CoreParentNode.DISCARDED);
+ }
passThroughHandler = null;
target = null;
return parentContext;
Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/PushBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/PushBuilder.java?rev=1734172&r1=1734171&r2=1734172&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/PushBuilder.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/PushBuilder.java Tue Mar 8 22:06:52 2016
@@ -18,7 +18,6 @@
*/
package org.apache.axiom.om.impl.common.builder;
-import org.apache.axiom.core.CoreParentNode;
import org.apache.axiom.core.NodeFactory;
import org.apache.axiom.core.stream.StreamException;
import org.apache.axiom.core.stream.XmlInput;
@@ -89,9 +88,4 @@ public final class PushBuilder extends A
public final Object getReaderProperty(String name) throws IllegalArgumentException {
return null;
}
-
- @Override
- public final void discard(CoreParentNode container) {
- throw new UnsupportedOperationException();
- }
}
Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/StAXOMBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/StAXOMBuilder.java?rev=1734172&r1=1734171&r2=1734172&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/StAXOMBuilder.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/StAXOMBuilder.java Tue Mar 8 22:06:52 2016
@@ -19,7 +19,6 @@
package org.apache.axiom.om.impl.common.builder;
-import org.apache.axiom.core.CoreParentNode;
import org.apache.axiom.core.NodeFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMException;
@@ -27,7 +26,6 @@ import org.apache.axiom.om.ds.custombuil
import org.apache.axiom.om.ds.custombuilder.CustomBuilderSupport;
import org.apache.axiom.om.ds.custombuilder.CustomBuilder.Selector;
import org.apache.axiom.om.impl.builder.Detachable;
-import org.apache.axiom.om.impl.intf.AxiomContainer;
import org.apache.axiom.om.impl.intf.AxiomElement;
import org.apache.axiom.om.impl.intf.AxiomSourcedElement;
@@ -74,63 +72,6 @@ public class StAXOMBuilder extends Abstr
this(nodeFactory, parser, true, null, null, PlainXMLModel.INSTANCE, element);
}
- private void discarded(CoreParentNode container) {
- ((AxiomContainer)container).discarded();
- }
-
- public final void discard(CoreParentNode container) {
- int targetElementLevel = builderHandler.depth;
- Context current = builderHandler.context;
- while (current.target != container) {
- targetElementLevel--;
- current = current.parentContext;
- }
- if (targetElementLevel == 0 || targetElementLevel == 1 && builderHandler.document == null) {
- close();
- current = builderHandler.context;
- while (true) {
- discarded(current.target);
- if (current.target == container) {
- break;
- }
- current = current.parentContext;
- }
- return;
- }
- int skipDepth = 0;
- loop: while (true) {
- switch (helper.parserNext()) {
- case XMLStreamReader.START_ELEMENT:
- skipDepth++;
- break;
- case XMLStreamReader.END_ELEMENT:
- if (skipDepth > 0) {
- skipDepth--;
- } else {
- discarded(builderHandler.context.target);
- boolean found = container == builderHandler.context.target;
- builderHandler.context = builderHandler.context.parentContext;
- builderHandler.depth--;
- if (found) {
- break loop;
- }
- }
- break;
- case XMLStreamReader.END_DOCUMENT:
- if (skipDepth != 0 || builderHandler.depth != 0) {
- throw new OMException("Unexpected END_DOCUMENT");
- }
- if (builderHandler.context.target != builderHandler.document) {
- throw new OMException("Called discard for an element that is not being built by this builder");
- }
- discarded(builderHandler.context.target);
- builderHandler.context = null;
- builderHandler.done = true;
- break loop;
- }
- }
- }
-
public final String getNamespaceURI() {
return helper.parser.getNamespaceURI();
}
Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomElementSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomElementSupport.aj?rev=1734172&r1=1734171&r2=1734172&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomElementSupport.aj (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomElementSupport.aj Tue Mar 8 22:06:52 2016
@@ -244,9 +244,7 @@ public aspect AxiomElementSupport {
}
public final void AxiomElement.discard() {
- if (getState() == CoreParentNode.INCOMPLETE && coreGetBuilder() != null) {
- coreGetBuilder().discard(this);
- }
+ coreDiscard(true);
detach();
}