01: package prefuse.data.expression;
02:
03: import prefuse.data.Tuple;
04:
05: /**
06: * Predicate representing the negation of another predicate.
07: *
08: * @author <a href="http://jheer.org">jeffrey heer</a>
09: */
10: public class NotPredicate extends AbstractPredicate {
11:
12: private Predicate m_predicate;
13:
14: /**
15: * Create a new NotPredicate.
16: * @param p the predicate to negate
17: */
18: public NotPredicate(Predicate p) {
19: m_predicate = p;
20: }
21:
22: /**
23: * Get the negated predicate.
24: * @return the negated predicate
25: */
26: public Predicate getPredicate() {
27: return m_predicate;
28: }
29:
30: /**
31: * @see prefuse.data.expression.Expression#getBoolean(prefuse.data.Tuple)
32: */
33: public boolean getBoolean(Tuple t) {
34: return !m_predicate.getBoolean(t);
35: }
36:
37: /**
38: * @see prefuse.data.expression.Expression#visit(prefuse.data.expression.ExpressionVisitor)
39: */
40: public void visit(ExpressionVisitor v) {
41: v.visitExpression(this );
42: v.down();
43: m_predicate.visit(v);
44: v.up();
45: }
46:
47: /**
48: * @see java.lang.Object#toString()
49: */
50: public String toString() {
51: return "NOT " + m_predicate.toString();
52: }
53:
54: /**
55: * @see prefuse.data.expression.AbstractExpression#addChildListeners()
56: */
57: protected void addChildListeners() {
58: m_predicate.addExpressionListener(this );
59: }
60:
61: /**
62: * @see prefuse.data.expression.AbstractExpression#removeChildListeners()
63: */
64: protected void removeChildListeners() {
65: m_predicate.removeExpressionListener(this );
66: }
67:
68: } // end of class NotPredicate
|