Author: vgritsenko
Date: Thu Apr 28 07:23:06 2005
New Revision: 165143

URL: http://svn.apache.org/viewcvs?rev=165143&view=rev
Log:
move getLocation method to EffectPipe.
remove locators stack.

Modified:
    
cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/transformation/EffectPipe.java
    
cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/transformation/EffectWidgetReplacingPipe.java

Modified: 
cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/transformation/EffectPipe.java
URL: 
http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/transformation/EffectPipe.java?rev=165143&r1=165142&r2=165143&view=diff
==============================================================================
--- 
cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/transformation/EffectPipe.java
 (original)
+++ 
cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/transformation/EffectPipe.java
 Thu Apr 28 07:23:06 2005
@@ -1,12 +1,12 @@
 /*
  * Copyright 1999-2004 The Apache Software Foundation.
- * 
+ *
  * Licensed 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.
@@ -15,12 +15,10 @@
  */
 package org.apache.cocoon.forms.transformation;
 
-import java.util.LinkedList;
-
-import org.apache.avalon.framework.CascadingRuntimeException;
 import org.apache.cocoon.xml.AbstractXMLPipe;
 import org.apache.cocoon.xml.SaxBuffer;
 import org.apache.cocoon.xml.XMLConsumer;
+
 import org.xml.sax.Attributes;
 import org.xml.sax.ContentHandler;
 import org.xml.sax.Locator;
@@ -29,6 +27,8 @@
 import org.xml.sax.helpers.AttributesImpl;
 import org.xml.sax.helpers.LocatorImpl;
 
+import java.util.LinkedList;
+
 // TODO: Reduce the Element creation and deletion churn by providing 
startElement
 // and endElement methods which do not create or use Elements on the stack.
 /*
@@ -77,8 +77,8 @@
         public Element(String uri, String loc, String raw, Attributes attrs) {
             this(null, uri, loc, raw, attrs);
         }
-        
-        public Element(String prefix, String uri, String loc, String raw, 
Attributes attrs) { 
+
+        public Element(String prefix, String uri, String loc, String raw, 
Attributes attrs) {
             this.prefix=prefix;
             this.uri = uri;
             this.loc = loc;
@@ -89,15 +89,15 @@
                 } else {
                     this.attrs = new AttributesImpl(); // be ready to possibly 
add
                 }
-            } else {                
+            } else {
                 this.attrs = new AttributesImpl(attrs);
             }
         }
 
         /**
-         * Adds/overwrites the attributes from the collection in the argument 
+         * Adds/overwrites the attributes from the collection in the argument
          * to the ones inside this class.
-         * 
+         *
          * @param newAttrs collection of attributes to add/overwrite
          */
         public void addAttributes(Attributes newAttrs) {
@@ -109,15 +109,15 @@
                 String raw = newAttrs.getQName(i);
                 String type = newAttrs.getType(i);
                 String value = newAttrs.getValue(i);
-                
+
                 addAttribute(uri, loc, raw, type, value);
             }
         }
 
         /**
-         * Adds/overwrites one single attribute to the ones already contained 
+         * Adds/overwrites one single attribute to the ones already contained
          * inside this object.
-         * 
+         *
          * @param uri the uri of the attribute to add.
          * @param loc the localname of the attribute to add
          * @param raw the rawname of the attribute to add
@@ -127,9 +127,9 @@
         public void addAttribute(String uri, String loc, String raw, String 
type, String value) {
             int foundAttr = this.attrs.getIndex(uri, loc);
             if (foundAttr == -1) {
-                this.attrs.addAttribute(uri, loc, raw, type, value);           
     
+                this.attrs.addAttribute(uri, loc, raw, type, value);
             } else {
-                this.attrs.setAttribute(foundAttr, uri, loc, raw, type, 
value);                                
+                this.attrs.setAttribute(foundAttr, uri, loc, raw, type, value);
             }
         }
 
@@ -140,12 +140,12 @@
         public void addAttribute(String loc, String value) {
             this.addAttribute("", loc, loc, "CDATA", value);
         }
-        
+
         public void removeAttribute(String raw) {
             int foundAttr = this.attrs.getIndex(raw);
             if (foundAttr == -1) {
-                this.attrs.removeAttribute(foundAttr);                
-            }             
+                this.attrs.removeAttribute(foundAttr);
+            }
         }
     }
 
@@ -174,28 +174,23 @@
     protected class Output extends AbstractXMLPipe {
 
         protected class Buffer extends SaxBuffer {
-            LocatorImpl myLocator = new LocatorImpl();
+            LocatorImpl locator;
 
             public void setDocumentLocator(Locator locator) {
                 super.setDocumentLocator(locator);
                 if (locator != null) {
-                    try {
-                        myLocator.setPublicId(locator.getPublicId());
-                        myLocator.setSystemId(locator.getSystemId());
-                        myLocator.setLineNumber(locator.getLineNumber());
-                        myLocator.setColumnNumber(locator.getColumnNumber());
-                    } catch (Exception e) {
-                         throw new CascadingRuntimeException("Error while 
handling locator", e);
-                    }
+                    this.locator = new LocatorImpl(locator);
                 }
             }
+
             public void toSAX(ContentHandler contentHandler) throws 
SAXException {
-                if (locators == null)
-                    locators = new LinkedList();
-                locators.addFirst(EffectPipe.this.locator);
-                EffectPipe.this.locator = myLocator;
-                super.toSAX(contentHandler);
-                EffectPipe.this.locator = (Locator)locators.removeFirst();
+                final Locator saved = EffectPipe.this.locator;
+                EffectPipe.this.locator = this.locator;
+                try {
+                    super.toSAX(contentHandler);
+                } finally {
+                    EffectPipe.this.locator = saved;
+                }
             }
         }
 
@@ -309,8 +304,8 @@
                 }
                 buffers.addFirst(saxBuffer);
             }
-            saxBuffer = (SaxBuffer)new Buffer();
-            ((Buffer)saxBuffer).setDocumentLocator(locator);
+            saxBuffer = new Buffer();
+            saxBuffer.setDocumentLocator(locator);
         }
 
         protected void bufferFini() {
@@ -350,39 +345,52 @@
     }
 
 
-    protected int event = 0;
+    protected int event;
 
     protected Handler nullHandler = new NullHandler();
     protected Handler bufferHandler = new BufferHandler();
 
-    protected LinkedList handlers = null;
-    protected Handler handler = null;
+    protected LinkedList handlers;
+    protected Handler handler;
 
-    protected LinkedList elements = null;
-    protected Element input = null;
+    protected LinkedList elements;
+    protected Element input;
 
-    protected LinkedList locators = null;
-    protected Locator locator = null;
-    protected String name     = null;
-    protected String publicId = null;
-    protected String systemId = null;
-    protected String target   = null;
-    protected String data     = null;
-    protected String prefix   = null;
-    protected String uri      = null;
-    protected char   c[]      = null;
-    protected int start = 0;
-    protected int len = 0;
+    protected Locator locator;
+    protected String name;
+    protected String publicId;
+    protected String systemId;
+    protected String target;
+    protected String data;
+    protected String prefix;
+    protected String uri;
+    protected char   c[];
+    protected int start;
+    protected int len;
+
+    public Output out;
 
-    public Output out = null;
 
     public void init() {
         handlers = new LinkedList();
         elements = new LinkedList();
-        locators = new LinkedList();
         out = new Output();
     }
 
+    /**
+     * @return current location (if known)
+     */
+    protected String getLocation() {
+        if (locator != null) {
+            return "unknown";
+        }
+
+        final String location = " (" + locator.getSystemId() + ":" +
+                                       locator.getLineNumber() + ":" +
+                                       locator.getColumnNumber() + ")";
+        return location;
+    }
+
     //====================================
     // Methods overriding AbstractXMLPipe
     //====================================
@@ -406,7 +414,6 @@
         super.recycle();
         handlers = null;
         elements = null;
-        locators = null;
         locator = null;
         out = null;
     }

Modified: 
cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/transformation/EffectWidgetReplacingPipe.java
URL: 
http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/transformation/EffectWidgetReplacingPipe.java?rev=165143&r1=165142&r2=165143&view=diff
==============================================================================
--- 
cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/transformation/EffectWidgetReplacingPipe.java
 (original)
+++ 
cocoon/branches/BRANCH_2_1_X/src/blocks/forms/java/org/apache/cocoon/forms/transformation/EffectWidgetReplacingPipe.java
 Thu Apr 28 07:23:06 2005
@@ -1,12 +1,12 @@
 /*
  * Copyright 1999-2004 The Apache Software Foundation.
- * 
+ *
  * Licensed 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.
@@ -16,9 +16,9 @@
 package org.apache.cocoon.forms.transformation;
 
 import org.apache.avalon.excalibur.pool.Recyclable;
+
 import org.apache.cocoon.forms.Constants;
 import org.apache.cocoon.forms.formmodel.AggregateField;
-import org.apache.cocoon.forms.formmodel.ContainerWidget;
 import org.apache.cocoon.forms.formmodel.Group;
 import org.apache.cocoon.forms.formmodel.Repeater;
 import org.apache.cocoon.forms.formmodel.Struct;
@@ -30,8 +30,8 @@
 import org.apache.cocoon.xml.AbstractXMLPipe;
 import org.apache.cocoon.xml.SaxBuffer;
 import org.apache.cocoon.xml.XMLUtils;
-import org.apache.commons.jxpath.JXPathException;
 
+import org.apache.commons.jxpath.JXPathException;
 import org.xml.sax.Attributes;
 import org.xml.sax.ContentHandler;
 import org.xml.sax.SAXException;
@@ -165,17 +165,6 @@
         classes = new HashMap();
     }
 
-    protected String getLocation() {
-        String location = null;
-        if (locator != null) {
-            location = " (" + locator.getSystemId() + ":"
-            + locator.getLineNumber() + ":" + locator.getColumnNumber() + ")";
-        } else {
-            location = "unknown";
-        }
-        return location;
-    }
-
     protected String getWidgetId(Attributes attributes) throws SAXException {
         String widgetId = attributes.getValue("id");
         if (widgetId == null || widgetId.equals("")) {
@@ -185,7 +174,7 @@
     }
 
     protected Widget getWidget(String widgetPath) throws SAXException {
-        Widget widget = 
((ContainerWidget)contextWidget).lookupWidget(widgetPath);
+        Widget widget = contextWidget.lookupWidget(widgetPath);
         if (widget == null) {
             if (contextWidget.getRequestParameterName().equals("")) {
                 throwSAXException("No widget exists at the path \"" + 
widgetPath + "\", relative to the form container.");
@@ -204,7 +193,7 @@
             throwWrongWidgetType("RepeaterWidgetLabelHandler", input.loc, 
"repeater");
         }
     }
-    
+
     protected boolean isVisible(Widget widget) {
         return widget.getCombinedState().isDisplayingValues();
     }
@@ -336,10 +325,10 @@
                         pipeContext.setLocale(Locale.getDefault());
                     }
                 }
-                
+
                 out.startPrefixMapping(Constants.INSTANCE_PREFIX, 
Constants.INSTANCE_NS);
 
-                // we need to merge input.attrs with possible overruling 
attributes 
+                // we need to merge input.attrs with possible overruling 
attributes
                 // from the pipeContext
                 input.addAttributes(pipeContext.getFormAttributes());
 
@@ -599,7 +588,7 @@
                     //Don't output fi:struct
                     // out.element(Constants.INSTANCE_PREFIX, 
Constants.INSTANCE_NS, "union");
                     // out.attributes();
-                    // out.startElement();      
+                    // out.startElement();
                    return this;
                 } else {
                     return nullHandler;
@@ -631,8 +620,8 @@
                     contextWidgets.addFirst(contextWidget);
                     contextWidget = widget;
                     // Don't output fi:union
-                    //out.element(Constants.INSTANCE_PREFIX, 
Constants.INSTANCE_NS, "union");      
-                    //out.startElement();      
+                    //out.element(Constants.INSTANCE_PREFIX, 
Constants.INSTANCE_NS, "union");
+                    //out.startElement();
                     return this;
                 } else {
                     return nullHandler;
@@ -844,7 +833,6 @@
         }
     }
 
-
     private Attributes translateAttributes(Attributes attributes, String[] 
names) {
         AttributesImpl newAtts = new AttributesImpl(attributes);
         if (names!= null) {
@@ -857,56 +845,6 @@
         }
         return newAtts;
     }
-
-//    /**
-//     * Replaces JXPath expressions embedded inside #{ and } by their value.
-//     */
-//    private String translateText(String original) {
-//        StringBuffer expression;
-//        StringBuffer translated = new StringBuffer();
-//        StringReader in = new StringReader(original);
-//        int chr;
-//        try {
-//            while ((chr = in.read()) != -1) {
-//                char c = (char) chr;
-//                if (c == '#') {
-//                    chr = in.read();
-//                    if (chr != -1) {
-//                        c = (char) chr;
-//                        if (c == '{') {
-//                            expression = new StringBuffer();
-//                            boolean more = true;
-//                            while ( more ) {
-//                                more = false;
-//                                if ((chr = in.read()) != -1) {
-//                                    c = (char)chr;
-//                                    if (c != '}') {
-//                                        expression.append(c);
-//                                        more = true;
-//                                    } else {
-//                                        
translated.append(evaluateExpression(expression.toString()));
-//                                    }
-//                                } else {
-//                                    
translated.append('#').append('{').append(expression);
-//                                }
-//                            }
-//                        }
-//                    } else {
-//                        translated.append((char) chr);
-//                    }
-//                } else {
-//                    translated.append(c);
-//                }
-//            }
-//        } catch (IOException ignored) {
-//            ignored.printStackTrace();
-//        }
-//        return translated.toString();
-//    }
-
-//    private String evaluateExpression(String expression) {
-//        return pipeContext.evaluateExpression(expression).toString();
-//    }
 
     public void recycle() {
         super.recycle();


Reply via email to