peer-at-code-parser-java/src/dev/peerat/parser/java/operation/ThrowOperation.java

45 lines
1.1 KiB
Java

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 extends JavaElement> E find(Predicate<JavaElement> finder) {
return finder.test(value) ? (E)value : null;
}
@Override
public <E extends JavaElement> void findAll(Predicate<JavaElement> finder, Collection<E> collector) {
if(finder.test(value)) collector.add((E) value);
value.findAll(finder, collector);
}
@Override
public VisitorBag visit(Visitor<JavaElement> visitor) {
if(visitor.canVisit(getClass())) return visitor.visit(this);
VisitorBag bag = new VisitorBag();
bag.merge(this.value.visit(visitor));
return bag;
}
}