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   * Evaluates a node and negates it.
21   *
22   * @author Rodrigo Ruiz
23   * @author Xmas
24   * @version 1.0
25   */
26  public class NotNode extends EvalNode {
27    /**
28     * The node to negate.
29     */
30    private EvalNode node;
31  
32    /**
33     * Creates a new instance.
34     *
35     * @param node  The node to negate.
36     */
37    public NotNode(EvalValue node) {
38      super(node.getLinePos(), node.getCharPos());
39      this.node = new BooleanNode(node);
40    }
41  
42    /**
43     * {@inheritDoc}
44     */
45    @Override public String toString() {
46      return "NOT " + node.toString();
47    }
48  
49    /**
50     * {@inheritDoc}
51     */
52    @Override
53    public boolean eval(Object src) throws EvalException {
54      return node == null ? true : !node.eval(src);
55    }
56  }