List Info

Thread: Re: svn commit: r653799 - in /lenya/branches/branch_1_2_x_shibboleth/src: java/org/apache/lenya/ac/




Re: svn commit: r653799 - in /lenya/branches/branch_1_2_x_shibboleth/ src: java/org/apache/lenya/ac/
user name
2008-05-09 09:58:21
Hi Jann,

Jann Forrer schrieb:
> Hi Andereas
> 
> What about the
>
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc.......
> references everywhere? Seems to be your local home
directory 

thanks for spotting! Now the Java files are generated during
the build 
process, so the paths should correspond to your local
directory structure.

-- Andreas


> 
> Jann
> 
> 
> 
>> New Revision: 653799
>>
>> URL: 
http://svn.apache.org/viewvc?rev=653799&view=rev
>> Log:
>> Adding capability to handle multi-value attributes
with test case.
>>
>> Added:
>>    
lenya/branches/branch_1_2_x_shibboleth/src/test/org/apache/l
enya/ac/impl/RuleEvaluatorTest.java
>> Modified:
>>    
lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/l
enya/ac/impl/antlr/Expressions.g
>>    
lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/l
enya/ac/impl/antlr/ExpressionsLexer.java
>>    
lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/l
enya/ac/impl/antlr/ExpressionsParser.java
>>    
lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/l
enya/ac/impl/antlr/expressions__.g
>>
>> Modified:
lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/l
enya/ac/impl/antlr/Expressions.g
>> URL: http://svn.apache.org/viewvc/lenya/branches/branch_1_2_x_s
hibboleth/src/java/org/apache/lenya/ac/impl/antlr/Expression
s.g?rev=653799&r1=653798&r2=653799&view=diff

>>
============================================================
==================
>> ---
lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/l
enya/ac/impl/antlr/Expressions.g (original)
>> +++
lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/l
enya/ac/impl/antlr/Expressions.g Tue May  6 08:11:12 2008
>>  -3,12 +3,12 
>>  header {
>>  package org.apache.lenya.ac.impl.antlr;
>>  import java.util.HashMap;
>> -import org.apache.lenya.ac.impl.ErrorHandler;
>> +import org.apache.lenya.ac.ErrorHandler;
>>  }
>>  
>>  lexer::header {
>>  package org.apache.lenya.ac.impl.antlr;
>> -import org.apache.lenya.ac.impl.ErrorHandler;
>> +import org.apache.lenya.ac.ErrorHandler;
>>  }
>>  
>>  members {
>>  -65,17 +65,31 
>>      ;
>>      
>>  comparison returns [boolean value]
>> -    :   a=atom EQUALS b=atom {$value =
$a.value.equals($b.value);}
>> +    :   a=atom EQUALS b=atom {
>> +            if ($a.value instanceof String
&& $b.value instanceof String) {
>> +                $value =
$a.value.equals($b.value);
>> +            }
>> +            else if ($a.value instanceof String
&& $b.value.getClass().isArray()) {
>> +                $value =
java.util.Arrays.asList((String[])
$b.value).contains($a.value);
>> +            }
>> +            else if ($a.value.getClass().isArray()
&& $b.value instanceof String) {
>> +                $value =
java.util.Arrays.asList((String[])
$a.value).contains($b.value);
>> +            }
>> +            else {
>> +                throw new
FailedPredicateException(input, $a.text + " == " +
$b.text,
>> +                    "Incompatible arguments
for comparison: " + $a.value + ", " +
$b.value);
>> +            }
>> +        }
>>      |   LEFTPAR e=orExpression RIGHTPAR {$value =
$e.value;}
>>      ;
>>  
>> -atom returns [String value]
>> +atom returns [Object value]
>>      :   quotedString {$value =
$quotedString.value;}
>>      |   ID
>>          {
>> -            String s = (String)
memory.get($ID.text);
>> -            if ( s != null ) {
>> -                $value = s;
>> +            Object v = memory.get($ID.text);
>> +            if ( v != null ) {
>> +                $value = v;
>>              }
>>              else {
>>              	$value = "undefined";
>>
>> Modified:
lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/l
enya/ac/impl/antlr/ExpressionsLexer.java
>> URL: http://svn.apache.org/viewvc/lenya/branches/branch
_1_2_x_shibboleth/src/java/org/apache/lenya/ac/impl/antlr/Ex
pressionsLexer.java?rev=653799&r1=653798&r2=653799&a
mp;view=diff
>>
============================================================
==================
>> ---
lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/l
enya/ac/impl/antlr/ExpressionsLexer.java (original)
>> +++
lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/l
enya/ac/impl/antlr/ExpressionsLexer.java Tue May  6 08:11:12
2008
>>  -1,4 +1,4 
>> -// $ANTLR 3.0
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g
2007-06-19 15:30:41
>> +// $ANTLR 3.0.1
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g
2008-05-06 16:50:47
>>  
>>  package org.apache.lenya.ac.impl.antlr;
>>  import org.apache.lenya.ac.ErrorHandler;
>>  -37,17 +37,17 
>>      public ExpressionsLexer(CharStream input) {
>>          super(input);
>>      }
>> -    public String getGrammarFileName() { return
"src/java/org/apache/lenya/ac/impl/antlr/Expressions.g&
quot;; }
>> +    public String getGrammarFileName() { return
"/Users/nobby/apache/lenya/branches/branch_1_2_x_shibbo
leth/src/java/org/apache/lenya/ac/impl/antlr/Expressions.g&q
uot;; }
>>  
>>      // $ANTLR start LITERAL
>>      public final void mLITERAL() throws
RecognitionException {
>>          try {
>>              int _type = LITERAL;
>> -            //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:92:10:
( '"' ( 'a' .. 'z' | 'A' .. 'Z' | '_' | ' ' | '.' )*
'"' )
>> -            //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:92:10:
'"' ( 'a' .. 'z' | 'A' .. 'Z' | '_' | ' ' | '.' )*
'"'
>> +            //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:106:8:
( '"' ( 'a' .. 'z' | 'A' .. 'Z' | '_' | ' ' | '.' )*
'"' )
>> +            //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:106:10:
'"' ( 'a' .. 'z' | 'A' .. 'Z' | '_' | ' ' | '.' )*
'"'
>>              {
>>              match('"'); 
>> -            //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:92:14:
( 'a' .. 'z' | 'A' .. 'Z' | '_' | ' ' | '.' )*
>> +            //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:106:14:
( 'a' .. 'z' | 'A' .. 'Z' | '_' | ' ' | '.' )*
>>              loop1:
>>              do {
>>                  int alt1=2;
>>  -60,7 +60,7 
>>  
>>                  switch (alt1) {
>>              	case 1 :
>> -            	    //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:
>> +            	    //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:
>>              	    {
>>              	    if ( input.LA(1)=='
'||input.LA(1)=='.'||(input.LA(1)>='A' &&
input.LA(1)<='Z')||input.LA(1)=='_'||(input.LA(1)>='a'
&& input.LA(1)<='z') ) {
>>              	        input.consume();
>>  -96,8 +96,8 
>>      public final void mID() throws
RecognitionException {
>>          try {
>>              int _type = ID;
>> -            //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:93:5:
( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' |
'0' .. '9' )* )
>> -            //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:93:5:
( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0'
.. '9' )*
>> +            //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:107:3:
( ( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' |
'0' .. '9' )* )
>> +            //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:107:5:
( 'a' .. 'z' | 'A' .. 'Z' ) ( 'a' .. 'z' | 'A' .. 'Z' | '0'
.. '9' )*
>>              {
>>              if ( (input.LA(1)>='A' &&
input.LA(1)<='Z')||(input.LA(1)>='a' &&
input.LA(1)<='z') ) {
>>                  input.consume();
>>  -109,7 +109,7 
>>                  recover(mse);    throw mse;
>>              }
>>  
>> -            //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:93:25:
( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' )*
>> +            //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:107:25:
( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' )*
>>              loop2:
>>              do {
>>                  int alt2=2;
>>  -122,7 +122,7 
>>  
>>                  switch (alt2) {
>>              	case 1 :
>> -            	    //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:
>> +            	    //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:
>>              	    {
>>              	    if ( (input.LA(1)>='0'
&& input.LA(1)<='9')||(input.LA(1)>='A'
&& input.LA(1)<='Z')||(input.LA(1)>='a'
&& input.LA(1)<='z') ) {
>>              	        input.consume();
>>  -157,8 +157,8 
>>      public final void mEQUALS() throws
RecognitionException {
>>          try {
>>              int _type = EQUALS;
>> -            //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:94:9:
( '==' )
>> -            //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:94:9:
'=='
>> +            //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:108:7:
( '==' )
>> +            //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:108:9:
'=='
>>              {
>>              match("=="); 
>>  
>>  -176,8 +176,8 
>>      public final void mQUOT() throws
RecognitionException {
>>          try {
>>              int _type = QUOT;
>> -            //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:95:7:
( '"' )
>> -            //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:95:7:
'"'
>> +            //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:109:5:
( '"' )
>> +            //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:109:7:
'"'
>>              {
>>              match('"'); 
>>  
>>  -194,8 +194,8 
>>      public final void mOR() throws
RecognitionException {
>>          try {
>>              int _type = OR;
>> -            //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:96:5:
( '||' )
>> -            //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:96:5:
'||'
>> +            //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:110:3:
( '||' )
>> +            //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:110:5:
'||'
>>              {
>>              match("||"); 
>>  
>>  -213,8 +213,8 
>>      public final void mAND() throws
RecognitionException {
>>          try {
>>              int _type = AND;
>> -            //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:97:6:
( '&&' )
>> -            //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:97:6:
'&&'
>> +            //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:111:4:
( '&&' )
>> +            //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:111:6:
'&&'
>>              {
>>              match("&&"); 
>>  
>>  -232,8 +232,8 
>>      public final void mLEFTPAR() throws
RecognitionException {
>>          try {
>>              int _type = LEFTPAR;
>> -            //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:98:10:
( '(' )
>> -            //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:98:10:
'('
>> +            //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:112:8:
( '(' )
>> +            //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:112:10:
'('
>>              {
>>              match('('); 
>>  
>>  -250,8 +250,8 
>>      public final void mRIGHTPAR() throws
RecognitionException {
>>          try {
>>              int _type = RIGHTPAR;
>> -            //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:99:11:
( ')' )
>> -            //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:99:11:
')'
>> +            //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:113:9:
( ')' )
>> +            //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:113:11:
')'
>>              {
>>              match(')'); 
>>  
>>  -268,10 +268,10 
>>      public final void mWS() throws
RecognitionException {
>>          try {
>>              int _type = WS;
>> -            //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:100:5:
( ( ' ' | '\t' )+ )
>> -            //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:100:5:
( ' ' | '\t' )+
>> +            //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:114:3:
( ( ' ' | '\t' )+ )
>> +            //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:114:5:
( ' ' | '\t' )+
>>              {
>> -            //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:100:5:
( ' ' | '\t' )+
>> +            //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:114:5:
( ' ' | '\t' )+
>>              int cnt3=0;
>>              loop3:
>>              do {
>>  -285,7 +285,7 
>>  
>>                  switch (alt3) {
>>              	case 1 :
>> -            	    //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:
>> +            	    //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:
>>              	    {
>>              	    if (
input.LA(1)=='t'||input.LA(1)==' ' ) {
>>              	        input.consume();
>>  -322,7 +322,7 
>>      // $ANTLR end WS
>>  
>>      public void mTokens() throws
RecognitionException {
>> -        //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:1:10:
( LITERAL | ID | EQUALS | QUOT | OR | AND | LEFTPAR |
RIGHTPAR | WS )
>> +        //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:1:8: (
LITERAL | ID | EQUALS | QUOT | OR | AND | LEFTPAR | RIGHTPAR
| WS )
>>          int alt4=9;
>>          switch ( input.LA(1) ) {
>>          case '"':
>>  -432,63 +432,63 
>>  
>>          switch (alt4) {
>>              case 1 :
>> -                //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:1:10:
LITERAL
>> +                //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:1:10:
LITERAL
>>                  {
>>                  mLITERAL(); 
>>  
>>                  }
>>                  break;
>>              case 2 :
>> -                //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:1:18:
ID
>> +                //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:1:18:
ID
>>                  {
>>                  mID(); 
>>  
>>                  }
>>                  break;
>>              case 3 :
>> -                //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:1:21:
EQUALS
>> +                //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:1:21:
EQUALS
>>                  {
>>                  mEQUALS(); 
>>  
>>                  }
>>                  break;
>>              case 4 :
>> -                //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:1:28:
QUOT
>> +                //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:1:28:
QUOT
>>                  {
>>                  mQUOT(); 
>>  
>>                  }
>>                  break;
>>              case 5 :
>> -                //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:1:33:
OR
>> +                //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:1:33:
OR
>>                  {
>>                  mOR(); 
>>  
>>                  }
>>                  break;
>>              case 6 :
>> -                //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:1:36:
AND
>> +                //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:1:36:
AND
>>                  {
>>                  mAND(); 
>>  
>>                  }
>>                  break;
>>              case 7 :
>> -                //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:1:40:
LEFTPAR
>> +                //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:1:40:
LEFTPAR
>>                  {
>>                  mLEFTPAR(); 
>>  
>>                  }
>>                  break;
>>              case 8 :
>> -                //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:1:48:
RIGHTPAR
>> +                //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:1:48:
RIGHTPAR
>>                  {
>>                  mRIGHTPAR(); 
>>  
>>                  }
>>                  break;
>>              case 9 :
>> -                //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:1:57:
WS
>> +                //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:1:57:
WS
>>                  {
>>                  mWS(); 
>>  
>>
>> Modified:
lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/l
enya/ac/impl/antlr/ExpressionsParser.java
>> URL: http://svn.apache.org/viewvc/lenya/branches/branc
h_1_2_x_shibboleth/src/java/org/apache/lenya/ac/impl/antlr/E
xpressionsParser.java?rev=653799&r1=653798&r2=653799
&view=diff
>>
============================================================
==================
>> ---
lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/l
enya/ac/impl/antlr/ExpressionsParser.java (original)
>> +++
lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/l
enya/ac/impl/antlr/ExpressionsParser.java Tue May  6
08:11:12 2008
>>  -1,8 +1,7 
>> -// $ANTLR 3.0
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g
2007-06-19 15:30:40
>> +// $ANTLR 3.0.1
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g
2008-05-06 16:50:45
>>  
>>  package org.apache.lenya.ac.impl.antlr;
>>  import java.util.HashMap;
>> -
>>  import org.apache.lenya.ac.ErrorHandler;
>>  
>>  
>>  -32,7 +31,7 
>>          
>>  
>>      public String[] getTokenNames() { return
tokenNames; }
>> -    public String getGrammarFileName() { return
"src/java/org/apache/lenya/ac/impl/antlr/Expressions.g&
quot;; }
>> +    public String getGrammarFileName() { return
"/Users/nobby/apache/lenya/branches/branch_1_2_x_shibbo
leth/src/java/org/apache/lenya/ac/impl/antlr/Expressions.g&q
uot;; }
>>  
>>  
>>      /** Map variable name to object holding value
*/
>>  -62,7 +61,7 
>>  
>>  
>>      // $ANTLR start prog
>> -    //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:53:1:
prog returns [boolean value] : e= orExpression ;
>> +    //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:53:1:
prog returns [boolean value] : e= orExpression ;
>>      public final boolean prog() throws
RecognitionException {
>>          boolean value = false;
>>  
>>  -70,8 +69,8 
>>  
>>  
>>          try {
>> -            //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:54:7:
(e= orExpression )
>> -            //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:54:7:
e= orExpression
>> +            //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:54:5:
(e= orExpression )
>> +            //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:54:7:
e= orExpression
>>              {
>>             
pushFollow(FOLLOW_orExpression_in_prog50);
>>              e=orExpression();
>>  -94,7 +93,7 
>>  
>>  
>>      // $ANTLR start orExpression
>> -    //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:57:1:
orExpression returns [boolean value] : e= andExpression ( OR
e= andExpression )* ;
>> +    //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:57:1:
orExpression returns [boolean value] : e= andExpression ( OR
e= andExpression )* ;
>>      public final boolean orExpression() throws
RecognitionException {
>>          boolean value = false;
>>  
>>  -102,15 +101,15 
>>  
>>  
>>          try {
>> -            //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:58:9:
(e= andExpression ( OR e= andExpression )* )
>> -            //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:58:9:
e= andExpression ( OR e= andExpression )*
>> +            //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:58:5:
(e= andExpression ( OR e= andExpression )* )
>> +            //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:58:9:
e= andExpression ( OR e= andExpression )*
>>              {
>>             
pushFollow(FOLLOW_andExpression_in_orExpression77);
>>              e=andExpression();
>>              _fsp--;
>>  
>>              value = e; 
>> -            //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:59:5:
( OR e= andExpression )*
>> +            //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:59:5: (
OR e= andExpression )*
>>              loop1:
>>              do {
>>                  int alt1=2;
>>  -123,7 +122,7 
>>  
>>                  switch (alt1) {
>>              	case 1 :
>> -            	    //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:59:7:
OR e= andExpression
>> +            	    //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:59:7:
OR e= andExpression
>>              	    {
>>              	   
match(input,OR,FOLLOW_OR_in_orExpression87); 
>>              	   
pushFollow(FOLLOW_andExpression_in_orExpression91);
>>  -156,7 +155,7 
>>  
>>  
>>      // $ANTLR start andExpression
>> -    //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:62:1:
andExpression returns [boolean value] : e= comparison ( AND
e= comparison )* ;
>> +    //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:62:1:
andExpression returns [boolean value] : e= comparison ( AND
e= comparison )* ;
>>      public final boolean andExpression() throws
RecognitionException {
>>          boolean value = false;
>>  
>>  -164,15 +163,15 
>>  
>>  
>>          try {
>> -            //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:63:9:
(e= comparison ( AND e= comparison )* )
>> -            //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:63:9:
e= comparison ( AND e= comparison )*
>> +            //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:63:5:
(e= comparison ( AND e= comparison )* )
>> +            //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:63:9:
e= comparison ( AND e= comparison )*
>>              {
>>             
pushFollow(FOLLOW_comparison_in_andExpression125);
>>              e=comparison();
>>              _fsp--;
>>  
>>              value = e;
>> -            //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:64:5:
( AND e= comparison )*
>> +            //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:64:5: (
AND e= comparison )*
>>              loop2:
>>              do {
>>                  int alt2=2;
>>  -185,7 +184,7 
>>  
>>                  switch (alt2) {
>>              	case 1 :
>> -            	    //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:64:7:
AND e= comparison
>> +            	    //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:64:7:
AND e= comparison
>>              	    {
>>              	   
match(input,AND,FOLLOW_AND_in_andExpression135); 
>>              	   
pushFollow(FOLLOW_comparison_in_andExpression139);
>>  -218,19 +217,19 
>>  
>>  
>>      // $ANTLR start comparison
>> -    //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:67:1:
comparison returns [boolean value] : (a= atom EQUALS b= atom
| LEFTPAR e= orExpression RIGHTPAR );
>> +    //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:67:1:
comparison returns [boolean value] : (a= atom EQUALS b= atom
| LEFTPAR e= orExpression RIGHTPAR );
>>      public final boolean comparison() throws
RecognitionException {
>>          boolean value = false;
>>  
>> -        String a = null;
>> +        atom_return a = null;
>>  
>> -        String b = null;
>> +        atom_return b = null;
>>  
>>          boolean e = false;
>>  
>>  
>>          try {
>> -            //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:68:9:
(a= atom EQUALS b= atom | LEFTPAR e= orExpression RIGHTPAR
)
>> +            //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:68:5:
(a= atom EQUALS b= atom | LEFTPAR e= orExpression RIGHTPAR
)
>>              int alt3=2;
>>              int LA3_0 = input.LA(1);
>>  
>>  -248,7 +247,7 
>>              }
>>              switch (alt3) {
>>                  case 1 :
>> -                    //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:68:9:
a= atom EQUALS b= atom
>> +                    //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:68:9:
a= atom EQUALS b= atom
>>                      {
>>                     
pushFollow(FOLLOW_atom_in_comparison173);
>>                      a=atom();
>>  -259,12 +258,26 
>>                      b=atom();
>>                      _fsp--;
>>  
>> -                    value = a.equals(b);
>> +
>> +                                if (a.value
instanceof String && b.value instanceof String) {
>> +                                    value =
a.value.equals(b.value);
>> +                                }
>> +                                else if (a.value
instanceof String && b.value.getClass().isArray())
{
>> +                                    value =
java.util.Arrays.asList((String[])
b.value).contains(a.value);
>> +                                }
>> +                                else if
(a.value.getClass().isArray() && b.value instanceof
String) {
>> +                                    value =
java.util.Arrays.asList((String[])
a.value).contains(b.value);
>> +                                }
>> +                                else {
>> +                                    throw new
FailedPredicateException(input,
input.toString(a.start,a.stop) + " == " +
input.toString(b.start,b.stop),
>> +                                       
"Incompatible arguments for comparison: " +
a.value + ", " + b.value);
>> +                                }
>> +                            
>>  
>>                      }
>>                      break;
>>                  case 2 :
>> -                    //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:69:9:
LEFTPAR e= orExpression RIGHTPAR
>> +                    //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:83:9:
LEFTPAR e= orExpression RIGHTPAR
>>                      {
>>                     
match(input,LEFTPAR,FOLLOW_LEFTPAR_in_comparison191); 
>>                     
pushFollow(FOLLOW_orExpression_in_comparison195);
>>  -289,18 +302,22 
>>      }
>>      // $ANTLR end comparison
>>  
>> +    public static class atom_return extends
ParserRuleReturnScope {
>> +        public Object value;
>> +    };
>>  
>>      // $ANTLR start atom
>> -    //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:72:1:
atom returns [String value] : ( quotedString | ID );
>> -    public final String atom() throws
RecognitionException {
>> -        String value = null;
>> +    //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:86:1:
atom returns [Object value] : ( quotedString | ID );
>> +    public final atom_return atom() throws
RecognitionException {
>> +        atom_return retval = new atom_return();
>> +        retval.start = input.LT(1);
>>  
>>          Token ID2=null;
>>          String quotedString1 = null;
>>  
>>  
>>          try {
>> -            //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:73:9:
( quotedString | ID )
>> +            //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:87:5: (
quotedString | ID )
>>              int alt4=2;
>>              int LA4_0 = input.LA(1);
>>  
>>  -312,34 +329,34 
>>              }
>>              else {
>>                  NoViableAltException nvae =
>> -                    new
NoViableAltException("72:1: atom returns [String value]
: ( quotedString | ID );", 4, 0, input);
>> +                    new
NoViableAltException("86:1: atom returns [Object value]
: ( quotedString | ID );", 4, 0, input);
>>  
>>                  throw nvae;
>>              }
>>              switch (alt4) {
>>                  case 1 :
>> -                    //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:73:9:
quotedString
>> +                    //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:87:9:
quotedString
>>                      {
>>                     
pushFollow(FOLLOW_quotedString_in_atom222);
>>                      quotedString1=quotedString();
>>                      _fsp--;
>>  
>> -                    value = quotedString1;
>> +                    retval.value = quotedString1;
>>  
>>                      }
>>                      break;
>>                  case 2 :
>> -                    //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:74:9:
ID
>> +                    //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:88:9:
ID
>>                      {
>>                      ID2=(Token)input.LT(1);
>>                     
match(input,ID,FOLLOW_ID_in_atom234); 
>>  
>> -                                String s =
(String) memory.get(ID2.getText());
>> -                                if ( s != null )
{
>> -                                    value = s;
>> +                                Object v =
memory.get(ID2.getText());
>> +                                if ( v != null )
{
>> +                                    retval.value =
v;
>>                                  }
>>                                  else {
>> -                                	value =
"undefined";
>> +                                	retval.value =
"undefined";
>>                                      throw new
FailedPredicateException(input, ID2.getText(),
>>                                         
"Undefined variable "" + ID2.getText() +
""");
>>                                  }
>>  -349,6 +366,8 
>>                      break;
>>  
>>              }
>> +            retval.stop = input.LT(-1);
>> +
>>          }
>>          catch (RecognitionException re) {
>>              reportError(re);
>>  -356,21 +375,21 
>>          }
>>          finally {
>>          }
>> -        return value;
>> +        return retval;
>>      }
>>      // $ANTLR end atom
>>  
>>  
>>      // $ANTLR start quotedString
>> -    //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:88:1:
quotedString returns [String value] : LITERAL ;
>> +    //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:102:1:
quotedString returns [String value] : LITERAL ;
>>      public final String quotedString() throws
RecognitionException {
>>          String value = null;
>>  
>>          Token LITERAL3=null;
>>  
>>          try {
>> -            //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:89:9:
( LITERAL )
>> -            //
src/java/org/apache/lenya/ac/impl/antlr/Expressions.g:89:9:
LITERAL
>> +            //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:103:7:
( LITERAL )
>> +            //
/Users/nobby/apache/lenya/branches/branch_1_2_x_shibboleth/s
rc/java/org/apache/lenya/ac/impl/antlr/Expressions.g:103:9:
LITERAL
>>              {
>>              LITERAL3=(Token)input.LT(1);
>>             
match(input,LITERAL,FOLLOW_LITERAL_in_quotedString267); 
>>
>> Modified:
lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/l
enya/ac/impl/antlr/expressions__.g
>> URL: http://svn.apache.org/viewvc/lenya/branches/branch_1_2_x
_shibboleth/src/java/org/apache/lenya/ac/impl/antlr/expressi
ons__.g?rev=653799&r1=653798&r2=653799&view=diff

>>
============================================================
==================
>> ---
lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/l
enya/ac/impl/antlr/expressions__.g (original)
>> +++
lenya/branches/branch_1_2_x_shibboleth/src/java/org/apache/l
enya/ac/impl/antlr/expressions__.g Tue May  6 08:11:12 2008
>>  -13,24 +13,24 
>>  }
>>  header {
>>  package org.apache.lenya.ac.impl.antlr;
>> -import org.apache.lenya.ac.impl.ErrorHandler;
>> +import org.apache.lenya.ac.ErrorHandler;
>>  }
>>  
>> -// $ANTLR src
"src/java/org/apache/lenya/ac/impl/antlr/Expressions.g&
quot; 92
>> +// $ANTLR src
"/Users/nobby/apache/lenya/branches/branch_1_2_x_shibbo
leth/src/java/org/apache/lenya/ac/impl/antlr/Expressions.g&q
uot; 106
>>  LITERAL: '"' ('a'..'z'|'A'..'Z'|'_'|' '|'.')*
'"';
>> -// $ANTLR src
"src/java/org/apache/lenya/ac/impl/antlr/Expressions.g&
quot; 93
>> +// $ANTLR src
"/Users/nobby/apache/lenya/branches/branch_1_2_x_shibbo
leth/src/java/org/apache/lenya/ac/impl/antlr/Expressions.g&q
uot; 107
>>  ID: ('a'..'z'|'A'..'Z')
('a'..'z'|'A'..'Z'|'0'..'9')*;
>> -// $ANTLR src
"src/java/org/apache/lenya/ac/impl/antlr/Expressions.g&
quot; 94
>> +// $ANTLR src
"/Users/nobby/apache/lenya/branches/branch_1_2_x_shibbo
leth/src/java/org/apache/lenya/ac/impl/antlr/Expressions.g&q
uot; 108
>>  EQUALS: '==';
>> -// $ANTLR src
"src/java/org/apache/lenya/ac/impl/antlr/Expressions.g&
quot; 95
>> +// $ANTLR src
"/Users/nobby/apache/lenya/branches/branch_1_2_x_shibbo
leth/src/java/org/apache/lenya/ac/impl/antlr/Expressions.g&q
uot; 109
>>  QUOT: '"';
>> -// $ANTLR src
"src/java/org/apache/lenya/ac/impl/antlr/Expressions.g&
quot; 96
>> +// $ANTLR src
"/Users/nobby/apache/lenya/branches/branch_1_2_x_shibbo
leth/src/java/org/apache/lenya/ac/impl/antlr/Expressions.g&q
uot; 110
>>  OR: '||';
>> -// $ANTLR src
"src/java/org/apache/lenya/ac/impl/antlr/Expressions.g&
quot; 97
>> +// $ANTLR src
"/Users/nobby/apache/lenya/branches/branch_1_2_x_shibbo
leth/src/java/org/apache/lenya/ac/impl/antlr/Expressions.g&q
uot; 111
>>  AND: '&&';
>> -// $ANTLR src
"src/java/org/apache/lenya/ac/impl/antlr/Expressions.g&
quot; 98
>> +// $ANTLR src
"/Users/nobby/apache/lenya/branches/branch_1_2_x_shibbo
leth/src/java/org/apache/lenya/ac/impl/antlr/Expressions.g&q
uot; 112
>>  LEFTPAR: '(';
>> -// $ANTLR src
"src/java/org/apache/lenya/ac/impl/antlr/Expressions.g&
quot; 99
>> +// $ANTLR src
"/Users/nobby/apache/lenya/branches/branch_1_2_x_shibbo
leth/src/java/org/apache/lenya/ac/impl/antlr/Expressions.g&q
uot; 113
>>  RIGHTPAR: ')';
>> -// $ANTLR src
"src/java/org/apache/lenya/ac/impl/antlr/Expressions.g&
quot; 100
>> +// $ANTLR src
"/Users/nobby/apache/lenya/branches/branch_1_2_x_shibbo
leth/src/java/org/apache/lenya/ac/impl/antlr/Expressions.g&q
uot; 114
>>  WS: (' '|'t')+ {skip();} ;
>>
>> Added:
lenya/branches/branch_1_2_x_shibboleth/src/test/org/apache/l
enya/ac/impl/RuleEvaluatorTest.java
>> URL: http://svn.apache.org/v
iewvc/lenya/branches/branch_1_2_x_shibboleth/src/test/org/ap
ache/lenya/ac/impl/RuleEvaluatorTest.java?rev=653799&vie
w=auto
>>
============================================================
==================
>> ---
lenya/branches/branch_1_2_x_shibboleth/src/test/org/apache/l
enya/ac/impl/RuleEvaluatorTest.java (added)
>> +++
lenya/branches/branch_1_2_x_shibboleth/src/test/org/apache/l
enya/ac/impl/RuleEvaluatorTest.java Tue May  6 08:11:12
2008
>>  -0,0 +1,55 
>> +/*
>> + * Licensed to the Apache Software Foundation
(ASF) under one or more
>> + *  contributor license agreements.  See the
NOTICE file distributed with
>> + *  this work for additional information regarding
copyright ownership.
>> + *  The ASF licenses this file to You 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.
>> + *
>> + */
>> +
>> +/* $Id: GroupManagerTest.java 473841 2006-11-12
00:46:38Z gregor $  */
>> +package org.apache.lenya.ac.impl;
>> +
>> +import junit.framework.TestCase;
>> +
>> +import
org.apache.avalon.framework.logger.ConsoleLogger;
>> +import org.apache.lenya.ac.AttributeDefinition;
>> +import
org.apache.lenya.ac.AttributeDefinitionRegistry;
>> +import
org.apache.lenya.ac.AttributeRuleEvaluator;
>> +import org.apache.lenya.ac.file.FileUser;
>> +import
org.apache.lenya.ac.impl.antlr.AntlrEvaluator;
>> +
>> +public class RuleEvaluatorTest extends TestCase {
>> +    
>> +    protected static final String ATTR_NAME =
"attr";
>> +
>> +    public void testRuleEvaluation() throws
Exception {
>> +        
>> +        AttributeDefinition def = new
AttributeDefinition() {
>> +            public String[] getAttributeNames() {
>> +                String[] names = ;
>> +                return names;
>> +            }
>> +        };
>> +       
AttributeDefinitionRegistry.register(def);
>> +        
>> +        AttributeRuleEvaluator evaluator = new
AntlrEvaluator(new ConsoleLogger());
>> +        
>> +        FileUser user = new FileUser();
>> +        String[] values = { "foo",
"bar" };
>> +        user.setAttributeValues(ATTR_NAME,
values);
>> +        
>> +        assertTrue(evaluator.isComplied(user,
ATTR_NAME + " == "bar""));
>> +        assertFalse(evaluator.isComplied(user,
ATTR_NAME + " == "baz""));
>> +    }
>> +
>> +}
>>
>>
>>
>>
------------------------------------------------------------
---------
>> To unsubscribe, e-mail: commits-unsubscribelenya.apache.org
>> For additional commands, e-mail: commits-helplenya.apache.org
>>
> 
> 


-- 
Andreas Hartmann, CTO
BeCompany GmbH
http://www.becompany.ch
Tel.: +41 (0) 43 818 57 01


------------------------------------------------------------
---------
To unsubscribe, e-mail: dev-unsubscribelenya.apache.org
For additional commands, e-mail: dev-helplenya.apache.org


[1]

about | contact  Other archives ( Real Estate discussion Medical topics )