import java.util.List;
import java.util.ArrayList;
-import java.util.Arrays;
/**
* A variable.
/** A variable inside ($$varname). */
private AbstractVariable variable;
+ /** the variable is defined like this ${expression} */
+ private Expression expression;
+
public static final String _GET = "_GET";
public static final String _POST = "_POST";
public static final String _REQUEST = "_REQUEST";
}
/**
+ * Create a special variable ($$toto for example).
+ * @param expression the variable contained
+ * @param sourceStart the starting position
+ * @param sourceEnd the ending position
+ */
+ public Variable(final Expression expression,
+ final int sourceStart,
+ final int sourceEnd) {
+ super(sourceStart, sourceEnd);
+ this.expression = expression;
+ }
+
+ /**
* Return the expression as String.
* @return the expression
*/
}
public String getName() {
- if (variable == null) {
+ if (name != null) {
return name;
}
- return variable.toStringExpression();
+ if (variable != null) {
+ return variable.toStringExpression();
+ }
+ return "{" + expression.toStringExpression() + "}";
}
/**
*/
public List getUsedVariable() {
final String varName;
- if (name == null) {
+ if (name != null) {
+ varName = name;
+ } else if (variable != null) {
varName = variable.getName();
} else {
- varName = name;
+ varName = expression.toStringExpression();//todo : do a better thing like evaluate this ??
}
if (arrayContains(SPECIAL_VARS, name)) {
return new ArrayList(1);