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/17 23:31:01 UTC

svn commit: r1730960 - in /webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl: common/builder/ common/factory/ mixin/ stream/ stream/sax/

Author: veithen
Date: Wed Feb 17 22:31:01 2016
New Revision: 1730960

URL: http://svn.apache.org/viewvc?rev=1730960&view=rev
Log:
Refactor PushOMBuilder and SAXOMBuilder.

Added:
    webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/PushBuilder.java
      - copied, changed from r1730745, webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/AbstractPushBuilder.java
    webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/PushOMDataSourceInput.java
      - copied, changed from r1730745, webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/PushOMBuilder.java
    webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/PushOMDataSourceReader.java
      - copied, changed from r1730745, webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/PushOMBuilder.java
    webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/XmlInput.java   (with props)
    webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/XmlReader.java   (with props)
    webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/sax/
    webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/sax/SAXInput.java
      - copied, changed from r1730745, webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/SAXOMBuilder.java
    webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/sax/SAXReader.java
      - copied, changed from r1730745, webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/SAXOMBuilder.java
Removed:
    webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/AbstractPushBuilder.java
    webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/PushOMBuilder.java
    webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/SAXOMBuilder.java
Modified:
    webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/AbstractOMMetaFactory.java
    webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomSourcedElementSupport.aj

Copied: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/PushBuilder.java (from r1730745, webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/AbstractPushBuilder.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?p2=webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/PushBuilder.java&p1=webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/AbstractPushBuilder.java&r1=1730745&r2=1730960&rev=1730960&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/AbstractPushBuilder.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/PushBuilder.java Wed Feb 17 22:31:01 2016
@@ -22,16 +22,33 @@ import javax.xml.stream.XMLStreamReader;
 
 import org.apache.axiom.core.CoreParentNode;
 import org.apache.axiom.core.NodeFactory;
+import org.apache.axiom.om.DeferredParsingException;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMException;
 import org.apache.axiom.om.impl.intf.AxiomSourcedElement;
+import org.apache.axiom.om.impl.stream.StreamException;
+import org.apache.axiom.om.impl.stream.XmlInput;
+import org.apache.axiom.om.impl.stream.XmlReader;
 
-public abstract class AbstractPushBuilder extends AbstractBuilder {
-    public AbstractPushBuilder(NodeFactory nodeFactory, Model model, AxiomSourcedElement root,
+public final class PushBuilder extends AbstractBuilder {
+    private final XmlReader reader;
+    
+    public PushBuilder(XmlInput input, NodeFactory nodeFactory, Model model, AxiomSourcedElement root,
             boolean repairNamespaces) {
         super(nodeFactory, model, root, repairNamespaces);
+        reader = input.createReader(handler);
     }
     
+    @Override
+    public int next() throws OMException {
+        try {
+            reader.proceed();
+        } catch (StreamException ex) {
+            throw new DeferredParsingException(ex);
+        }
+        return -1;
+    }
+
     public final void discard(OMElement el) throws OMException {
         throw new UnsupportedOperationException();
     }

Copied: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/PushOMDataSourceInput.java (from r1730745, webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/PushOMBuilder.java)
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/PushOMDataSourceInput.java?p2=webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/PushOMDataSourceInput.java&p1=webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/PushOMBuilder.java&r1=1730745&r2=1730960&rev=1730960&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/PushOMBuilder.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/PushOMDataSourceInput.java Wed Feb 17 22:31:01 2016
@@ -18,46 +18,23 @@
  */
 package org.apache.axiom.om.impl.common.builder;
 
-import java.util.Iterator;
-
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamWriter;
-
-import org.apache.axiom.om.DeferredParsingException;
-import org.apache.axiom.om.OMContainer;
 import org.apache.axiom.om.OMDataSource;
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMNamespace;
 import org.apache.axiom.om.impl.intf.AxiomSourcedElement;
-import org.apache.axiom.om.impl.stream.stax.XmlHandlerStreamWriter;
+import org.apache.axiom.om.impl.stream.XmlHandler;
+import org.apache.axiom.om.impl.stream.XmlInput;
+import org.apache.axiom.om.impl.stream.XmlReader;
 
-public final class PushOMBuilder extends AbstractPushBuilder {
+public final class PushOMDataSourceInput implements XmlInput {
     private final AxiomSourcedElement root;
     private final OMDataSource dataSource;
 
-    public PushOMBuilder(AxiomSourcedElement root, OMDataSource dataSource) {
-        // Disable namespace repairing because the OMDataSource is required to produce well formed
-        // XML with respect to namespaces.
-        super(root.coreGetNodeFactory(), PlainXMLModel.INSTANCE, root, false);
+    public PushOMDataSourceInput(AxiomSourcedElement root, OMDataSource dataSource) {
         this.root = root;
         this.dataSource = dataSource;
     }
     
-    public int next() {
-        try {
-            XMLStreamWriter writer = new XmlHandlerStreamWriter(handler);
-            // Seed the namespace context with the namespace context from the parent
-            OMContainer parent = root.getParent();
-            if (parent instanceof OMElement) {
-                for (Iterator<OMNamespace> it = ((OMElement)parent).getNamespacesInScope(); it.hasNext(); ) {
-                    OMNamespace ns = it.next();
-                    writer.setPrefix(ns.getPrefix(), ns.getNamespaceURI());
-                }
-            }
-            dataSource.serialize(new PushOMDataSourceStreamWriter(writer));
-        } catch (XMLStreamException ex) {
-            throw new DeferredParsingException(ex);
-        }
-        return -1;
+    @Override
+    public XmlReader createReader(XmlHandler handler) {
+        return new PushOMDataSourceReader(handler, root, dataSource);
     }
 }

Copied: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/PushOMDataSourceReader.java (from r1730745, webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/PushOMBuilder.java)
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/PushOMDataSourceReader.java?p2=webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/PushOMDataSourceReader.java&p1=webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/PushOMBuilder.java&r1=1730745&r2=1730960&rev=1730960&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/PushOMBuilder.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/PushOMDataSourceReader.java Wed Feb 17 22:31:01 2016
@@ -23,27 +23,29 @@ import java.util.Iterator;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamWriter;
 
-import org.apache.axiom.om.DeferredParsingException;
 import org.apache.axiom.om.OMContainer;
 import org.apache.axiom.om.OMDataSource;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMNamespace;
 import org.apache.axiom.om.impl.intf.AxiomSourcedElement;
+import org.apache.axiom.om.impl.stream.StreamException;
+import org.apache.axiom.om.impl.stream.XmlHandler;
+import org.apache.axiom.om.impl.stream.XmlReader;
 import org.apache.axiom.om.impl.stream.stax.XmlHandlerStreamWriter;
 
-public final class PushOMBuilder extends AbstractPushBuilder {
+public final class PushOMDataSourceReader implements XmlReader {
+    private final XmlHandler handler;
     private final AxiomSourcedElement root;
     private final OMDataSource dataSource;
 
-    public PushOMBuilder(AxiomSourcedElement root, OMDataSource dataSource) {
-        // Disable namespace repairing because the OMDataSource is required to produce well formed
-        // XML with respect to namespaces.
-        super(root.coreGetNodeFactory(), PlainXMLModel.INSTANCE, root, false);
+    public PushOMDataSourceReader(XmlHandler handler, AxiomSourcedElement root, OMDataSource dataSource) {
+        this.handler = handler;
         this.root = root;
         this.dataSource = dataSource;
     }
     
-    public int next() {
+    @Override
+    public void proceed() throws StreamException {
         try {
             XMLStreamWriter writer = new XmlHandlerStreamWriter(handler);
             // Seed the namespace context with the namespace context from the parent
@@ -56,8 +58,7 @@ public final class PushOMBuilder extends
             }
             dataSource.serialize(new PushOMDataSourceStreamWriter(writer));
         } catch (XMLStreamException ex) {
-            throw new DeferredParsingException(ex);
+            throw new StreamException(ex);
         }
-        return -1;
     }
 }

Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/AbstractOMMetaFactory.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/AbstractOMMetaFactory.java?rev=1730960&r1=1730959&r2=1730960&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/AbstractOMMetaFactory.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/AbstractOMMetaFactory.java Wed Feb 17 22:31:01 2016
@@ -38,7 +38,9 @@ import org.apache.axiom.om.OMMetaFactory
 import org.apache.axiom.om.OMXMLParserWrapper;
 import org.apache.axiom.om.impl.builder.Detachable;
 import org.apache.axiom.om.impl.common.builder.PlainXMLModel;
+import org.apache.axiom.om.impl.common.builder.PushBuilder;
 import org.apache.axiom.om.impl.common.builder.StAXOMBuilder;
+import org.apache.axiom.om.impl.stream.sax.SAXInput;
 import org.apache.axiom.om.util.StAXParserConfiguration;
 import org.apache.axiom.om.util.StAXUtils;
 import org.apache.axiom.soap.SOAP12Constants;
@@ -208,7 +210,7 @@ public abstract class AbstractOMMetaFact
     // TODO: don't need the omFactory argument anymore
     public OMXMLParserWrapper createOMBuilder(OMFactory omFactory, SAXSource source,
             boolean expandEntityReferences) {
-        return new SAXOMBuilder(nodeFactory, PlainXMLModel.INSTANCE, source, expandEntityReferences);
+        return new PushBuilder(new SAXInput(source, expandEntityReferences), nodeFactory, PlainXMLModel.INSTANCE, null, true);
     }
 
     public OMXMLParserWrapper createOMBuilder(StAXParserConfiguration configuration,

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=1730960&r1=1730959&r2=1730960&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 Wed Feb 17 22:31:01 2016
@@ -29,12 +29,13 @@ import org.apache.axiom.om.OMException;
 import org.apache.axiom.om.OMNamespace;
 import org.apache.axiom.om.OMNode;
 import org.apache.axiom.om.OMOutputFormat;
-import org.apache.axiom.om.OMXMLParserWrapper;
 import org.apache.axiom.om.OMXMLStreamReaderConfiguration;
 import org.apache.axiom.om.QNameAwareOMDataSource;
 import org.apache.axiom.om.impl.common.DeferredNamespace;
 import org.apache.axiom.om.impl.common.OMNamespaceImpl;
-import org.apache.axiom.om.impl.common.builder.PushOMBuilder;
+import org.apache.axiom.om.impl.common.builder.PlainXMLModel;
+import org.apache.axiom.om.impl.common.builder.PushBuilder;
+import org.apache.axiom.om.impl.common.builder.PushOMDataSourceInput;
 import org.apache.axiom.om.impl.common.builder.StAXOMBuilder;
 import org.apache.axiom.om.impl.common.util.OMDataSourceUtil;
 import org.apache.axiom.om.impl.intf.AxiomSourcedElement;
@@ -217,7 +218,9 @@ public aspect AxiomSourcedElementSupport
 
             Builder builder;
             if (OMDataSourceUtil.isPushDataSource(dataSource)) {
-                builder = new PushOMBuilder(this, dataSource);
+                // Disable namespace repairing because the OMDataSource is required to produce well formed
+                // XML with respect to namespaces.
+                builder = new PushBuilder(new PushOMDataSourceInput(this, dataSource), coreGetNodeFactory(), PlainXMLModel.INSTANCE, this, false);
             } else {
                 // Get the XMLStreamReader
                 XMLStreamReader readerFromDS;

Added: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/XmlInput.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/XmlInput.java?rev=1730960&view=auto
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/XmlInput.java (added)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/XmlInput.java Wed Feb 17 22:31:01 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.om.impl.stream;
+
+public interface XmlInput {
+    XmlReader createReader(XmlHandler handler);
+}

Propchange: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/XmlInput.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/XmlReader.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/XmlReader.java?rev=1730960&view=auto
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/XmlReader.java (added)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/XmlReader.java Wed Feb 17 22:31:01 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.om.impl.stream;
+
+public interface XmlReader {
+    void proceed() throws StreamException;
+}

Propchange: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/XmlReader.java
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/sax/SAXInput.java (from r1730745, webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/SAXOMBuilder.java)
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/sax/SAXInput.java?p2=webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/sax/SAXInput.java&p1=webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/SAXOMBuilder.java&r1=1730745&r2=1730960&rev=1730960&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/SAXOMBuilder.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/sax/SAXInput.java Wed Feb 17 22:31:01 2016
@@ -17,52 +17,25 @@
  * under the License.
  */
 
-package org.apache.axiom.om.impl.common.factory;
-
-import org.apache.axiom.core.NodeFactory;
-import org.apache.axiom.om.OMException;
-import org.apache.axiom.om.impl.common.OMContentHandler;
-import org.apache.axiom.om.impl.common.builder.AbstractPushBuilder;
-import org.apache.axiom.om.impl.common.builder.Model;
-import org.xml.sax.SAXException;
-import org.xml.sax.XMLReader;
-
-import java.io.IOException;
+package org.apache.axiom.om.impl.stream.sax;
 
 import javax.xml.transform.sax.SAXSource;
 
-public final class SAXOMBuilder extends AbstractPushBuilder {
+import org.apache.axiom.om.impl.stream.XmlHandler;
+import org.apache.axiom.om.impl.stream.XmlInput;
+import org.apache.axiom.om.impl.stream.XmlReader;
+
+public final class SAXInput implements XmlInput {
     private final boolean expandEntityReferences;
     private final SAXSource source;
     
-    public SAXOMBuilder(NodeFactory nodeFactory, Model model, SAXSource source, boolean expandEntityReferences) {
-        super(nodeFactory, model, null, true);
+    public SAXInput(SAXSource source, boolean expandEntityReferences) {
         this.expandEntityReferences = expandEntityReferences;
         this.source = source;
     }
     
-    public int next() {
-        XMLReader reader = source.getXMLReader();
-        OMContentHandler contentHandler = new OMContentHandler(handler, expandEntityReferences);
-        reader.setContentHandler(contentHandler);
-        reader.setDTDHandler(contentHandler);
-        try {
-            reader.setProperty("http://xml.org/sax/properties/lexical-handler", contentHandler);
-        } catch (SAXException ex) {
-            // Ignore
-        }
-        try {
-            reader.setProperty("http://xml.org/sax/properties/declaration-handler", contentHandler);
-        } catch (SAXException ex) {
-            // Ignore
-        }
-        try {
-            reader.parse(source.getInputSource());
-        } catch (IOException ex) {
-            throw new OMException(ex);
-        } catch (SAXException ex) {
-            throw new OMException(ex);
-        }
-        return -1;
+    @Override
+    public XmlReader createReader(XmlHandler handler) {
+        return new SAXReader(handler, source, expandEntityReferences);
     }
 }

Copied: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/sax/SAXReader.java (from r1730745, webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/SAXOMBuilder.java)
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/sax/SAXReader.java?p2=webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/sax/SAXReader.java&p1=webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/SAXOMBuilder.java&r1=1730745&r2=1730960&rev=1730960&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/SAXOMBuilder.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/sax/SAXReader.java Wed Feb 17 22:31:01 2016
@@ -17,13 +17,12 @@
  * under the License.
  */
 
-package org.apache.axiom.om.impl.common.factory;
+package org.apache.axiom.om.impl.stream.sax;
 
-import org.apache.axiom.core.NodeFactory;
-import org.apache.axiom.om.OMException;
 import org.apache.axiom.om.impl.common.OMContentHandler;
-import org.apache.axiom.om.impl.common.builder.AbstractPushBuilder;
-import org.apache.axiom.om.impl.common.builder.Model;
+import org.apache.axiom.om.impl.stream.StreamException;
+import org.apache.axiom.om.impl.stream.XmlHandler;
+import org.apache.axiom.om.impl.stream.XmlReader;
 import org.xml.sax.SAXException;
 import org.xml.sax.XMLReader;
 
@@ -31,17 +30,19 @@ import java.io.IOException;
 
 import javax.xml.transform.sax.SAXSource;
 
-public final class SAXOMBuilder extends AbstractPushBuilder {
+public final class SAXReader implements XmlReader {
+    private final XmlHandler handler;
     private final boolean expandEntityReferences;
     private final SAXSource source;
     
-    public SAXOMBuilder(NodeFactory nodeFactory, Model model, SAXSource source, boolean expandEntityReferences) {
-        super(nodeFactory, model, null, true);
+    SAXReader(XmlHandler handler, SAXSource source, boolean expandEntityReferences) {
+        this.handler = handler;
         this.expandEntityReferences = expandEntityReferences;
         this.source = source;
     }
     
-    public int next() {
+    @Override
+    public void proceed() throws StreamException {
         XMLReader reader = source.getXMLReader();
         OMContentHandler contentHandler = new OMContentHandler(handler, expandEntityReferences);
         reader.setContentHandler(contentHandler);
@@ -59,10 +60,9 @@ public final class SAXOMBuilder extends
         try {
             reader.parse(source.getInputSource());
         } catch (IOException ex) {
-            throw new OMException(ex);
+            throw new StreamException(ex);
         } catch (SAXException ex) {
-            throw new OMException(ex);
+            throw new StreamException(ex);
         }
-        return -1;
     }
 }