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/05/18 18:02:57 UTC
svn commit: r1484132 - in
/webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/pull:
Navigator.java OMXMLStreamReaderExAdapter.java PullSerializer.java
PullSerializerState.java SwitchingWrapper.java
Author: veithen
Date: Sat May 18 16:02:57 2013
New Revision: 1484132
URL: http://svn.apache.org/r1484132
Log:
* Improved documentation.
* Gave SwitchingWrapper a more meaningful name.
Added:
webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/pull/Navigator.java
- copied, changed from r1484127, webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/pull/SwitchingWrapper.java
Removed:
webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/pull/SwitchingWrapper.java
Modified:
webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/pull/OMXMLStreamReaderExAdapter.java
webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/pull/PullSerializer.java
webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/pull/PullSerializerState.java
Copied: webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/pull/Navigator.java (from r1484127, webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/pull/SwitchingWrapper.java)
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/pull/Navigator.java?p2=webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/pull/Navigator.java&p1=webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/pull/SwitchingWrapper.java&r1=1484127&r2=1484132&rev=1484132&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/pull/SwitchingWrapper.java (original)
+++ webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/pull/Navigator.java Sat May 18 16:02:57 2013
@@ -63,12 +63,12 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
- * Class used internally by {@link OMXMLStreamReaderExAdapter}.
+ * {@link PullSerializerState} implementation that generates events from nodes in the OM tree.
*/
-final class SwitchingWrapper extends PullSerializerState
+final class Navigator extends PullSerializerState
implements DataHandlerReader, CharacterDataReader, DTDReader, XMLStreamConstants {
- private static final Log log = LogFactory.getLog(SwitchingWrapper.class);
+ private static final Log log = LogFactory.getLog(Navigator.class);
private final PullSerializer serializer;
@@ -134,7 +134,7 @@ final class SwitchingWrapper extends Pul
* @param cache
* @param preserveNamespaceContext
*/
- SwitchingWrapper(PullSerializer serializer, OMXMLParserWrapper builder, OMContainer startNode,
+ Navigator(PullSerializer serializer, OMXMLParserWrapper builder, OMContainer startNode,
boolean cache, boolean preserveNamespaceContext) {
this.serializer = serializer;
this.builder = builder;
@@ -195,8 +195,8 @@ final class SwitchingWrapper extends Pul
// START quick & dirty hack
if (node instanceof OMSourcedElement) {
// TODO: Need to force expansion to solve an issue in Axis2 where the returned QName is incorrect.
- // Note that in previous versions of SwitchingWrapper, the sourced element was always expanded
- // at this point (because SwitchingWrapper was looking 2 nodes ahead).
+ // Note that in previous versions of Navigator, the sourced element was always expanded
+ // at this point (because Navigator was looking 2 nodes ahead).
((OMElement)node).getFirstOMChild();
}
// END quick & dirty hack
@@ -530,7 +530,7 @@ final class SwitchingWrapper extends Pul
staxBuilder.close();
}
} finally {
- // Note that as a side effect of this instruction, the SwitchingWrapper instance
+ // Note that as a side effect of this instruction, the Navigator instance
// will become unreachable and the parser can be GC'd or reused.
serializer.switchState(ClosedState.INSTANCE);
}
Modified: webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/pull/OMXMLStreamReaderExAdapter.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/pull/OMXMLStreamReaderExAdapter.java?rev=1484132&r1=1484131&r2=1484132&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/pull/OMXMLStreamReaderExAdapter.java (original)
+++ webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/pull/OMXMLStreamReaderExAdapter.java Sat May 18 16:02:57 2013
@@ -56,8 +56,8 @@ public class OMXMLStreamReaderExAdapter
public void setInlineMTOM(boolean value) {
// For inlineMTOM=false, we insert an XOPEncodingStreamReader proxy between
- // us and SwitchingWrapper.
- // For inlineMTOM=true, we remove it and delegate directly to SwitchingWrapper.
+ // us and PullSerializer.
+ // For inlineMTOM=true, we remove it and delegate directly to PullSerializer.
if (value) {
if (xopEncoder != null) {
xopEncoder = null;
Modified: webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/pull/PullSerializer.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/pull/PullSerializer.java?rev=1484132&r1=1484131&r2=1484132&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/pull/PullSerializer.java (original)
+++ webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/pull/PullSerializer.java Sat May 18 16:02:57 2013
@@ -55,7 +55,7 @@ public final class PullSerializer extend
public PullSerializer(OMXMLParserWrapper builder, OMContainer startNode,
boolean cache, boolean preserveNamespaceContext) {
- state = new SwitchingWrapper(this, builder, startNode, cache, preserveNamespaceContext);
+ state = new Navigator(this, builder, startNode, cache, preserveNamespaceContext);
}
/**
Modified: webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/pull/PullSerializerState.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/pull/PullSerializerState.java?rev=1484132&r1=1484131&r2=1484132&view=diff
==============================================================================
--- webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/pull/PullSerializerState.java (original)
+++ webservices/axiom/trunk/modules/axiom-common-impl/src/main/java/org/apache/axiom/om/impl/common/serializer/pull/PullSerializerState.java Sat May 18 16:02:57 2013
@@ -29,6 +29,22 @@ import org.apache.axiom.ext.stax.datahan
import org.apache.axiom.om.OMDataSource;
import org.apache.axiom.om.impl.OMXMLStreamReaderEx;
+/**
+ * Encapsulates the state of the {@link PullSerializer}. Different subclasses are used depending on
+ * the position reached in the OM tree or original document and the state of the serializer:
+ * <ul>
+ * <li>{@link PullThroughWrapper} is used if caching is turned off and the node for the current
+ * event has not been instantiated. In this case, events are pulled directly from the underlying
+ * parser.
+ * <li>{@link IncludeWrapper} is used for events pulled directly from an {@link OMDataSource}.
+ * <li>{@link EndDocumentState} is used when the {@link XMLStreamConstants#END_DOCUMENT} event has
+ * been reached.
+ * <li>{@link ClosedState} is used when {@link XMLStreamReader#close()} has been called on the
+ * serializer.
+ * <li>In all other cases, {@link Navigator} is used. This class is responsible for
+ * generating StAX events from nodes in the object model.
+ * </ul>
+ */
abstract class PullSerializerState {
/**
* Get the {@link DTDReader} extension.