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/06 13:24:35 UTC

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

Author: veithen
Date: Sat Feb  6 12:24:35 2016
New Revision: 1728830

URL: http://svn.apache.org/viewvc?rev=1728830&view=rev
Log:
Make PushOMBuilder an OMXMLParserWrapper implementation.

Added:
    webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/AbstractBuilder.java   (with props)
    webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/AbstractPushBuilder.java   (with props)
Modified:
    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/StAXOMBuilder.java
    webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/SAXOMBuilder.java

Added: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/AbstractBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/AbstractBuilder.java?rev=1728830&view=auto
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/AbstractBuilder.java (added)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/AbstractBuilder.java Sat Feb  6 12:24:35 2016
@@ -0,0 +1,34 @@
+/*
+ * 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.common.builder;
+
+import org.apache.axiom.core.NodeFactory;
+import org.apache.axiom.om.OMXMLParserWrapper;
+
+public abstract class AbstractBuilder implements OMXMLParserWrapper {
+    protected final BuilderHandler handler;
+
+    public AbstractBuilder(NodeFactory nodeFactory, Model model) {
+        handler = new BuilderHandler(nodeFactory, model, this);
+    }
+
+    public final void addNodePostProcessor(NodePostProcessor nodePostProcessor) {
+        handler.addNodePostProcessor(nodePostProcessor);
+    }
+}

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

Added: 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/AbstractPushBuilder.java?rev=1728830&view=auto
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/AbstractPushBuilder.java (added)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/builder/AbstractPushBuilder.java Sat Feb  6 12:24:35 2016
@@ -0,0 +1,78 @@
+/*
+ * 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.common.builder;
+
+import org.apache.axiom.core.NodeFactory;
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMException;
+
+public abstract class AbstractPushBuilder extends AbstractBuilder {
+    public AbstractPushBuilder(NodeFactory nodeFactory, Model model) {
+        super(nodeFactory, model);
+    }
+    
+    public final int next() throws OMException {
+        throw new UnsupportedOperationException();
+    }
+
+    public final void discard(OMElement el) throws OMException {
+        throw new UnsupportedOperationException();
+    }
+
+    public final void setCache(boolean b) throws OMException {
+        throw new UnsupportedOperationException();
+    }
+
+    public final boolean isCache() {
+        throw new UnsupportedOperationException();
+    }
+
+    public final Object getParser() {
+        throw new UnsupportedOperationException();
+    }
+
+    public final boolean isCompleted() {
+        return handler.document != null && handler.document.isComplete();
+    }
+
+    public final OMElement getDocumentElement() {
+        return getDocument().getOMDocumentElement();
+    }
+
+    public final OMElement getDocumentElement(boolean discardDocument) {
+        OMElement documentElement = getDocument().getOMDocumentElement();
+        if (discardDocument) {
+            documentElement.detach();
+        }
+        return documentElement;
+    }
+
+    public final String getCharacterEncoding() {
+        throw new UnsupportedOperationException();
+    }
+
+    public final void close() {
+        // This is a no-op
+    }
+    
+    public void detach() {
+        // Force processing of the SAX source
+        getDocument();
+    }
+}

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

Modified: 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/PushOMBuilder.java?rev=1728830&r1=1728829&r2=1728830&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/PushOMBuilder.java Sat Feb  6 12:24:35 2016
@@ -21,20 +21,25 @@ package org.apache.axiom.om.impl.common.
 import javax.xml.stream.XMLStreamException;
 
 import org.apache.axiom.om.OMDataSource;
+import org.apache.axiom.om.OMDocument;
 import org.apache.axiom.om.impl.intf.AxiomSourcedElement;
 
-public class PushOMBuilder {
+public final class PushOMBuilder extends AbstractPushBuilder {
     private final AxiomSourcedElement root;
     private final OMDataSource dataSource;
-    private final BuilderHandler handler;
 
     public PushOMBuilder(AxiomSourcedElement root, OMDataSource dataSource) throws XMLStreamException {
+        super(root.coreGetNodeFactory(), PlainXMLModel.INSTANCE);
         this.root = root;
-        handler = new BuilderHandler(root.coreGetNodeFactory(), PlainXMLModel.INSTANCE, null);
         this.dataSource = dataSource;
     }
     
     public void expand() throws XMLStreamException {
         dataSource.serialize(new BuilderHandlerXMLStreamWriter(handler, root));
     }
+
+    @Override
+    public OMDocument getDocument() {
+        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=1728830&r1=1728829&r2=1728830&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 Sat Feb  6 12:24:35 2016
@@ -86,7 +86,7 @@ import java.io.Closeable;
  * To avoid this, the builder remembers exceptions thrown by the parser and rethrows
  * them during a call to next().
  */
-public class StAXOMBuilder implements Builder, CustomBuilderSupport {
+public class StAXOMBuilder extends AbstractBuilder implements Builder, CustomBuilderSupport {
     private static final Log log = LogFactory.getLog(StAXOMBuilder.class);
     
     /** Field parser */
@@ -129,12 +129,10 @@ public class StAXOMBuilder implements Bu
     private Exception parserException;
     
     private int lookAheadToken = -1;
-    
-    private final BuilderHandler handler;
 
     private StAXOMBuilder(NodeFactory nodeFactory, XMLStreamReader parser, String encoding,
             boolean autoClose, Detachable detachable, Closeable closeable, Model model, PayloadSelector payloadSelector) {
-        handler = new BuilderHandler(nodeFactory, model, this);
+        super(nodeFactory, model);
         this.parser = parser;
         this.autoClose = autoClose;
         this.detachable = detachable;
@@ -861,8 +859,4 @@ public class StAXOMBuilder implements Bu
     public final AxiomContainer getTarget() {
         return handler.target;
     }
-
-    public final void addNodePostProcessor(NodePostProcessor nodePostProcessor) {
-        handler.addNodePostProcessor(nodePostProcessor);
-    }
 }

Modified: 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/common/factory/SAXOMBuilder.java?rev=1728830&r1=1728829&r2=1728830&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/common/factory/SAXOMBuilder.java Sat Feb  6 12:24:35 2016
@@ -23,10 +23,9 @@ import org.apache.axiom.core.NodeFactory
 import org.apache.axiom.om.OMDocument;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMException;
-import org.apache.axiom.om.OMXMLParserWrapper;
 import org.apache.axiom.om.impl.common.Handler;
 import org.apache.axiom.om.impl.common.OMContentHandler;
-import org.apache.axiom.om.impl.common.builder.BuilderHandler;
+import org.apache.axiom.om.impl.common.builder.AbstractPushBuilder;
 import org.apache.axiom.om.impl.common.builder.BuilderUtil;
 import org.apache.axiom.om.impl.common.builder.Model;
 import org.apache.axiom.om.impl.intf.AxiomContainer;
@@ -39,14 +38,13 @@ import java.io.IOException;
 import javax.xml.stream.XMLStreamConstants;
 import javax.xml.transform.sax.SAXSource;
 
-public final class SAXOMBuilder implements OMXMLParserWrapper, Handler {
+public final class SAXOMBuilder extends AbstractPushBuilder implements Handler {
     private final boolean expandEntityReferences;
-    private final BuilderHandler handler;
     private final SAXSource source;
     
     public SAXOMBuilder(NodeFactory nodeFactory, Model model, SAXSource source, boolean expandEntityReferences) {
+        super(nodeFactory, model);
         this.expandEntityReferences = expandEntityReferences;
-        handler = new BuilderHandler(nodeFactory, model, this);
         this.source = source;
     }
     
@@ -92,50 +90,6 @@ public final class SAXOMBuilder implemen
             throw new OMException("Tree not complete");
         }
     }
-    
-    public int next() throws OMException {
-        throw new UnsupportedOperationException();
-    }
-
-    public void discard(OMElement el) throws OMException {
-        throw new UnsupportedOperationException();
-    }
-
-    public void setCache(boolean b) throws OMException {
-        throw new UnsupportedOperationException();
-    }
-
-    public boolean isCache() {
-        throw new UnsupportedOperationException();
-    }
-
-    public Object getParser() {
-        throw new UnsupportedOperationException();
-    }
-
-    public boolean isCompleted() {
-        return handler.document != null && handler.document.isComplete();
-    }
-
-    public OMElement getDocumentElement() {
-        return getDocument().getOMDocumentElement();
-    }
-
-    public OMElement getDocumentElement(boolean discardDocument) {
-        OMElement documentElement = getDocument().getOMDocumentElement();
-        if (discardDocument) {
-            documentElement.detach();
-        }
-        return documentElement;
-    }
-
-    public String getCharacterEncoding() {
-        throw new UnsupportedOperationException();
-    }
-
-    public void close() {
-        // This is a no-op
-    }
 
     public void createOMDocType(String rootName, String publicId,
             String systemId, String internalSubset) {
@@ -183,9 +137,4 @@ public final class SAXOMBuilder implemen
     public void createOMEntityReference(String name, String replacementText) {
         handler.createEntityReference(name, replacementText);
     }
-    
-    public void detach() {
-        // Force processing of the SAX source
-        getDocument();
-    }
 }