diff --git a/org.springframework.expression/.classpath b/org.springframework.expression/.classpath
index 4ccd1929d7a..600f003c05c 100644
--- a/org.springframework.expression/.classpath
+++ b/org.springframework.expression/.classpath
@@ -9,12 +9,11 @@
* 3 + 4
@@ -34,8 +35,22 @@ public interface ExpressionParser {
* @param expressionString the raw expression string to parse
* @param context a context for influencing this expression parsing routine (optional)
* @return an evaluator for the parsed expression
- * @throws ParserException an exception occurred during parsing
+ * @throws ParseException an exception occurred during parsing
*/
- public Expression parseExpression(String expressionString, ParserContext context) throws ParserException;
+ public Expression parseExpression(String expressionString, ParserContext context) throws ParseException;
+
+ /**
+ * Parse the expression string and return an Expression object you can use for repeated evaluation. Some examples:
+ *
+ *
+ * 3 + 4
+ * name.firstName
+ *
+ *
+ * @param expressionString the raw expression string to parse
+ * @return an evaluator for the parsed expression
+ * @throws ParseException an exception occurred during parsing
+ */
+ public Expression parseExpression(String expressionString) throws ParseException;
}
\ No newline at end of file
diff --git a/org.springframework.expression/src/main/java/org/springframework/expression/ExpressionVariable.java b/org.springframework.expression/src/main/java/org/springframework/expression/ExpressionVariable.java
deleted file mode 100644
index fc92310bff4..00000000000
--- a/org.springframework.expression/src/main/java/org/springframework/expression/ExpressionVariable.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Copyright 2004-2008 the original author or authors.
- *
- * 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.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.springframework.binding.expression;
-
-/**
- * An expression variable.
- * @author Keith Donald
- */
-public class ExpressionVariable {
-
- private String name;
-
- private String valueExpression;
-
- private ParserContext parserContext;
-
- /**
- * Creates a new expression variable.
- * @param name the name of the variable, acting as an convenient alias (required)
- * @param valueExpression the value expression (required)
- */
- public ExpressionVariable(String name, String valueExpression) {
- init(name, valueExpression, null);
- }
-
- /**
- * Creates a new expression variable with a populated parser context.
- * @param name the name of the variable, acting as an convenient alias (required)
- * @param valueExpression the value expression (required)
- * @param parserContext the parser context to use to parse the value expression (optional)
- */
- public ExpressionVariable(String name, String valueExpression, ParserContext parserContext) {
- init(name, valueExpression, parserContext);
- }
-
- /**
- * Returns the variable name.
- * @return the variable name
- */
- public String getName() {
- return name;
- }
-
- /**
- * Returns the expression that will be evaluated when the variable is referenced by its name in another expression.
- * @return the expression value.
- */
- public String getValueExpression() {
- return valueExpression;
- }
-
- /**
- * Returns the parser context to use to parse the variable's value expression.
- * @return the value expression parser context
- */
- public ParserContext getParserContext() {
- return parserContext;
- }
-
- public boolean equals(Object o) {
- if (!(o instanceof ExpressionVariable)) {
- return false;
- }
- ExpressionVariable var = (ExpressionVariable) o;
- return name.equals(var.name);
- }
-
- public int hashCode() {
- return name.hashCode();
- }
-
- public String toString() {
- return "[Expression Variable '" + name + "']";
- }
-
- private void init(String name, String valueExpression, ParserContext parserContext) {
- this.name = name;
- this.valueExpression = valueExpression;
- this.parserContext = parserContext;
- }
-
-}
diff --git a/org.springframework.expression/src/main/java/org/springframework/expression/ParserContext.java b/org.springframework.expression/src/main/java/org/springframework/expression/ParserContext.java
index 3ea7b556e22..393dffc90c0 100644
--- a/org.springframework.expression/src/main/java/org/springframework/expression/ParserContext.java
+++ b/org.springframework.expression/src/main/java/org/springframework/expression/ParserContext.java
@@ -13,46 +13,43 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.springframework.binding.expression;
+package org.springframework.expression;
/**
* Input provided to an expression parser that can influence an expression parsing/compilation routine.
+ *
* @author Keith Donald
+ * @author Andy Clement
*/
public interface ParserContext {
- /**
- * Returns the type of context object the parsed expression will evaluate in. An expression parser may use this
- * value to install custom variable resolves for that particular type of context.
- * @return the evaluation context type
- */
- public Class getEvaluationContextType();
-
- /**
- * Returns the expected type of object returned from evaluating the parsed expression. An expression parser may use
- * this value to coerce an raw evaluation result before it is returned.
- * @return the expected evaluation result type
- */
- public Class getExpectedEvaluationResultType();
-
- /**
- * Returns additional expression variables or aliases that can be referenced during expression evaluation. An
- * expression parser will register these variables for reference during evaluation.
- */
- public ExpressionVariable[] getExpressionVariables();
-
/**
* Whether or not the expression being parsed is a template. A template expression consists of literal text that can
* be mixed with evaluatable blocks. Some examples:
*
*
* Some literal text
- * Hello #{name.firstName}!
- * #{3 + 4}
+ * Hello ${name.firstName}!
+ * ${3 + 4}
*
*
* @return true if the expression is a template, false otherwise
*/
public boolean isTemplate();
+ /**
+ * For template expressions, returns the prefix that identifies the start of an expression block within a string.
+ * For example "${"
+ *
+ * @return the prefix that identifies the start of an expression
+ */
+ public String getExpressionPrefix();
+
+ /**
+ * For template expressions, return the prefix that identifies the end of an expression block within a string. For
+ * example "}$"
+ *
+ * @return the suffix that identifies the end of an expression
+ */
+ public String getExpressionSuffix();
}
\ No newline at end of file
diff --git a/org.springframework.expression/src/main/java/org/springframework/expression/ParserException.java b/org.springframework.expression/src/main/java/org/springframework/expression/ParserException.java
deleted file mode 100644
index 2dcd85d05d4..00000000000
--- a/org.springframework.expression/src/main/java/org/springframework/expression/ParserException.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright 2004-2008 the original author or authors.
- *
- * 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.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.springframework.binding.expression;
-
-/**
- * Base class for exceptions thrown during expression parsing.
- *
- * @author Keith Donald
- */
-public class ParserException extends RuntimeException {
-
- /**
- * The expression string that could not be parsed.
- */
- private String expressionString;
-
- /**
- * Creates a new expression parsing exception.
- * @param expressionString the expression string that could not be parsed
- * @param cause the underlying cause of this exception
- */
- public ParserException(String expressionString, Throwable cause) {
- this(expressionString, "Unable to parse expression string '" + expressionString + "'", cause);
- }
-
- /**
- * Creates a new expression parsing exception.
- * @param expressionString the expression string that could not be parsed
- * @param message a descriptive message
- * @param cause the underlying cause of this exception
- */
- public ParserException(String expressionString, String message, Throwable cause) {
- super(message, cause);
- this.expressionString = expressionString;
- }
-
- /**
- * Returns the expression string that could not be parsed.
- */
- public Object getExpressionString() {
- return expressionString;
- }
-}
\ No newline at end of file
diff --git a/org.springframework.expression/src/main/java/org/springframework/expression/PropertyNotFoundException.java b/org.springframework.expression/src/main/java/org/springframework/expression/PropertyNotFoundException.java
deleted file mode 100644
index 5bc5b6a696a..00000000000
--- a/org.springframework.expression/src/main/java/org/springframework/expression/PropertyNotFoundException.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright 2004-2008 the original author or authors.
- *
- * 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.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.springframework.binding.expression;
-
-/**
- * An evaluation exception indicating a expression that references a property failed to evaluate because the property
- * could not be found.
- * @author Keith Donald
- */
-public class PropertyNotFoundException extends EvaluationException {
-
- /**
- * Creates a new property not found exception
- * @param contextClass the class of object upon which property evaluation was attempted
- * @param property the property that could not be found
- * @param cause root cause of the failure
- */
- public PropertyNotFoundException(Class contextClass, String property, Throwable cause) {
- super(contextClass, property, "Property '" + property + "' not found on context of class ["
- + contextClass.getName() + "]", cause);
- }
-
-}
diff --git a/org.springframework.expression/src/main/java/org/springframework/expression/package.html b/org.springframework.expression/src/main/java/org/springframework/expression/package.html
deleted file mode 100644
index 6c863f90171..00000000000
--- a/org.springframework.expression/src/main/java/org/springframework/expression/package.html
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-Core expression language abstraction for parsing and evaluating expressions.
-
-
-
\ No newline at end of file
diff --git a/org.springframework.expression/src/main/java/overview.html b/org.springframework.expression/src/main/java/overview.html
deleted file mode 100644
index 1eb7a2e8c19..00000000000
--- a/org.springframework.expression/src/main/java/overview.html
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-The Spring Data Binding framework, an internal library used by Spring Web Flow.
-
-
-
\ No newline at end of file
diff --git a/org.springframework.expression/template.mf b/org.springframework.expression/template.mf
index e551c63f373..6c00acd95d3 100644
--- a/org.springframework.expression/template.mf
+++ b/org.springframework.expression/template.mf
@@ -5,3 +5,4 @@ Bundle-ManifestVersion: 2
Import-Template:
org.springframework.core;version="[3.0.0, 3.0.1)",
org.apache.commons.logging;version="[1.1.1, 2.0.0)",
+ org.antlr.runtime;version="[3.0.0,3.0.1)", org.antlr.runtime.tree;version="[3.0.0,3.0.1)"
\ No newline at end of file