package dev.peerat.parser.java.operation; import java.util.Collection; import java.util.List; import java.util.function.Function; import java.util.function.Predicate; 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.Visitor; import dev.peerat.parser.visitor.VisitorBag; public class ThrowOperation extends Operation{ private Value value; public ThrowOperation(Value value){ this.value = value; } public Value getValue(){ return this.value; } @Override public E find(Predicate finder) { return finder.test(value) ? (E)value : null; } @Override public void findAll(Predicate finder, Collection collector) { if(finder.test(value)) collector.add((E) value); value.findAll(finder, collector); } @Override public VisitorBag visit(Visitor visitor) { if(visitor.canVisit(getClass())) return visitor.visit(this); VisitorBag bag = new VisitorBag(); bag.merge(this.value.visit(visitor)); return bag; } }