KickJava   Java API By Example, From Geeks To Geeks.

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


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 /**
31  * A simple node to represent MINUS operation
32  * @version $Id: MinusOperator.java,v 1.5 2005/02/14 00:07:08 alphonse.bendt Exp $
33  */

34
35 public class MinusOperator extends UnaryOperator {
36
37     private boolean unary_;
38     private static final String JavaDoc NAME = "MinusOperator";
39
40     public MinusOperator(Token tok) {
41         super(tok);
42         setName(NAME);
43     }
44
45     public void setType(int type) {
46         unary_ = (type == UNARY_MINUS);
47     }
48
49     public String JavaDoc toString() {
50         return " -";
51     }
52
53     public EvaluationResult evaluate(EvaluationContext context,
54             EvaluationResult left)
55         throws EvaluationException {
56
57         if (unary_) {
58
59             return EvaluationResult.unaryMinus(left);
60
61         }
62             return EvaluationResult.minus(left,
63                                           right().evaluate(context));
64     }
65
66     public void acceptInOrder(AbstractTCLVisitor visitor) throws VisitorException {
67         left().acceptInOrder(visitor);
68         visitor.visitMinus(this);
69         if (!unary_) {
70             right().acceptInOrder(visitor);
71         }
72     }
73
74     public void acceptPostOrder(AbstractTCLVisitor visitor) throws VisitorException {
75         left().acceptPostOrder(visitor);
76         if (!unary_) {
77             right().acceptPostOrder(visitor);
78         }
79         visitor.visitMinus(this);
80     }
81
82     public void acceptPreOrder(AbstractTCLVisitor visitor) throws VisitorException {
83         visitor.visitMinus(this);
84         left().acceptPreOrder(visitor);
85         if (!unary_) {
86             right().acceptPreOrder(visitor);
87         }
88     }
89
90 }
91
Popular Tags