You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by vg...@apache.org on 2007/12/20 16:03:45 UTC

svn commit: r605955 - in /cocoon/trunk/core: cocoon-expression-language/cocoon-expression-language-api/src/main/java/org/apache/cocoon/el/parsing/ cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/el/impl/parsin...

Author: vgritsenko
Date: Thu Dec 20 07:03:43 2007
New Revision: 605955

URL: http://svn.apache.org/viewvc?rev=605955&view=rev
Log:
cleanup StringTemplateParser interface a bit

Modified:
    cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-api/src/main/java/org/apache/cocoon/el/parsing/StringTemplateParser.java
    cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/el/impl/parsing/LegacyStringTemplateParser.java
    cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/template/expression/AbstractStringTemplateParser.java
    cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/template/expression/DefaultStringTemplateParser.java
    cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/components/treeprocessor/variables/LegacySitemapStringTemplateParser.java

Modified: cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-api/src/main/java/org/apache/cocoon/el/parsing/StringTemplateParser.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-api/src/main/java/org/apache/cocoon/el/parsing/StringTemplateParser.java?rev=605955&r1=605954&r2=605955&view=diff
==============================================================================
--- cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-api/src/main/java/org/apache/cocoon/el/parsing/StringTemplateParser.java (original)
+++ cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-api/src/main/java/org/apache/cocoon/el/parsing/StringTemplateParser.java Thu Dec 20 07:03:43 2007
@@ -31,23 +31,24 @@
     String ROLE = StringTemplateParser.class.getName();
 
     /**
-     * Compile a boolean expression (returns either a Compiled Expression or a
-     * Boolean literal)
+     * Compile a boolean expression. Returns either a Compiled Expression or a
+     * Boolean literal.
      */
-    Subst compileBoolean(String val, String msg, Locator location) throws SAXException;
+    Subst compileBoolean(String expr, String msg, Locator location) throws SAXException;
 
     /**
-     * Compile an integer expression (returns either a Compiled Expression or an
-     * Integer literal)
+     * Compile an integer expression. Returns either a Compiled Expression or an
+     * Integer literal.
      */
-    Subst compileInt(String val, String msg, Locator location) throws SAXException;
+    Subst compileInt(String expr, String msg, Locator location) throws SAXException;
 
-    Subst compileExpr(String inStr, String errorPrefix, Locator location) throws SAXParseException;
+    /**
+     * Compile an expression.
+     */
+    Subst compileExpr(String expr, String msg, Locator location) throws SAXParseException;
 
     /**
      * Parse a set of expressions spaced with literals
      */
-    List parseSubstitutions(Reader in, String errorPrefix, Locator location) throws SAXParseException;
-
-    List parseSubstitutions(Reader in) throws Exception;
+    List parseSubstitutions(Reader in, String msg, Locator location) throws SAXParseException;
 }

Modified: cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/el/impl/parsing/LegacyStringTemplateParser.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/el/impl/parsing/LegacyStringTemplateParser.java?rev=605955&r1=605954&r2=605955&view=diff
==============================================================================
--- cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/el/impl/parsing/LegacyStringTemplateParser.java (original)
+++ cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/el/impl/parsing/LegacyStringTemplateParser.java Thu Dec 20 07:03:43 2007
@@ -33,12 +33,12 @@
     public final static String JAVASCRIPT = "js";
 
     /**
-     * @see org.apache.cocoon.el.parsing.StringTemplateParser#parseSubstitutions(java.io.Reader)
+     * @see AbstractStringTemplateParser#parseSubstitutions(java.io.Reader)
      */
-    public List parseSubstitutions(Reader in) throws Exception {
+    protected List parseSubstitutions(Reader in) throws Exception {
         LinkedList substitutions = new LinkedList();
         StringBuffer buf = new StringBuffer();
-        buf.setLength(0);
+
         int ch;
         boolean inExpr = false;
         String lang = null;
@@ -61,7 +61,6 @@
                 } else if (c == '$' || c == '#' || c == '@') {
                     ch = in.read();
                     if (ch == '{') {
-
                         lang = (c == '#') ? JXPATH : ((c == '$') ? JEXL : JAVASCRIPT);
                         inExpr = true;
                         if (buf.length() > 0) {
@@ -81,12 +80,15 @@
                 break;
             }
         }
-        if (inExpr)
+
+        if (inExpr) {
             throw new Exception("Unterminated {");
+        }
 
-        if (buf.length() > 0)
+        if (buf.length() > 0) {
             substitutions.add(new Literal(buf.toString()));
+        }
+
         return substitutions;
     }
-
 }

Modified: cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/template/expression/AbstractStringTemplateParser.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/template/expression/AbstractStringTemplateParser.java?rev=605955&r1=605954&r2=605955&view=diff
==============================================================================
--- cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/template/expression/AbstractStringTemplateParser.java (original)
+++ cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/template/expression/AbstractStringTemplateParser.java Thu Dec 20 07:03:43 2007
@@ -27,10 +27,23 @@
 import org.xml.sax.SAXException;
 import org.xml.sax.SAXParseException;
 
+/**
+ * @version $Id$
+ */
 public abstract class AbstractStringTemplateParser implements StringTemplateParser {
 
     private ExpressionFactory expressionFactory;
 
+
+    public ExpressionFactory getExpressionFactory() {
+        return expressionFactory;
+    }
+
+    public void setExpressionFactory(ExpressionFactory expressionFactory) {
+        this.expressionFactory = expressionFactory;
+    }
+
+
     protected Subst compile(final String expression) throws Exception {
         return new JXTExpression(expression, this.expressionFactory.getExpression(expression));
     }
@@ -40,61 +53,56 @@
     }
 
     /**
-     * @see org.apache.cocoon.el.parsing.StringTemplateParser#compileBoolean(java.lang.String, java.lang.String, org.xml.sax.Locator)
+     * @see org.apache.cocoon.el.parsing.StringTemplateParser#compileBoolean(String, String, Locator)
      */
     public Subst compileBoolean(String val, String msg, Locator location) throws SAXException {
         Subst res = compileExpr(val, msg, location);
         if (res instanceof Literal) {
             res = new Literal(Boolean.valueOf(res.getRaw()));
         }
+
         return res;
     }
 
     /**
-     * @see org.apache.cocoon.el.parsing.StringTemplateParser#compileInt(java.lang.String, java.lang.String, org.xml.sax.Locator)
+     * @see org.apache.cocoon.el.parsing.StringTemplateParser#compileInt(String, String, Locator)
      */
     public Subst compileInt(String val, String msg, Locator location) throws SAXException {
         Subst res = compileExpr(val, msg, location);
         if (res instanceof Literal) {
             res = new Literal(Integer.valueOf(res.getRaw()));
         }
+
         return res;
     }
 
     /**
-     * @see org.apache.cocoon.el.parsing.StringTemplateParser#compileExpr(java.lang.String, java.lang.String, org.xml.sax.Locator)
+     * @see org.apache.cocoon.el.parsing.StringTemplateParser#compileExpr(String, String, Locator)
      */
     public Subst compileExpr(String inStr, String errorPrefix, Locator location) throws SAXParseException {
         if (inStr == null) {
             return null;
         }
+
         StringReader in = new StringReader(inStr.trim());
         List substitutions = parseSubstitutions(in, errorPrefix, location);
-        if (substitutions.size() == 0 || !(substitutions.get(0) instanceof JXTExpression))
+        if (substitutions.size() == 0 || !(substitutions.get(0) instanceof JXTExpression)) {
             return new Literal(inStr);
+        }
 
         return (JXTExpression) substitutions.get(0);
     }
 
     /**
-     * @see org.apache.cocoon.el.parsing.StringTemplateParser#parseSubstitutions(java.io.Reader, java.lang.String, org.xml.sax.Locator)
+     * @see org.apache.cocoon.el.parsing.StringTemplateParser#parseSubstitutions(Reader, String, Locator)
      */
     public List parseSubstitutions(Reader in, String errorPrefix, Locator location) throws SAXParseException {
         try {
             return parseSubstitutions(in);
-        } catch (Exception exc) {
-            throw new SAXParseException(errorPrefix + exc.getMessage(), location, exc);
-        //FIXME: Don't catch java.lang.Error
-        //} catch (Error err) {
-        //    throw new SAXParseException(errorPrefix + err.getMessage(), location, new ErrorHolder(err));
+        } catch (Exception e) {
+            throw new SAXParseException(errorPrefix + e.getMessage(), location, e);
         }
     }
 
-    public ExpressionFactory getExpressionFactory() {
-        return expressionFactory;
-    }
-
-    public void setExpressionFactory(ExpressionFactory expressionFactory) {
-        this.expressionFactory = expressionFactory;
-    }
+    protected abstract List parseSubstitutions(Reader in) throws Exception;
 }

Modified: cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/template/expression/DefaultStringTemplateParser.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/template/expression/DefaultStringTemplateParser.java?rev=605955&r1=605954&r2=605955&view=diff
==============================================================================
--- cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/template/expression/DefaultStringTemplateParser.java (original)
+++ cocoon/trunk/core/cocoon-expression-language/cocoon-expression-language-impl/src/main/java/org/apache/cocoon/template/expression/DefaultStringTemplateParser.java Thu Dec 20 07:03:43 2007
@@ -26,12 +26,12 @@
 public class DefaultStringTemplateParser extends AbstractStringTemplateParser {
 
     /**
-     * @see org.apache.cocoon.el.parsing.StringTemplateParser#parseSubstitutions(java.io.Reader)
+     * @see AbstractStringTemplateParser#parseSubstitutions(Reader)
      */
-    public List parseSubstitutions(Reader in) throws Exception {
+    protected List parseSubstitutions(Reader in) throws Exception {
         LinkedList substitutions = new LinkedList();
         StringBuffer buf = new StringBuffer();
-        buf.setLength(0);
+
         int ch;
         boolean inExpr = false;
         top: while ((ch = in.read()) != -1) {
@@ -72,12 +72,15 @@
                 break;
             }
         }
-        if (inExpr)
+
+        if (inExpr) {
             throw new Exception("Unterminated {");
+        }
 
-        if (buf.length() > 0)
+        if (buf.length() > 0) {
             substitutions.add(new Literal(buf.toString()));
+        }
+
         return substitutions;
     }
-
 }

Modified: cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/components/treeprocessor/variables/LegacySitemapStringTemplateParser.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/components/treeprocessor/variables/LegacySitemapStringTemplateParser.java?rev=605955&r1=605954&r2=605955&view=diff
==============================================================================
--- cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/components/treeprocessor/variables/LegacySitemapStringTemplateParser.java (original)
+++ cocoon/trunk/core/cocoon-sitemap/cocoon-sitemap-impl/src/main/java/org/apache/cocoon/components/treeprocessor/variables/LegacySitemapStringTemplateParser.java Thu Dec 20 07:03:43 2007
@@ -46,7 +46,7 @@
         this.serviceManager = serviceManager;
     }
 
-    public List parseSubstitutions(Reader in) throws Exception {
+    protected List parseSubstitutions(Reader in) throws Exception {
         LinkedList substitutions = new LinkedList();
         StringWriter writer = new StringWriter();
         IOUtils.copy(in, writer);