You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by br...@apache.org on 2006/03/11 11:30:16 UTC

svn commit: r385048 - in /cocoon/trunk/cocoon-template/cocoon-template-impl/src/main/java/org/apache/cocoon/template: environment/ expression/ instruction/

Author: bruno
Date: Sat Mar 11 02:30:16 2006
New Revision: 385048

URL: http://svn.apache.org/viewcvs?rev=385048&view=rev
Log:
Sharing template block with 2.1: step 1: make StringTemplateParser an interface

Modified:
    cocoon/trunk/cocoon-template/cocoon-template-impl/src/main/java/org/apache/cocoon/template/environment/ParsingContext.java
    cocoon/trunk/cocoon-template/cocoon-template-impl/src/main/java/org/apache/cocoon/template/expression/DefaultStringTemplateParser.java
    cocoon/trunk/cocoon-template/cocoon-template-impl/src/main/java/org/apache/cocoon/template/expression/JXTGStringTemplateParser.java
    cocoon/trunk/cocoon-template/cocoon-template-impl/src/main/java/org/apache/cocoon/template/expression/StringTemplateParser.java
    cocoon/trunk/cocoon-template/cocoon-template-impl/src/main/java/org/apache/cocoon/template/instruction/ForEach.java
    cocoon/trunk/cocoon-template/cocoon-template-impl/src/main/java/org/apache/cocoon/template/instruction/FormatDate.java
    cocoon/trunk/cocoon-template/cocoon-template-impl/src/main/java/org/apache/cocoon/template/instruction/FormatNumber.java

Modified: cocoon/trunk/cocoon-template/cocoon-template-impl/src/main/java/org/apache/cocoon/template/environment/ParsingContext.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-template/cocoon-template-impl/src/main/java/org/apache/cocoon/template/environment/ParsingContext.java?rev=385048&r1=385047&r2=385048&view=diff
==============================================================================
--- cocoon/trunk/cocoon-template/cocoon-template-impl/src/main/java/org/apache/cocoon/template/environment/ParsingContext.java (original)
+++ cocoon/trunk/cocoon-template/cocoon-template-impl/src/main/java/org/apache/cocoon/template/environment/ParsingContext.java Sat Mar 11 02:30:16 2006
@@ -15,8 +15,8 @@
  */
 package org.apache.cocoon.template.environment;
 
-import org.apache.cocoon.template.expression.StringTemplateParser;
 import org.apache.cocoon.template.script.InstructionFactory;
+import org.apache.cocoon.template.expression.StringTemplateParser;
 
 /**
  * @version SVN $Id$

Modified: cocoon/trunk/cocoon-template/cocoon-template-impl/src/main/java/org/apache/cocoon/template/expression/DefaultStringTemplateParser.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-template/cocoon-template-impl/src/main/java/org/apache/cocoon/template/expression/DefaultStringTemplateParser.java?rev=385048&r1=385047&r2=385048&view=diff
==============================================================================
--- cocoon/trunk/cocoon-template/cocoon-template-impl/src/main/java/org/apache/cocoon/template/expression/DefaultStringTemplateParser.java (original)
+++ cocoon/trunk/cocoon-template/cocoon-template-impl/src/main/java/org/apache/cocoon/template/expression/DefaultStringTemplateParser.java Sat Mar 11 02:30:16 2006
@@ -23,7 +23,7 @@
  * @version SVN $Id: DefaultStringTemplateParser.java 325973 2005-10-17
  *          19:59:39Z lgawron $
  */
-public class DefaultStringTemplateParser extends StringTemplateParser {
+public class DefaultStringTemplateParser extends AbstractStringTemplateParser {
     public List parseSubstitutions(Reader in) throws Exception {
         LinkedList substitutions = new LinkedList();
         StringBuffer buf = new StringBuffer();

Modified: cocoon/trunk/cocoon-template/cocoon-template-impl/src/main/java/org/apache/cocoon/template/expression/JXTGStringTemplateParser.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-template/cocoon-template-impl/src/main/java/org/apache/cocoon/template/expression/JXTGStringTemplateParser.java?rev=385048&r1=385047&r2=385048&view=diff
==============================================================================
--- cocoon/trunk/cocoon-template/cocoon-template-impl/src/main/java/org/apache/cocoon/template/expression/JXTGStringTemplateParser.java (original)
+++ cocoon/trunk/cocoon-template/cocoon-template-impl/src/main/java/org/apache/cocoon/template/expression/JXTGStringTemplateParser.java Sat Mar 11 02:30:16 2006
@@ -23,7 +23,7 @@
  * @version SVN $Id: JXTGStringTemplateParser.java 325986 2005-10-17 21:35:18Z
  *          lgawron $
  */
-public class JXTGStringTemplateParser extends StringTemplateParser {
+public class JXTGStringTemplateParser extends AbstractStringTemplateParser {
     public final static String JXPATH = "jxpath";
     public final static String JEXL = "jexl";
     public final static String JAVASCRIPT = "js";

Modified: cocoon/trunk/cocoon-template/cocoon-template-impl/src/main/java/org/apache/cocoon/template/expression/StringTemplateParser.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-template/cocoon-template-impl/src/main/java/org/apache/cocoon/template/expression/StringTemplateParser.java?rev=385048&r1=385047&r2=385048&view=diff
==============================================================================
--- cocoon/trunk/cocoon-template/cocoon-template-impl/src/main/java/org/apache/cocoon/template/expression/StringTemplateParser.java (original)
+++ cocoon/trunk/cocoon-template/cocoon-template-impl/src/main/java/org/apache/cocoon/template/expression/StringTemplateParser.java Sat Mar 11 02:30:16 2006
@@ -20,93 +20,34 @@
  */
 package org.apache.cocoon.template.expression;
 
-import java.io.Reader;
-import java.io.StringReader;
-import java.util.List;
-
-import org.apache.avalon.framework.activity.Disposable;
-import org.apache.avalon.framework.logger.AbstractLogEnabled;
-import org.apache.avalon.framework.service.ServiceException;
-import org.apache.avalon.framework.service.ServiceManager;
-import org.apache.avalon.framework.service.Serviceable;
-import org.apache.avalon.framework.thread.ThreadSafe;
-import org.apache.cocoon.components.expression.ExpressionFactory;
-import org.apache.cocoon.template.environment.ErrorHolder;
 import org.xml.sax.Locator;
 import org.xml.sax.SAXException;
 import org.xml.sax.SAXParseException;
 
-public abstract class StringTemplateParser extends AbstractLogEnabled implements Serviceable, Disposable, ThreadSafe {
-    public static String ROLE = StringTemplateParser.class.getName();
-
-    private ServiceManager manager;
-    private ExpressionFactory expressionFactory;
+import java.util.List;
+import java.io.Reader;
 
-    public void service(ServiceManager manager) throws ServiceException {
-        this.manager = manager;
-        this.expressionFactory = (ExpressionFactory) this.manager.lookup(ExpressionFactory.ROLE);
-    }
-
-    public void dispose() {
-        this.manager.release(this.expressionFactory);
-    }
-
-    protected JXTExpression compile(final String expression) throws Exception {
-        return new JXTExpression(expression, this.expressionFactory.getExpression(expression));
-    }
-
-    protected JXTExpression compile(final String expression, String language) throws Exception {
-        return new JXTExpression(expression, this.expressionFactory.getExpression(language, expression));
-    }
+public interface StringTemplateParser {
+    public static String ROLE = StringTemplateParser.class.getName();
 
     /*
-     * Compile a boolean expression (returns either a Compiled Expression or a
-     * Boolean literal)
-     */
-    public JXTExpression compileBoolean(String val, String msg, Locator location) throws SAXException {
-        JXTExpression res = compileExpr(val, msg, location);
-        if (res != null && res.getCompiledExpression() == null && res.getRaw() != null) {
-            res.setCompiledExpression(Boolean.valueOf(res.getRaw()));
-        }
-        return res;
-    }
+    * Compile a boolean expression (returns either a Compiled Expression or a
+    * Boolean literal)
+    */
+    JXTExpression compileBoolean(String val, String msg, Locator location) throws SAXException;
 
     /*
-     * Compile an integer expression (returns either a Compiled Expression or an
-     * Integer literal)
-     */
-    public JXTExpression compileInt(String val, String msg, Locator location) throws SAXException {
-        JXTExpression res = compileExpr(val, msg, location);
-        if (res != null && res.getCompiledExpression() == null && res.getRaw() != null) {
-            res.setCompiledExpression(Integer.valueOf(res.getRaw()));
-        }
-        return res;
-    }
-
-    public JXTExpression 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))
-            return new JXTExpression(inStr, null);
+    * Compile an integer expression (returns either a Compiled Expression or an
+    * Integer literal)
+    */
+    JXTExpression compileInt(String val, String msg, Locator location) throws SAXException;
 
-        return (JXTExpression) substitutions.get(0);
-    }
+    JXTExpression compileExpr(String inStr, String errorPrefix, Locator location) throws SAXParseException;
 
     /**
      * Parse a set of expressions spaced with literals
      */
-    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);
-        } catch (Error err) {
-            throw new SAXParseException(errorPrefix + err.getMessage(), location, new ErrorHolder(err));
-        }
-    }
+    List parseSubstitutions(Reader in, String errorPrefix, Locator location) throws SAXParseException;
 
-    public abstract List parseSubstitutions(Reader in) throws Exception;
+    List parseSubstitutions(Reader in) throws Exception;
 }

Modified: cocoon/trunk/cocoon-template/cocoon-template-impl/src/main/java/org/apache/cocoon/template/instruction/ForEach.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-template/cocoon-template-impl/src/main/java/org/apache/cocoon/template/instruction/ForEach.java?rev=385048&r1=385047&r2=385048&view=diff
==============================================================================
--- cocoon/trunk/cocoon-template/cocoon-template-impl/src/main/java/org/apache/cocoon/template/instruction/ForEach.java (original)
+++ cocoon/trunk/cocoon-template/cocoon-template-impl/src/main/java/org/apache/cocoon/template/instruction/ForEach.java Sat Mar 11 02:30:16 2006
@@ -23,7 +23,6 @@
 import org.apache.cocoon.template.environment.ExecutionContext;
 import org.apache.cocoon.template.environment.ParsingContext;
 import org.apache.cocoon.template.expression.JXTExpression;
-import org.apache.cocoon.template.expression.StringTemplateParser;
 import org.apache.cocoon.template.script.Invoker;
 import org.apache.cocoon.template.script.event.Event;
 import org.apache.cocoon.template.script.event.StartElement;

Modified: cocoon/trunk/cocoon-template/cocoon-template-impl/src/main/java/org/apache/cocoon/template/instruction/FormatDate.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-template/cocoon-template-impl/src/main/java/org/apache/cocoon/template/instruction/FormatDate.java?rev=385048&r1=385047&r2=385048&view=diff
==============================================================================
--- cocoon/trunk/cocoon-template/cocoon-template-impl/src/main/java/org/apache/cocoon/template/instruction/FormatDate.java (original)
+++ cocoon/trunk/cocoon-template/cocoon-template-impl/src/main/java/org/apache/cocoon/template/instruction/FormatDate.java Sat Mar 11 02:30:16 2006
@@ -26,7 +26,6 @@
 import org.apache.cocoon.template.environment.ExecutionContext;
 import org.apache.cocoon.template.environment.ParsingContext;
 import org.apache.cocoon.template.expression.JXTExpression;
-import org.apache.cocoon.template.expression.StringTemplateParser;
 import org.apache.cocoon.template.script.event.Event;
 import org.apache.cocoon.template.script.event.StartElement;
 import org.apache.cocoon.xml.XMLConsumer;

Modified: cocoon/trunk/cocoon-template/cocoon-template-impl/src/main/java/org/apache/cocoon/template/instruction/FormatNumber.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-template/cocoon-template-impl/src/main/java/org/apache/cocoon/template/instruction/FormatNumber.java?rev=385048&r1=385047&r2=385048&view=diff
==============================================================================
--- cocoon/trunk/cocoon-template/cocoon-template-impl/src/main/java/org/apache/cocoon/template/instruction/FormatNumber.java (original)
+++ cocoon/trunk/cocoon-template/cocoon-template-impl/src/main/java/org/apache/cocoon/template/instruction/FormatNumber.java Sat Mar 11 02:30:16 2006
@@ -27,7 +27,6 @@
 import org.apache.cocoon.template.environment.ExecutionContext;
 import org.apache.cocoon.template.environment.ParsingContext;
 import org.apache.cocoon.template.expression.JXTExpression;
-import org.apache.cocoon.template.expression.StringTemplateParser;
 import org.apache.cocoon.template.script.event.Event;
 import org.apache.cocoon.template.script.event.StartElement;
 import org.apache.cocoon.xml.XMLConsumer;