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;