You are viewing a plain text version of this content. The canonical link for it is here.
Posted to svn@forrest.apache.org by th...@apache.org on 2008/10/10 12:28:23 UTC

svn commit: r703385 - in /forrest/branches/dispatcher_rewrite/plugins/org.apache.forrest.plugin.internal.dispatcher/src/java/org/apache/forrest/dispatcher/impl: AbstractXmlStructurer.java XMLStructurer.java XMLStructurerAxiom.java

Author: thorsten
Date: Fri Oct 10 03:28:21 2008
New Revision: 703385

URL: http://svn.apache.org/viewvc?rev=703385&view=rev
Log:
Extracting abstract xml/stax structurer class from the common parameters and the init method.

Added:
    forrest/branches/dispatcher_rewrite/plugins/org.apache.forrest.plugin.internal.dispatcher/src/java/org/apache/forrest/dispatcher/impl/AbstractXmlStructurer.java   (with props)
Modified:
    forrest/branches/dispatcher_rewrite/plugins/org.apache.forrest.plugin.internal.dispatcher/src/java/org/apache/forrest/dispatcher/impl/XMLStructurer.java
    forrest/branches/dispatcher_rewrite/plugins/org.apache.forrest.plugin.internal.dispatcher/src/java/org/apache/forrest/dispatcher/impl/XMLStructurerAxiom.java

Added: forrest/branches/dispatcher_rewrite/plugins/org.apache.forrest.plugin.internal.dispatcher/src/java/org/apache/forrest/dispatcher/impl/AbstractXmlStructurer.java
URL: http://svn.apache.org/viewvc/forrest/branches/dispatcher_rewrite/plugins/org.apache.forrest.plugin.internal.dispatcher/src/java/org/apache/forrest/dispatcher/impl/AbstractXmlStructurer.java?rev=703385&view=auto
==============================================================================
--- forrest/branches/dispatcher_rewrite/plugins/org.apache.forrest.plugin.internal.dispatcher/src/java/org/apache/forrest/dispatcher/impl/AbstractXmlStructurer.java (added)
+++ forrest/branches/dispatcher_rewrite/plugins/org.apache.forrest.plugin.internal.dispatcher/src/java/org/apache/forrest/dispatcher/impl/AbstractXmlStructurer.java Fri Oct 10 03:28:21 2008
@@ -0,0 +1,51 @@
+/*
+ * 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.forrest.dispatcher.impl;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.forrest.dispatcher.api.Resolver;
+import org.apache.forrest.dispatcher.api.Structurer;
+import org.apache.forrest.dispatcher.config.DispatcherBean;
+import org.apache.forrest.dispatcher.factories.ContractFactory;
+import org.apache.forrest.dispatcher.impl.helper.Loggable;
+import org.apache.forrest.dispatcher.impl.helper.StAX;
+
+public abstract class AbstractXmlStructurer extends Loggable  implements Structurer {
+
+  protected final Resolver resolver;
+  protected StAX stax;
+  protected final boolean allowXmlProperties;
+  protected final ContractFactory contractRep;
+  protected boolean shrink;
+  protected Map<String, Object> param;
+
+  public AbstractXmlStructurer(DispatcherBean config, Map<String, Object> defaultProperties) {
+    this.contractRep = new ContractFactory(config);
+    this.stax = config.getStaxHelper();
+    this.resolver = config.getResolver();
+    this.allowXmlProperties = config.isAllowXmlProperties();
+    this.shrink = config.isShrink();
+    if (defaultProperties == null){
+      param = new HashMap<String, Object>();
+    }else{
+      param = defaultProperties;
+    }
+  }
+
+}
\ No newline at end of file

Propchange: forrest/branches/dispatcher_rewrite/plugins/org.apache.forrest.plugin.internal.dispatcher/src/java/org/apache/forrest/dispatcher/impl/AbstractXmlStructurer.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: forrest/branches/dispatcher_rewrite/plugins/org.apache.forrest.plugin.internal.dispatcher/src/java/org/apache/forrest/dispatcher/impl/XMLStructurer.java
URL: http://svn.apache.org/viewvc/forrest/branches/dispatcher_rewrite/plugins/org.apache.forrest.plugin.internal.dispatcher/src/java/org/apache/forrest/dispatcher/impl/XMLStructurer.java?rev=703385&r1=703384&r2=703385&view=diff
==============================================================================
--- forrest/branches/dispatcher_rewrite/plugins/org.apache.forrest.plugin.internal.dispatcher/src/java/org/apache/forrest/dispatcher/impl/XMLStructurer.java (original)
+++ forrest/branches/dispatcher_rewrite/plugins/org.apache.forrest.plugin.internal.dispatcher/src/java/org/apache/forrest/dispatcher/impl/XMLStructurer.java Fri Oct 10 03:28:21 2008
@@ -20,36 +20,20 @@
 import javax.xml.stream.util.XMLEventAllocator;
 
 import org.apache.forrest.dispatcher.api.Contract;
-import org.apache.forrest.dispatcher.api.Resolver;
 import org.apache.forrest.dispatcher.api.Structurer;
 import org.apache.forrest.dispatcher.config.DispatcherBean;
 import org.apache.forrest.dispatcher.exception.ContractException;
 import org.apache.forrest.dispatcher.exception.DispatcherException;
-import org.apache.forrest.dispatcher.factories.ContractFactory;
 import org.apache.forrest.dispatcher.impl.helper.Captions;
-import org.apache.forrest.dispatcher.impl.helper.Loggable;
-import org.apache.forrest.dispatcher.impl.helper.StAX;
 import org.apache.forrest.dispatcher.impl.helper.StreamHelper;
 import org.apache.forrest.dispatcher.utils.CommonString;
 
-public class XMLStructurer extends Loggable implements Structurer {
-
-  private final Resolver resolver;
-  
-  private StAX stax;
-
-  private final boolean allowXmlProperties;
-
-  private final ContractFactory contractRep;
+public class XMLStructurer extends AbstractXmlStructurer {
 
   private LinkedHashMap<String, LinkedHashSet<XMLEvent>> resultTree = new LinkedHashMap<String, LinkedHashSet<XMLEvent>>();
 
   private String currentPath = "";
   
-  private Map<String, Object> param;
-
-  private boolean shrink;
-
   /**
    * The Streaming API for XML (StAX) is a Java based API for pull-parsing XML.
    *<p>
@@ -62,17 +46,7 @@
    * @param defaultProperties
    */
   public XMLStructurer(DispatcherBean config, Map<String, Object> defaultProperties) {
-    this.contractRep = new ContractFactory(config);
-    this.stax = config.getStaxHelper();
-    this.resolver = config.getResolver();
-    this.allowXmlProperties = config.isAllowXmlProperties();
-    this.shrink = config.isShrink();
-    if (defaultProperties == null){
-      param = new HashMap<String, Object>();
-    }else{
-      param = defaultProperties;
-    }
-    
+    super(config, defaultProperties);
   }
 
   /*

Modified: forrest/branches/dispatcher_rewrite/plugins/org.apache.forrest.plugin.internal.dispatcher/src/java/org/apache/forrest/dispatcher/impl/XMLStructurerAxiom.java
URL: http://svn.apache.org/viewvc/forrest/branches/dispatcher_rewrite/plugins/org.apache.forrest.plugin.internal.dispatcher/src/java/org/apache/forrest/dispatcher/impl/XMLStructurerAxiom.java?rev=703385&r1=703384&r2=703385&view=diff
==============================================================================
--- forrest/branches/dispatcher_rewrite/plugins/org.apache.forrest.plugin.internal.dispatcher/src/java/org/apache/forrest/dispatcher/impl/XMLStructurerAxiom.java (original)
+++ forrest/branches/dispatcher_rewrite/plugins/org.apache.forrest.plugin.internal.dispatcher/src/java/org/apache/forrest/dispatcher/impl/XMLStructurerAxiom.java Fri Oct 10 03:28:21 2008
@@ -22,36 +22,22 @@
 import org.apache.axiom.om.OMNode;
 import org.apache.axiom.om.impl.builder.StAXOMBuilder;
 import org.apache.forrest.dispatcher.api.Contract;
-import org.apache.forrest.dispatcher.api.Resolver;
-import org.apache.forrest.dispatcher.api.Structurer;
 import org.apache.forrest.dispatcher.config.DispatcherBean;
 import org.apache.forrest.dispatcher.exception.ContractException;
 import org.apache.forrest.dispatcher.exception.DispatcherException;
-import org.apache.forrest.dispatcher.factories.ContractFactory;
 import org.apache.forrest.dispatcher.impl.helper.AXIOMXPathCreate;
 import org.apache.forrest.dispatcher.impl.helper.Captions;
-import org.apache.forrest.dispatcher.impl.helper.StAX;
 import org.apache.forrest.dispatcher.impl.helper.StreamHelper;
 import org.jaxen.JaxenException;
 
-public class XMLStructurerAxiom extends StAX implements Structurer {
+public class XMLStructurerAxiom extends AbstractXmlStructurer {
 
   private static final String PATH_PREFIX = "/result";
 
-  private final Resolver resolver;
-
-  private final boolean allowXmlProperties;
-
-  private final ContractFactory contractRep;
-
   private OMFactory factory;
 
   private OMElement root;
 
-  private Map<String, Object> param;
-
-  private boolean shrink;
-
   /**
    * AXIOM stands for AXis Object Model 
    * (also known as OM - Object Model) and refers to the XML
@@ -70,16 +56,8 @@
    * pass later to the contract transformation.
    */
   public XMLStructurerAxiom(DispatcherBean config, Map<String, Object> defaultProperties) {
-    this.contractRep = new ContractFactory(config);
-    this.resolver = config.getResolver();
-    this.allowXmlProperties = config.isAllowXmlProperties();
-    this.shrink = config.isShrink();
+    super(config, defaultProperties);
     this.factory = OMAbstractFactory.getOMFactory();
-    if (defaultProperties == null){
-      param = new HashMap<String, Object>();
-    }else{
-      param = defaultProperties;
-    }
   }
 
   /*
@@ -104,7 +82,7 @@
       /*
        * Preparing the processing.
        */
-      XMLStreamReader reader = getReader(structurerStream);
+      XMLStreamReader reader = stax.getReader(structurerStream);
       StAXOMBuilder builder = new StAXOMBuilder(reader);
       OMElement strucuturer = builder.getDocumentElement();
       Iterator<OMNode> structures = strucuturer.getChildrenWithName(qIt(
@@ -311,7 +289,7 @@
   @SuppressWarnings("unchecked")
   private void processContractResult(InputStream resultStream,
       OMElement pathNode) throws XMLStreamException, JaxenException {
-    XMLStreamReader contractResultReader = getReader(resultStream);
+    XMLStreamReader contractResultReader = stax.getReader(resultStream);
     StAXOMBuilder builder = new StAXOMBuilder(contractResultReader);
     OMElement content = builder.getDocumentElement();
     /*
@@ -381,7 +359,7 @@
     String propertyName = null, propertyValue = null;
     propertyName = properties.getAttributeValue(qIt(Captions.NAME_ATT));
     propertyValue = properties.getAttributeValue(qIt(Captions.VALUE_ATT));
-    addProperties(properties.getXMLStreamReader(), param, propertyName, propertyValue, allowXmlProperties, shrink);
+    stax.addProperties(properties.getXMLStreamReader(), param, propertyName, propertyValue, allowXmlProperties, shrink);
   }