package er.neo4jadaptor.query.neo4j_eval.evaluators;
import org.neo4j.graphdb.PropertyContainer;
import er.neo4jadaptor.query.neo4j_eval.Cost;
/**
* Positively evaluates only candidates that do NOT match some other evaluator, making it logical negation.
*
* @author Jedrzej Sobanski
*
* @param <T>
*/
public final class Negate<T extends PropertyContainer> implements Evaluator<T> {
private final Evaluator<T> wrapped;
public Negate(Evaluator<T> wrapped) {
this.wrapped = wrapped;
}
public boolean evaluate(T candidate) {
return ! wrapped.evaluate(candidate);
}
public Cost getCost() {
return wrapped.getCost();
}
}