package com.netflix.infix.lang.infix.antlr;
import com.google.common.base.Function;
import com.google.common.base.Predicate;
import com.google.common.collect.Lists;
import com.netflix.infix.Predicates;
import org.antlr.runtime.Token;
import org.antlr.runtime.tree.Tree;
public class AndTreeNode extends PredicateBaseTreeNode implements PredicateTranslatable {
@Override
@SuppressWarnings("unchecked")
public Predicate<Object> translate() {
return Predicates.and(
Lists.transform(getChildren(), new Function<Object, Predicate<Object>>() {
@Override
public Predicate<Object> apply(Object input) {
PredicateTranslatable node = (PredicateTranslatable) input;
return node.translate();
}
})
);
}
public AndTreeNode(Token t) {
super(t);
}
public AndTreeNode(AndTreeNode node) {
super(node);
}
public Tree dupNode() {
return new AndTreeNode(this);
}
}