changed to [] from {} for projection and selection (including first and last selection). addresses the problem of clashes with template prefix/suffix
This commit is contained in:
parent
d27cbee69c
commit
2f27bd5da7
|
|
@ -93,7 +93,7 @@ public class Projection extends SpelNodeImpl {
|
||||||
@Override
|
@Override
|
||||||
public String toStringAST() {
|
public String toStringAST() {
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
return sb.append("!{").append(getChild(0).toStringAST()).append("}").toString();
|
return sb.append("![").append(getChild(0).toStringAST()).append("]").toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -41,9 +41,9 @@ import org.springframework.expression.spel.SpelMessages;
|
||||||
*/
|
*/
|
||||||
public class Selection extends SpelNodeImpl {
|
public class Selection extends SpelNodeImpl {
|
||||||
|
|
||||||
public final static int ALL = 0; // ?{}
|
public final static int ALL = 0; // ?[]
|
||||||
public final static int FIRST = 1; // ^{}
|
public final static int FIRST = 1; // ^[]
|
||||||
public final static int LAST = 2; // ${}
|
public final static int LAST = 2; // $[]
|
||||||
|
|
||||||
private final int variant;
|
private final int variant;
|
||||||
|
|
||||||
|
|
@ -140,16 +140,16 @@ public class Selection extends SpelNodeImpl {
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
switch (variant) {
|
switch (variant) {
|
||||||
case ALL:
|
case ALL:
|
||||||
sb.append("?{");
|
sb.append("?[");
|
||||||
break;
|
break;
|
||||||
case FIRST:
|
case FIRST:
|
||||||
sb.append("^{");
|
sb.append("^[");
|
||||||
break;
|
break;
|
||||||
case LAST:
|
case LAST:
|
||||||
sb.append("${");
|
sb.append("$[");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return sb.append(getChild(0).toStringAST()).append("}").toString();
|
return sb.append(getChild(0).toStringAST()).append("]").toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -137,13 +137,13 @@ indexer: LBRACKET r1=argument (COMMA r2=argument)* RBRACKET -> ^(INDEXER $r1 ($r
|
||||||
|
|
||||||
// argument;
|
// argument;
|
||||||
// TODO make expression conditional with ? if want completion for when the RCURLY is missing
|
// TODO make expression conditional with ? if want completion for when the RCURLY is missing
|
||||||
projection: PROJECT^ expression RCURLY!;
|
projection: PROJECT^ expression RBRACKET!;
|
||||||
|
|
||||||
selection: SELECT^ expression RCURLY!;
|
selection: SELECT^ expression RBRACKET!;
|
||||||
|
|
||||||
firstSelection: SELECT_FIRST^ expression RCURLY!;
|
firstSelection: SELECT_FIRST^ expression RBRACKET!;
|
||||||
|
|
||||||
lastSelection: SELECT_LAST^ expression RCURLY!;
|
lastSelection: SELECT_LAST^ expression RBRACKET!;
|
||||||
|
|
||||||
// TODO cope with array types
|
// TODO cope with array types
|
||||||
type: TYPE qualifiedId RPAREN -> ^(TYPEREF qualifiedId);
|
type: TYPE qualifiedId RPAREN -> ^(TYPEREF qualifiedId);
|
||||||
|
|
@ -235,10 +235,10 @@ BANG: '!';
|
||||||
POUND: '#';
|
POUND: '#';
|
||||||
QMARK: '?';
|
QMARK: '?';
|
||||||
DEFAULT: '??';
|
DEFAULT: '??';
|
||||||
PROJECT: '!{';
|
PROJECT: '![';
|
||||||
SELECT: '?{';
|
SELECT: '?[';
|
||||||
SELECT_FIRST: '^{';
|
SELECT_FIRST: '^[';
|
||||||
SELECT_LAST: '${';
|
SELECT_LAST: '$[';
|
||||||
TYPE: 'T(';
|
TYPE: 'T(';
|
||||||
|
|
||||||
STRING_LITERAL: '\''! (APOS|~'\'')* '\''!;
|
STRING_LITERAL: '\''! (APOS|~'\'')* '\''!;
|
||||||
|
|
|
||||||
|
|
@ -1,74 +1,74 @@
|
||||||
GREATER_THAN_OR_EQUAL=61
|
|
||||||
HOLDER=10
|
|
||||||
COMMA=37
|
|
||||||
SELECT_FIRST=43
|
|
||||||
GREATER_THAN=60
|
|
||||||
TYPE=45
|
|
||||||
MINUS=28
|
|
||||||
SELECT_LAST=44
|
|
||||||
NUMBER=18
|
|
||||||
LESS_THAN=58
|
|
||||||
BANG=33
|
|
||||||
FALSE=52
|
|
||||||
METHOD=15
|
|
||||||
PROPERTY_OR_FIELD=7
|
|
||||||
LBRACKET=38
|
|
||||||
INDEXER=8
|
|
||||||
MOD=31
|
|
||||||
FUNCTIONREF=12
|
|
||||||
NULL_LITERAL=48
|
|
||||||
NAMED_ARGUMENT=11
|
|
||||||
OR=25
|
|
||||||
PIPE=67
|
|
||||||
DOT=34
|
|
||||||
RCURLY=41
|
|
||||||
EXPRESSION=5
|
|
||||||
AND=26
|
|
||||||
LCURLY=66
|
|
||||||
REAL_TYPE_SUFFIX=75
|
|
||||||
STRING_LITERAL=46
|
|
||||||
QUALIFIED_IDENTIFIER=6
|
|
||||||
SELECT=42
|
|
||||||
ASSIGN=19
|
|
||||||
SUBTRACT=17
|
|
||||||
RBRACKET=39
|
|
||||||
INSTANCEOF=62
|
|
||||||
BETWEEN=63
|
|
||||||
RPAREN=24
|
|
||||||
SIGN=76
|
SIGN=76
|
||||||
LPAREN=23
|
|
||||||
HEX_DIGIT=55
|
|
||||||
PLUS=27
|
|
||||||
APOS=68
|
|
||||||
INTEGER_LITERAL=4
|
|
||||||
AT=72
|
|
||||||
ID=36
|
|
||||||
NOT_EQUAL=57
|
|
||||||
POWER=32
|
|
||||||
TYPEREF=13
|
|
||||||
DECIMAL_DIGIT=53
|
|
||||||
WS=70
|
|
||||||
DOLLAR=71
|
DOLLAR=71
|
||||||
LESS_THAN_OR_EQUAL=59
|
DECIMAL_DIGIT=52
|
||||||
DQ_STRING_LITERAL=47
|
APOS=68
|
||||||
HEXADECIMAL_INTEGER_LITERAL=49
|
TYPEREF=13
|
||||||
SEMI=65
|
HEXADECIMAL_INTEGER_LITERAL=48
|
||||||
CONSTRUCTOR=9
|
|
||||||
INTEGER_TYPE_SUFFIX=54
|
|
||||||
EQUAL=56
|
|
||||||
MATCHES=64
|
|
||||||
DOT_ESCAPED=69
|
|
||||||
UPTO=73
|
|
||||||
QMARK=21
|
|
||||||
DEFAULT=20
|
|
||||||
COLON=22
|
|
||||||
PROJECT=40
|
|
||||||
DIV=30
|
|
||||||
STAR=29
|
STAR=29
|
||||||
REAL_LITERAL=50
|
MOD=31
|
||||||
VARIABLEREF=14
|
VARIABLEREF=14
|
||||||
EXPONENT_PART=74
|
AND=26
|
||||||
TRUE=51
|
ID=36
|
||||||
|
SUBTRACT=17
|
||||||
|
UPTO=73
|
||||||
|
LPAREN=23
|
||||||
|
TYPE=44
|
||||||
|
HOLDER=10
|
||||||
|
AT=72
|
||||||
|
LBRACKET=38
|
||||||
|
QUALIFIED_IDENTIFIER=6
|
||||||
|
RPAREN=24
|
||||||
|
STRING_LITERAL=45
|
||||||
|
MATCHES=63
|
||||||
|
REAL_LITERAL=49
|
||||||
|
NOT_EQUAL=56
|
||||||
|
COMMA=37
|
||||||
|
FUNCTIONREF=12
|
||||||
|
EQUAL=55
|
||||||
|
PIPE=67
|
||||||
|
PLUS=27
|
||||||
|
RBRACKET=39
|
||||||
|
DOT=34
|
||||||
|
SELECT=41
|
||||||
|
EXPRESSION=5
|
||||||
ADD=16
|
ADD=16
|
||||||
|
LESS_THAN_OR_EQUAL=58
|
||||||
|
GREATER_THAN=59
|
||||||
POUND=35
|
POUND=35
|
||||||
|
PROJECT=40
|
||||||
|
SELECT_LAST=43
|
||||||
|
DEFAULT=20
|
||||||
|
NUMBER=18
|
||||||
|
REAL_TYPE_SUFFIX=75
|
||||||
|
HEX_DIGIT=54
|
||||||
|
POWER=32
|
||||||
|
LCURLY=65
|
||||||
|
NULL_LITERAL=47
|
||||||
|
PROPERTY_OR_FIELD=7
|
||||||
|
BANG=33
|
||||||
|
INSTANCEOF=61
|
||||||
|
MINUS=28
|
||||||
|
SEMI=64
|
||||||
|
TRUE=50
|
||||||
|
COLON=22
|
||||||
|
GREATER_THAN_OR_EQUAL=60
|
||||||
|
WS=70
|
||||||
|
DOT_ESCAPED=69
|
||||||
|
DQ_STRING_LITERAL=46
|
||||||
|
INTEGER_LITERAL=4
|
||||||
|
RCURLY=66
|
||||||
|
INDEXER=8
|
||||||
|
OR=25
|
||||||
|
LESS_THAN=57
|
||||||
|
ASSIGN=19
|
||||||
|
NAMED_ARGUMENT=11
|
||||||
|
SELECT_FIRST=42
|
||||||
|
DIV=30
|
||||||
|
FALSE=51
|
||||||
|
EXPONENT_PART=74
|
||||||
|
BETWEEN=62
|
||||||
|
INTEGER_TYPE_SUFFIX=53
|
||||||
|
METHOD=15
|
||||||
|
CONSTRUCTOR=9
|
||||||
|
QMARK=21
|
||||||
'new'=77
|
'new'=77
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -7,136 +7,136 @@ options {
|
||||||
|
|
||||||
T77 : 'new' ;
|
T77 : 'new' ;
|
||||||
|
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 183
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 183
|
||||||
INTEGER_LITERAL
|
INTEGER_LITERAL
|
||||||
: (DECIMAL_DIGIT)+ (INTEGER_TYPE_SUFFIX)?;
|
: (DECIMAL_DIGIT)+ (INTEGER_TYPE_SUFFIX)?;
|
||||||
|
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 186
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 186
|
||||||
HEXADECIMAL_INTEGER_LITERAL : ('0x' | '0X') (HEX_DIGIT)+ (INTEGER_TYPE_SUFFIX)?;
|
HEXADECIMAL_INTEGER_LITERAL : ('0x' | '0X') (HEX_DIGIT)+ (INTEGER_TYPE_SUFFIX)?;
|
||||||
|
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 200
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 200
|
||||||
ASSIGN: '=';
|
ASSIGN: '=';
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 201
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 201
|
||||||
EQUAL: '==';
|
EQUAL: '==';
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 202
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 202
|
||||||
NOT_EQUAL: '!=';
|
NOT_EQUAL: '!=';
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 203
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 203
|
||||||
LESS_THAN: '<';
|
LESS_THAN: '<';
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 204
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 204
|
||||||
LESS_THAN_OR_EQUAL: '<=';
|
LESS_THAN_OR_EQUAL: '<=';
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 205
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 205
|
||||||
GREATER_THAN: '>';
|
GREATER_THAN: '>';
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 206
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 206
|
||||||
GREATER_THAN_OR_EQUAL: '>=';
|
GREATER_THAN_OR_EQUAL: '>=';
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 207
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 207
|
||||||
INSTANCEOF: 'instanceof';
|
INSTANCEOF: 'instanceof';
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 208
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 208
|
||||||
BETWEEN:'between';
|
BETWEEN:'between';
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 209
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 209
|
||||||
MATCHES:'matches';
|
MATCHES:'matches';
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 210
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 210
|
||||||
NULL_LITERAL: 'null';
|
NULL_LITERAL: 'null';
|
||||||
|
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 212
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 212
|
||||||
SEMI: ';';
|
SEMI: ';';
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 213
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 213
|
||||||
DOT: '.';
|
DOT: '.';
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 214
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 214
|
||||||
COMMA: ',';
|
COMMA: ',';
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 215
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 215
|
||||||
LPAREN: '(';
|
LPAREN: '(';
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 216
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 216
|
||||||
RPAREN: ')';
|
RPAREN: ')';
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 217
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 217
|
||||||
LCURLY: '{';
|
LCURLY: '{';
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 218
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 218
|
||||||
RCURLY: '}';
|
RCURLY: '}';
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 219
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 219
|
||||||
LBRACKET: '[';
|
LBRACKET: '[';
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 220
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 220
|
||||||
RBRACKET: ']';
|
RBRACKET: ']';
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 221
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 221
|
||||||
PIPE: '|';
|
PIPE: '|';
|
||||||
|
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 223
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 223
|
||||||
AND: 'and';
|
AND: 'and';
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 224
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 224
|
||||||
OR: 'or';
|
OR: 'or';
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 225
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 225
|
||||||
FALSE: 'false';
|
FALSE: 'false';
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 226
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 226
|
||||||
TRUE: 'true';
|
TRUE: 'true';
|
||||||
|
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 228
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 228
|
||||||
PLUS: '+';
|
PLUS: '+';
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 229
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 229
|
||||||
MINUS: '-';
|
MINUS: '-';
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 230
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 230
|
||||||
DIV: '/';
|
DIV: '/';
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 231
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 231
|
||||||
STAR: '*';
|
STAR: '*';
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 232
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 232
|
||||||
MOD: '%';
|
MOD: '%';
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 233
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 233
|
||||||
POWER: '^';
|
POWER: '^';
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 234
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 234
|
||||||
BANG: '!';
|
BANG: '!';
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 235
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 235
|
||||||
POUND: '#';
|
POUND: '#';
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 236
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 236
|
||||||
QMARK: '?';
|
QMARK: '?';
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 237
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 237
|
||||||
DEFAULT: '??';
|
DEFAULT: '??';
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 238
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 238
|
||||||
PROJECT: '!{';
|
PROJECT: '![';
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 239
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 239
|
||||||
SELECT: '?{';
|
SELECT: '?[';
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 240
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 240
|
||||||
SELECT_FIRST: '^{';
|
SELECT_FIRST: '^[';
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 241
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 241
|
||||||
SELECT_LAST: '${';
|
SELECT_LAST: '$[';
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 242
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 242
|
||||||
TYPE: 'T(';
|
TYPE: 'T(';
|
||||||
|
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 244
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 244
|
||||||
STRING_LITERAL: '\''! (APOS|~'\'')* '\''!;
|
STRING_LITERAL: '\''! (APOS|~'\'')* '\''!;
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 245
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 245
|
||||||
DQ_STRING_LITERAL: '"'! (~'"')* '"'!;
|
DQ_STRING_LITERAL: '"'! (~'"')* '"'!;
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 246
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 246
|
||||||
ID: ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|DOT_ESCAPED)*;
|
ID: ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|DOT_ESCAPED)*;
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 247
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 247
|
||||||
DOT_ESCAPED: '\\.';
|
DOT_ESCAPED: '\\.';
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 248
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 248
|
||||||
WS: ( ' ' | '\t' | '\n' |'\r')+ { $channel=HIDDEN; } ;
|
WS: ( ' ' | '\t' | '\n' |'\r')+ { $channel=HIDDEN; } ;
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 249
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 249
|
||||||
DOLLAR: '$';
|
DOLLAR: '$';
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 250
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 250
|
||||||
AT: '@';
|
AT: '@';
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 251
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 251
|
||||||
UPTO: '..';
|
UPTO: '..';
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 252
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 252
|
||||||
COLON: ':';
|
COLON: ':';
|
||||||
|
|
||||||
|
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 255
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 255
|
||||||
REAL_LITERAL :
|
REAL_LITERAL :
|
||||||
('.' (DECIMAL_DIGIT)+ (EXPONENT_PART)? (REAL_TYPE_SUFFIX)?) |
|
('.' (DECIMAL_DIGIT)+ (EXPONENT_PART)? (REAL_TYPE_SUFFIX)?) |
|
||||||
((DECIMAL_DIGIT)+ '.' (DECIMAL_DIGIT)+ (EXPONENT_PART)? (REAL_TYPE_SUFFIX)?) |
|
((DECIMAL_DIGIT)+ '.' (DECIMAL_DIGIT)+ (EXPONENT_PART)? (REAL_TYPE_SUFFIX)?) |
|
||||||
((DECIMAL_DIGIT)+ (EXPONENT_PART) (REAL_TYPE_SUFFIX)?) |
|
((DECIMAL_DIGIT)+ (EXPONENT_PART) (REAL_TYPE_SUFFIX)?) |
|
||||||
((DECIMAL_DIGIT)+ (REAL_TYPE_SUFFIX));
|
((DECIMAL_DIGIT)+ (REAL_TYPE_SUFFIX));
|
||||||
|
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 261
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 261
|
||||||
fragment APOS : '\''! '\'';
|
fragment APOS : '\''! '\'';
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 262
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 262
|
||||||
fragment DECIMAL_DIGIT : '0'..'9' ;
|
fragment DECIMAL_DIGIT : '0'..'9' ;
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 263
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 263
|
||||||
fragment INTEGER_TYPE_SUFFIX : ( 'L' | 'l' );
|
fragment INTEGER_TYPE_SUFFIX : ( 'L' | 'l' );
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 264
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 264
|
||||||
fragment HEX_DIGIT : '0'|'1'|'2'|'3'|'4'|'5'|'6'|'7'|'8'|'9'|'A'|'B'|'C'|'D'|'E'|'F'|'a'|'b'|'c'|'d'|'e'|'f';
|
fragment HEX_DIGIT : '0'|'1'|'2'|'3'|'4'|'5'|'6'|'7'|'8'|'9'|'A'|'B'|'C'|'D'|'E'|'F'|'a'|'b'|'c'|'d'|'e'|'f';
|
||||||
|
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 266
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 266
|
||||||
fragment EXPONENT_PART : 'e' (SIGN)* (DECIMAL_DIGIT)+ | 'E' (SIGN)* (DECIMAL_DIGIT)+ ;
|
fragment EXPONENT_PART : 'e' (SIGN)* (DECIMAL_DIGIT)+ | 'E' (SIGN)* (DECIMAL_DIGIT)+ ;
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 267
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 267
|
||||||
fragment SIGN : '+' | '-' ;
|
fragment SIGN : '+' | '-' ;
|
||||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 268
|
// $ANTLR src "F:\svn\sfw2\org.springframework.expression\src\main\java\org\springframework\expression\spel\generated\SpringExpressions.g" 268
|
||||||
fragment REAL_TYPE_SUFFIX : 'F' | 'f' | 'D' | 'd';
|
fragment REAL_TYPE_SUFFIX : 'F' | 'f' | 'D' | 'd';
|
||||||
|
|
|
||||||
|
|
@ -104,7 +104,7 @@ public class ExpressionLanguageScenarioTests extends ExpressionTestCase {
|
||||||
assertEquals(3, value);
|
assertEquals(3, value);
|
||||||
|
|
||||||
// all prime numbers > 10 from the list (using selection ?{...})
|
// all prime numbers > 10 from the list (using selection ?{...})
|
||||||
expr = parser.parseExpression("#primes.?{#this>10}");
|
expr = parser.parseExpression("#primes.?[#this>10]");
|
||||||
value = expr.getValue(ctx);
|
value = expr.getValue(ctx);
|
||||||
assertEquals("[11, 13, 17]", value.toString());
|
assertEquals("[11, 13, 17]", value.toString());
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -318,72 +318,72 @@ public class InProgressTests extends ExpressionTestCase {
|
||||||
|
|
||||||
// projection and selection
|
// projection and selection
|
||||||
public void testProjection01() {
|
public void testProjection01() {
|
||||||
evaluate("listOfNumbersUpToTen.!{#this<5?'y':'n'}","[y, y, y, y, n, n, n, n, n, n]",ArrayList.class);
|
evaluate("listOfNumbersUpToTen.![#this<5?'y':'n']","[y, y, y, y, n, n, n, n, n, n]",ArrayList.class);
|
||||||
// inline list creation not supported at the moment
|
// inline list creation not supported at the moment
|
||||||
// evaluate("{1,2,3,4,5,6,7,8,9,10}.!{#isEven(#this)}", "[n, y, n, y, n, y, n, y, n, y]", ArrayList.class);
|
// evaluate("{1,2,3,4,5,6,7,8,9,10}.!{#isEven(#this)}", "[n, y, n, y, n, y, n, y, n, y]", ArrayList.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testProjection02() {
|
public void testProjection02() {
|
||||||
// inline map creation not supported at the moment
|
// inline map creation not supported at the moment
|
||||||
// evaluate("#{'a':'y','b':'n','c':'y'}.!{value=='y'?key:null}.nonnull().sort()", "[a, c]", ArrayList.class);
|
// evaluate("#{'a':'y','b':'n','c':'y'}.![value=='y'?key:null].nonnull().sort()", "[a, c]", ArrayList.class);
|
||||||
evaluate("mapOfNumbersUpToTen.!{key>5?value:null}", "[null, null, null, null, null, six, seven, eight, nine, ten]", ArrayList.class);
|
evaluate("mapOfNumbersUpToTen.![key>5?value:null]", "[null, null, null, null, null, six, seven, eight, nine, ten]", ArrayList.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testProjection05() {
|
public void testProjection05() {
|
||||||
evaluateAndCheckError("'abc'.!{true}", SpelMessages.PROJECTION_NOT_SUPPORTED_ON_TYPE);
|
evaluateAndCheckError("'abc'.![true]", SpelMessages.PROJECTION_NOT_SUPPORTED_ON_TYPE);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testProjection06() throws Exception {
|
public void testProjection06() throws Exception {
|
||||||
SpelExpression expr = (SpelExpression)parser.parseExpression("'abc'.!{true}");
|
SpelExpression expr = (SpelExpression)parser.parseExpression("'abc'.![true]");
|
||||||
assertEquals("'abc'.!{true}",expr.toStringAST());
|
assertEquals("'abc'.![true]",expr.toStringAST());
|
||||||
assertFalse(expr.isWritable(new StandardEvaluationContext()));
|
assertFalse(expr.isWritable(new StandardEvaluationContext()));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testSelection02() {
|
public void testSelection02() {
|
||||||
evaluate("testMap.keySet().?{#this matches '.*o.*'}", "[monday]", ArrayList.class);
|
evaluate("testMap.keySet().?[#this matches '.*o.*']", "[monday]", ArrayList.class);
|
||||||
evaluate("testMap.keySet().?{#this matches '.*r.*'}.contains('saturday')", "true", Boolean.class);
|
evaluate("testMap.keySet().?[#this matches '.*r.*'].contains('saturday')", "true", Boolean.class);
|
||||||
evaluate("testMap.keySet().?{#this matches '.*r.*'}.size()", "3", Integer.class);
|
evaluate("testMap.keySet().?[#this matches '.*r.*'].size()", "3", Integer.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testSelectionError_NonBooleanSelectionCriteria() {
|
public void testSelectionError_NonBooleanSelectionCriteria() {
|
||||||
evaluateAndCheckError("listOfNumbersUpToTen.?{'nonboolean'}",
|
evaluateAndCheckError("listOfNumbersUpToTen.?['nonboolean']",
|
||||||
SpelMessages.RESULT_OF_SELECTION_CRITERIA_IS_NOT_BOOLEAN);
|
SpelMessages.RESULT_OF_SELECTION_CRITERIA_IS_NOT_BOOLEAN);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testSelection03() {
|
public void testSelection03() {
|
||||||
evaluate("mapOfNumbersUpToTen.?{key>5}.size()", "5", Integer.class);
|
evaluate("mapOfNumbersUpToTen.?[key>5].size()", "5", Integer.class);
|
||||||
// evaluate("listOfNumbersUpToTen.?{#this>5}", "5", ArrayList.class);
|
// evaluate("listOfNumbersUpToTen.?{#this>5}", "5", ArrayList.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testSelection04() {
|
public void testSelection04() {
|
||||||
evaluateAndCheckError("mapOfNumbersUpToTen.?{'hello'}.size()",SpelMessages.RESULT_OF_SELECTION_CRITERIA_IS_NOT_BOOLEAN);
|
evaluateAndCheckError("mapOfNumbersUpToTen.?['hello'].size()",SpelMessages.RESULT_OF_SELECTION_CRITERIA_IS_NOT_BOOLEAN);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testSelectionFirst01() {
|
public void testSelectionFirst01() {
|
||||||
evaluate("listOfNumbersUpToTen.^{#isEven(#this) == 'y'}", "2", Integer.class);
|
evaluate("listOfNumbersUpToTen.^[#isEven(#this) == 'y']", "2", Integer.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testSelectionFirst02() {
|
public void testSelectionFirst02() {
|
||||||
evaluate("mapOfNumbersUpToTen.^{key>5}.size()", "1", Integer.class);
|
evaluate("mapOfNumbersUpToTen.^[key>5].size()", "1", Integer.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testSelectionLast01() {
|
public void testSelectionLast01() {
|
||||||
evaluate("listOfNumbersUpToTen.${#isEven(#this) == 'y'}", "10", Integer.class);
|
evaluate("listOfNumbersUpToTen.$[#isEven(#this) == 'y']", "10", Integer.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testSelectionLast02() {
|
public void testSelectionLast02() {
|
||||||
evaluate("mapOfNumbersUpToTen.${key>5}.size()", "1", Integer.class);
|
evaluate("mapOfNumbersUpToTen.$[key>5].size()", "1", Integer.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testSelectionAST() throws Exception {
|
public void testSelectionAST() throws Exception {
|
||||||
SpelExpression expr = (SpelExpression)parser.parseExpression("'abc'.^{true}");
|
SpelExpression expr = (SpelExpression)parser.parseExpression("'abc'.^[true]");
|
||||||
assertEquals("'abc'.^{true}",expr.toStringAST());
|
assertEquals("'abc'.^[true]",expr.toStringAST());
|
||||||
assertFalse(expr.isWritable(new StandardEvaluationContext()));
|
assertFalse(expr.isWritable(new StandardEvaluationContext()));
|
||||||
expr = (SpelExpression)parser.parseExpression("'abc'.?{true}");
|
expr = (SpelExpression)parser.parseExpression("'abc'.?[true]");
|
||||||
assertEquals("'abc'.?{true}",expr.toStringAST());
|
assertEquals("'abc'.?[true]",expr.toStringAST());
|
||||||
assertFalse(expr.isWritable(new StandardEvaluationContext()));
|
assertFalse(expr.isWritable(new StandardEvaluationContext()));
|
||||||
expr = (SpelExpression)parser.parseExpression("'abc'.${true}");
|
expr = (SpelExpression)parser.parseExpression("'abc'.$[true]");
|
||||||
assertEquals("'abc'.${true}",expr.toStringAST());
|
assertEquals("'abc'.$[true]",expr.toStringAST());
|
||||||
assertFalse(expr.isWritable(new StandardEvaluationContext()));
|
assertFalse(expr.isWritable(new StandardEvaluationContext()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -394,7 +394,7 @@ public class SpelDocumentationTests extends ExpressionTestCase {
|
||||||
context.setVariable("primes",primes);
|
context.setVariable("primes",primes);
|
||||||
|
|
||||||
// all prime numbers > 10 from the list (using selection ?{...})
|
// all prime numbers > 10 from the list (using selection ?{...})
|
||||||
List<Integer> primesGreaterThanTen = (List<Integer>) parser.parseExpression("#primes.?{#this>10}").getValue(context);
|
List<Integer> primesGreaterThanTen = (List<Integer>) parser.parseExpression("#primes.?[#this>10]").getValue(context);
|
||||||
assertEquals("[11, 13, 17]",primesGreaterThanTen.toString());
|
assertEquals("[11, 13, 17]",primesGreaterThanTen.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -437,7 +437,7 @@ public class SpelDocumentationTests extends ExpressionTestCase {
|
||||||
public void testSelection() throws Exception {
|
public void testSelection() throws Exception {
|
||||||
StandardEvaluationContext societyContext = new StandardEvaluationContext();
|
StandardEvaluationContext societyContext = new StandardEvaluationContext();
|
||||||
societyContext.setRootObject(new IEEE());
|
societyContext.setRootObject(new IEEE());
|
||||||
List<Inventor> list = (List<Inventor>) parser.parseExpression("Members2.?{nationality == 'Serbian'}").getValue(societyContext);
|
List<Inventor> list = (List<Inventor>) parser.parseExpression("Members2.?[nationality == 'Serbian']").getValue(societyContext);
|
||||||
assertEquals(1,list.size());
|
assertEquals(1,list.size());
|
||||||
assertEquals("Nikola Tesla",list.get(0).getName());
|
assertEquals("Nikola Tesla",list.get(0).getName());
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -34,9 +34,12 @@ public class SpringEL300Tests extends ExpressionTestCase {
|
||||||
SpelAntlrExpressionParser parser = new SpelAntlrExpressionParser();
|
SpelAntlrExpressionParser parser = new SpelAntlrExpressionParser();
|
||||||
Expression ex = parser.parseExpression("#{'Unable to render embedded object: File ({#this == 2\\}'}", TemplateExpressionParsingTests.HASH_DELIMITED_PARSER_CONTEXT);
|
Expression ex = parser.parseExpression("#{'Unable to render embedded object: File ({#this == 2\\}'}", TemplateExpressionParsingTests.HASH_DELIMITED_PARSER_CONTEXT);
|
||||||
assertEquals("Unable to render embedded object: File ({#this == 2}",ex.getValue());
|
assertEquals("Unable to render embedded object: File ({#this == 2}",ex.getValue());
|
||||||
// ex = parser.parseExpression("Unable to render embedded object: File (#{#this}) not found", TemplateExpressionParsingTests.HASH_DELIMITED_PARSER_CONTEXT);
|
|
||||||
// assertEquals()
|
ex = parser.parseExpression("This is the last odd number in the list: ${listOfNumbersUpToTen.$[#this%2==1]}",TemplateExpressionParsingTests.DEFAULT_TEMPLATE_PARSER_CONTEXT);
|
||||||
// System.out.println(ex.getValue(new StandardEvaluationContext(new File("C:/temp"))));
|
assertEquals("This is the last odd number in the list: 9",ex.getValue(TestScenarioCreator.getTestEvaluationContext()));
|
||||||
|
|
||||||
|
ex = parser.parseExpression("Hello ${'here is a curly bracket \\}'}",TemplateExpressionParsingTests.DEFAULT_TEMPLATE_PARSER_CONTEXT);
|
||||||
|
assertEquals("Hello here is a curly bracket }",ex.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -105,24 +105,24 @@ public class TemplateExpressionParsingTests extends ExpressionTestCase {
|
||||||
public void testNestedExpressions() throws Exception {
|
public void testNestedExpressions() throws Exception {
|
||||||
SpelAntlrExpressionParser parser = new SpelAntlrExpressionParser();
|
SpelAntlrExpressionParser parser = new SpelAntlrExpressionParser();
|
||||||
// treat the nested ${..} as a part of the expression
|
// treat the nested ${..} as a part of the expression
|
||||||
Expression ex = parser.parseExpression("hello ${listOfNumbersUpToTen.${#this<5}} world",DEFAULT_TEMPLATE_PARSER_CONTEXT);
|
Expression ex = parser.parseExpression("hello ${listOfNumbersUpToTen.$[#this<5]} world",DEFAULT_TEMPLATE_PARSER_CONTEXT);
|
||||||
String s = ex.getValue(TestScenarioCreator.getTestEvaluationContext(),String.class);
|
String s = ex.getValue(TestScenarioCreator.getTestEvaluationContext(),String.class);
|
||||||
assertEquals("hello 4 world",s);
|
assertEquals("hello 4 world",s);
|
||||||
|
|
||||||
// not a useful expression but tests nested expression syntax that clashes with template prefix/suffix
|
// not a useful expression but tests nested expression syntax that clashes with template prefix/suffix
|
||||||
ex = parser.parseExpression("hello ${listOfNumbersUpToTen.${#root.listOfNumbersUpToTen.${#this%2==1}==3}} world",DEFAULT_TEMPLATE_PARSER_CONTEXT);
|
ex = parser.parseExpression("hello ${listOfNumbersUpToTen.$[#root.listOfNumbersUpToTen.$[#this%2==1]==3]} world",DEFAULT_TEMPLATE_PARSER_CONTEXT);
|
||||||
s = ex.getValue(TestScenarioCreator.getTestEvaluationContext(),String.class);
|
s = ex.getValue(TestScenarioCreator.getTestEvaluationContext(),String.class);
|
||||||
assertEquals("hello world",s);
|
assertEquals("hello world",s);
|
||||||
|
|
||||||
ex = parser.parseExpression("hello ${listOfNumbersUpToTen.${#this<5}} ${listOfNumbersUpToTen.${#this>5}} world",DEFAULT_TEMPLATE_PARSER_CONTEXT);
|
ex = parser.parseExpression("hello ${listOfNumbersUpToTen.$[#this<5]} ${listOfNumbersUpToTen.$[#this>5]} world",DEFAULT_TEMPLATE_PARSER_CONTEXT);
|
||||||
s = ex.getValue(TestScenarioCreator.getTestEvaluationContext(),String.class);
|
s = ex.getValue(TestScenarioCreator.getTestEvaluationContext(),String.class);
|
||||||
assertEquals("hello 4 10 world",s);
|
assertEquals("hello 4 10 world",s);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
ex = parser.parseExpression("hello ${listOfNumbersUpToTen.${#this<5}} ${listOfNumbersUpToTen.${#this>5} world",DEFAULT_TEMPLATE_PARSER_CONTEXT);
|
ex = parser.parseExpression("hello ${listOfNumbersUpToTen.$[#this<5]} ${listOfNumbersUpToTen.$[#this>5] world",DEFAULT_TEMPLATE_PARSER_CONTEXT);
|
||||||
fail("Should have failed");
|
fail("Should have failed");
|
||||||
} catch (ParseException pe) {
|
} catch (ParseException pe) {
|
||||||
assertEquals("No ending suffix '}' for expression starting at character 41: ${listOfNumbersUpToTen.${#this>5} world",pe.getMessage());
|
assertEquals("No ending suffix '}' for expression starting at character 41: ${listOfNumbersUpToTen.$[#this>5] world",pe.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue