package prefuse.data.expression;
import prefuse.data.Tuple;
/**
* Predicate representing the negation of another predicate.
*
* @author <a href="http://jheer.org">jeffrey heer</a>
*/
public class NotPredicate extends AbstractPredicate {
private Predicate m_predicate;
/**
* Create a new NotPredicate.
* @param p the predicate to negate
*/
public NotPredicate(Predicate p) {
m_predicate = p;
}
/**
* Get the negated predicate.
* @return the negated predicate
*/
public Predicate getPredicate() {
return m_predicate;
}
/**
* @see prefuse.data.expression.Expression#getBoolean(prefuse.data.Tuple)
*/
public boolean getBoolean(Tuple t) {
return !m_predicate.getBoolean(t);
}
/**
* @see prefuse.data.expression.Expression#visit(prefuse.data.expression.ExpressionVisitor)
*/
public void visit(ExpressionVisitor v) {
v.visitExpression(this);
v.down();
m_predicate.visit(v);
v.up();
}
/**
* @see java.lang.Object#toString()
*/
public String toString() {
return "NOT "+m_predicate.toString();
}
/**
* @see prefuse.data.expression.AbstractExpression#addChildListeners()
*/
protected void addChildListeners() {
m_predicate.addExpressionListener(this);
}
/**
* @see prefuse.data.expression.AbstractExpression#removeChildListeners()
*/
protected void removeChildListeners() {
m_predicate.removeExpressionListener(this);
}
} // end of class NotPredicate