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;
}
}