}
context.add(c);
}
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 {