}
return new Predicate<Object>(i);
} else if (condition instanceof IsNullExpr) {
return new Predicate<Object>(IsNullCondition.INSTANCE);
} else if (condition instanceof RegexExpr) {
return new Predicate<String>(new RegexCondition(((RegexExpr) condition).getPattern()));
}
throw new IllegalStateException("Unexpected condition type: " + condition);
}