1 package org.apache.commons.ognl;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.commons.ognl.enhance.UnsupportedCompilationException;
23
24
25
26
27
28
29 class ASTNotIn
30 extends SimpleNode
31 implements NodeType
32 {
33 public ASTNotIn( int id )
34 {
35 super( id );
36 }
37
38 public ASTNotIn( OgnlParser p, int id )
39 {
40 super( p, id );
41 }
42
43 protected Object getValueBody( OgnlContext context, Object source )
44 throws OgnlException
45 {
46 Object v1 = children[0].getValue( context, source );
47 Object v2 = children[1].getValue( context, source );
48 return OgnlOps.in( v1, v2 ) ? Boolean.FALSE : Boolean.TRUE;
49 }
50
51 public Class getGetterClass()
52 {
53 return Boolean.TYPE;
54 }
55
56 public Class getSetterClass()
57 {
58 return null;
59 }
60
61 public String toGetSourceString( OgnlContext context, Object target )
62 {
63 try
64 {
65 String result = "(! org.apache.commons.ognl.OgnlOps.in( ($w) ";
66
67 result +=
68 OgnlRuntime.getChildSource( context, target, children[0] ) + ", ($w) "
69 + OgnlRuntime.getChildSource( context, target, children[1] );
70
71 result += ") )";
72
73 context.setCurrentType( Boolean.TYPE );
74
75 return result;
76 }
77 catch ( NullPointerException e )
78 {
79
80
81 e.printStackTrace();
82
83 throw new UnsupportedCompilationException( "evaluation resulted in null expression." );
84 }
85 catch ( Throwable t )
86 {
87 throw OgnlOps.castToRuntime( t );
88 }
89 }
90
91 public <R, P> R accept( NodeVisitor<? extends R, ? super P> visitor, P data )
92 throws OgnlException
93 {
94 return visitor.visit( this, data );
95 }
96 }