View Javadoc

1   /*
2   Copyright (C) 2004 Grid Systems, S.A.
3   
4   This program is free software; you can redistribute it and/or modify
5   it under the terms of the GNU General Public License, version 2, as
6   published by the Free Software Foundation.
7   
8   This program is distributed in the hope that it will be useful,
9   but WITHOUT ANY WARRANTY; without even the implied warranty of
10  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  GNU General Public License for more details.
12  
13  You should have received a copy of the GNU General Public License
14  along with this program; if not, write to the Free Software
15  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16  */
17  package com.gridsystems.beanfilter;
18  
19  /**
20   * OR logic operation.
21   *
22   * @author Rodrigo Ruiz
23   * @version 1.0
24   */
25  public class OrNode extends EvalNode {
26    /**
27     * Left operand.
28     */
29    private EvalNode lnode;
30  
31    /**
32     * Right operand.
33     */
34    private EvalNode rnode;
35  
36    /**
37     * Creates a new instance.
38     *
39     * @param lnode  Left operand
40     * @param rnode  Right operand
41     * @param token The token
42     */
43    public OrNode(Token token, EvalValue lnode, EvalValue rnode) {
44      super(token.beginLine, token.beginColumn);
45      this.lnode = new BooleanNode(lnode);
46      this.rnode = new BooleanNode(rnode);
47    }
48  
49    /**
50     * Gets the left node.
51     *
52     * @return  The left node
53     */
54    public EvalNode getLeftNode() {
55      return lnode;
56    }
57  
58    /**
59     * Gets the right node.
60     *
61     * @return  The right node
62     */
63    public EvalNode getRightNode() {
64      return rnode;
65    }
66  
67    /**
68     * {@inheritDoc}
69     */
70    @Override public String toString() {
71      return lnode.toString() + " OR " + rnode.toString();
72    }
73  
74    /**
75     * {@inheritDoc}
76     */
77    @Override public boolean eval(Object src) throws EvalException {
78      return (lnode != null && lnode.eval(src)) || (rnode != null && rnode.eval(src));
79    }
80  }