package org.multiverse.api.predicates;
/**
* A predicate that checks if some value leads to true or false.
*
* @author Peter Veentjer.
*/
public abstract class LongPredicate implements Predicate<Long>{
public static LongPredicate newEqualsPredicate(final long value) {
return new LongPredicate() {
@Override
public boolean evaluate(final long current) {
return current == value;
}
};
}
public static LongPredicate newNotEqualsPredicate(final long value) {
return new LongPredicate() {
@Override
public boolean evaluate(final long current) {
return current != value;
}
};
}
public static LongPredicate newLargerThanPredicate(final long value) {
return new LongPredicate() {
@Override
public boolean evaluate(final long current) {
return current > value;
}
};
}
public static LongPredicate newLargerThanOrEqualsPredicate(final long value) {
return new LongPredicate() {
@Override
public boolean evaluate(final long current) {
return current >= value;
}
};
}
public static LongPredicate newSmallerThanPredicate(final long value) {
return new LongPredicate() {
@Override
public boolean evaluate(final long current) {
return current < value;
}
};
}
public static LongPredicate newSmallerThanOrEqualsPredicate(final long value) {
return new LongPredicate() {
@Override
public boolean evaluate(final long current) {
return current <= value;
}
};
}
/**
* Evaluates the predicate
*
* @param current the current value.
* @return true or false.
*/
public abstract boolean evaluate(long current);
@Override
public final boolean evaluate(Long arg) {
return evaluate((long) arg);
}
}