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 2013/01/15 20:06:14 UTC
svn commit: r1433583 - in
/webservices/commons/trunk/modules/axiom/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common:
OMStAXWrapper.java StreamSwitch.java SwitchingWrapper.java
Author: veithen
Date: Tue Jan 15 19:06:14 2013
New Revision: 1433583
URL: http://svn.apache.org/viewvc?rev=1433583&view=rev
Log:
Prepared StreamSwitch to support targets other than SwitchingWrapper.
Modified:
webservices/commons/trunk/modules/axiom/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/OMStAXWrapper.java
webservices/commons/trunk/modules/axiom/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/StreamSwitch.java
webservices/commons/trunk/modules/axiom/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/SwitchingWrapper.java
Modified: webservices/commons/trunk/modules/axiom/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/OMStAXWrapper.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/OMStAXWrapper.java?rev=1433583&r1=1433582&r2=1433583&view=diff
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/OMStAXWrapper.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/OMStAXWrapper.java Tue Jan 15 19:06:14 2013
@@ -57,7 +57,7 @@ class OMStAXWrapper extends StreamReader
*/
public OMStAXWrapper(OMXMLParserWrapper builder, OMContainer startNode,
boolean cache, boolean preserveNamespaceContext) {
- streamSwitch.setParent(new SwitchingWrapper(builder, startNode, cache, preserveNamespaceContext));
+ streamSwitch.setParent(new SwitchingWrapper(streamSwitch, builder, startNode, cache, preserveNamespaceContext));
setParent(streamSwitch);
}
Modified: webservices/commons/trunk/modules/axiom/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/StreamSwitch.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/StreamSwitch.java?rev=1433583&r1=1433582&r2=1433583&view=diff
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/StreamSwitch.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/StreamSwitch.java Tue Jan 15 19:06:14 2013
@@ -18,16 +18,29 @@
*/
package org.apache.axiom.om.impl.common;
+import javax.xml.stream.XMLStreamReader;
import javax.xml.stream.util.StreamReaderDelegate;
import org.apache.axiom.om.OMDataSource;
-public class StreamSwitch extends StreamReaderDelegate {
- public OMDataSource getDataSource() {
- return ((SwitchingWrapper)getParent()).getDataSource();
+final class StreamSwitch extends StreamReaderDelegate {
+ /**
+ * Indicates if an OMSourcedElement with an OMDataSource should
+ * be considered as an interior node or a leaf node.
+ */
+ private boolean isDataSourceALeaf;
+
+ OMDataSource getDataSource() {
+ XMLStreamReader parent = getParent();
+ // Only SwitchingWrapper can produce OMDataSource "events"
+ return parent instanceof SwitchingWrapper ? ((SwitchingWrapper)getParent()).getDataSource() : null;
}
- public void enableDataSourceEvents(boolean value) {
- ((SwitchingWrapper)getParent()).enableDataSourceEvents(value);
+ void enableDataSourceEvents(boolean value) {
+ isDataSourceALeaf = true;
+ }
+
+ boolean isDataSourceALeaf() {
+ return isDataSourceALeaf;
}
}
Modified: webservices/commons/trunk/modules/axiom/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/SwitchingWrapper.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/SwitchingWrapper.java?rev=1433583&r1=1433582&r2=1433583&view=diff
==============================================================================
--- webservices/commons/trunk/modules/axiom/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/SwitchingWrapper.java (original)
+++ webservices/commons/trunk/modules/axiom/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/SwitchingWrapper.java Tue Jan 15 19:06:14 2013
@@ -69,6 +69,8 @@ class SwitchingWrapper extends AbstractX
private static final Log log = LogFactory.getLog(SwitchingWrapper.class);
+ private final StreamSwitch streamSwitch;
+
/**
* The current node, corresponding to the current event.
*/
@@ -84,12 +86,6 @@ class SwitchingWrapper extends AbstractX
*/
private boolean visited;
- /**
- * Indicates if an OMSourcedElement with an OMDataSource should
- * be considered as an interior node or a leaf node.
- */
- private boolean isDataSourceALeaf;
-
/** Field builder */
private OMXMLParserWrapper builder;
@@ -165,14 +161,15 @@ class SwitchingWrapper extends AbstractX
/**
* Constructor.
*
+ * @param streamSwitch
* @param builder
* @param startNode
* @param cache
* @param preserveNamespaceContext
*/
- public SwitchingWrapper(OMXMLParserWrapper builder, OMContainer startNode,
+ public SwitchingWrapper(StreamSwitch streamSwitch, OMXMLParserWrapper builder, OMContainer startNode,
boolean cache, boolean preserveNamespaceContext) {
-
+ this.streamSwitch = streamSwitch;
this.builder = builder;
this.rootNode = startNode;
this.cache = cache;
@@ -907,7 +904,7 @@ class SwitchingWrapper extends AbstractX
*/
private boolean isLeaf(OMSerializable n) {
if (n instanceof OMContainer) {
- return this.isDataSourceALeaf && isOMSourcedElement(n) && n != rootNode;
+ return streamSwitch.isDataSourceALeaf() && isOMSourcedElement(n) && n != rootNode;
} else {
return true;
}
@@ -1404,14 +1401,4 @@ class SwitchingWrapper extends AbstractX
}
return ds;
}
-
- /**
- * Enable if an OMSourcedElement with an OMDataSource should be treated as a
- * leaf node. Disable (the default) if the OMDataSource should be parsed and
- * converted into events.
- * @param value boolean
- */
- public void enableDataSourceEvents(boolean value) {
- isDataSourceALeaf = value;
- }
}