package dev.peerat.parser.java.value; import java.util.List; import java.util.function.Function; import dev.peerat.parser.java.JavaElement; import dev.peerat.parser.visitor.Visitor; import dev.peerat.parser.visitor.VisitorBag; public class TriValue extends Value{ private Value check; private Value success; private Value fail; public TriValue(Value check, Value success, Value fail){ this.check = check; this.success = success; this.fail = fail; } public Value getChecker(){ return check; } public Value success(){ return success; } public Value fail(){ return fail; } @Override public E find(Function finder) { return null; } @Override public void findAll(Function finder, List list) { } @Override public String toString(){ return "[TriValue] "+check+" ? "+success+" : "+fail; } @Override public VisitorBag visit(Visitor visitor) { if(visitor.canVisit(getClass())) return visitor.visit(this); VisitorBag bag = new VisitorBag(); bag.merge(check.visit(visitor)); bag.merge(success.visit(visitor)); bag.merge(fail.visit(visitor)); return bag; } }