package dev.peerat.parser.java.operation; import java.util.List; import java.util.function.Function; import dev.peerat.parser.java.JavaElement; import dev.peerat.parser.java.value.Value; import dev.peerat.parser.java.visitor.JavaVisitor; import dev.peerat.parser.visitor.VisitorBag; public class IfOperation extends OperationBag{ private Value condition; public IfOperation(Value condition){ super(); this.condition = condition; } public Value getCondition(){ return this.condition; } @Override public E find(Function finder){ if(finder.apply(condition)) return (E)condition; return super.find(finder); } @Override public void findAll(Function finder, List list){ if(finder.apply(condition)) list.add((E)condition); condition.findAll(finder, list); super.findAll(finder, list); } @Override public void build(Builder builder) throws Exception { } @Override public VisitorBag visit(JavaVisitor visitor) { if(visitor.canVisit(getClass())) return visitor.visit(this); VisitorBag bag = new VisitorBag(); bag.merge(condition.visit(visitor)); bag.merge(super.visit(visitor)); return bag; } }