if (context.replace) {
if (expr.getType().equals(Boolean.class)) {
Predicate predicate = new PredicateTemplate(expr.getTemplate(), args);
return !context.paths.isEmpty() ? exists(context, predicate) : predicate;
} else {
return new TemplateExpressionImpl(expr.getType(), expr.getTemplate(), ImmutableList.copyOf(args));
}
} else {
return expr;
}
}