KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jacorb > notification > filter > etcl > AndOperator


1 package org.jacorb.notification.filter.etcl;
2
3 /*
4  * JacORB - a free Java ORB
5  *
6  * Copyright (C) 1999-2004 Gerald Brose
7  *
8  * This library is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Library General Public
10  * License as published by the Free Software Foundation; either
11  * version 2 of the License, or (at your option) any later version.
12  *
13  * This library is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16  * Library General Public License for more details.
17  *
18  * You should have received a copy of the GNU Library General Public
19  * License along with this library; if not, write to the Free
20  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21  *
22  */

23
24 import org.jacorb.notification.filter.EvaluationContext;
25 import org.jacorb.notification.filter.EvaluationException;
26 import org.jacorb.notification.filter.EvaluationResult;
27
28 import antlr.Token;
29
30 /** A simple node to represent AND operation */
31
32 public class AndOperator extends UnaryOperator
33 {
34
35     public AndOperator(Token tok)
36     {
37         super(tok);
38         setName(NAME);
39     }
40
41     public String JavaDoc toString()
42     {
43         return "and";
44     }
45
46     public EvaluationResult evaluate(EvaluationContext context, EvaluationResult left)
47             throws EvaluationException
48     {
49
50         boolean _l, _r;
51
52         _l = left.getBool();
53
54         if (!_l)
55         {
56             return EvaluationResult.BOOL_FALSE;
57         }
58
59         _r = right().evaluate(context).getBool();
60
61         return (_r ? EvaluationResult.BOOL_TRUE : EvaluationResult.BOOL_FALSE);
62     }
63
64     public boolean isStatic()
65     {
66         return (left().isStatic() && right().isStatic());
67     }
68
69     public void acceptInOrder(AbstractTCLVisitor visitor) throws VisitorException
70     {
71         left().acceptInOrder(visitor);
72         visitor.visitAnd(this);
73         right().acceptInOrder(visitor);
74     }
75
76     public void acceptPreOrder(AbstractTCLVisitor visitor) throws VisitorException
77     {
78         visitor.visitAnd(this);
79         left().acceptPreOrder(visitor);
80         right().acceptPreOrder(visitor);
81     }
82
83     public void acceptPostOrder(AbstractTCLVisitor visitor) throws VisitorException
84     {
85         left().acceptPostOrder(visitor);
86         right().acceptPostOrder(visitor);
87         visitor.visitAnd(this);
88     }
89
90     static final String JavaDoc NAME = "AndOperator";
91 }
Popular Tags