peer-at-code-parser-java/src/dev/peerat/parser/java/operation/AssignOperation.java
2024-03-21 11:20:06 +01:00

47 lines
1.1 KiB
Java

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.Operation;
import dev.peerat.parser.java.value.Value;
public class AssignOperation extends Operation{
private Value left;
private Value right;
public AssignOperation(Value left, Value right){
this.left = left;
this.right = right;
}
public Value left(){
return left;
}
public Value right(){
return right;
}
@Override
public void build(Builder builder) throws Exception{
left.build(builder);
builder.append("=");
right.build(builder);
}
@Override
public <E extends JavaElement> E find(Function<JavaElement, Boolean> finder){
return finder.apply(left) ? (E)left : finder.apply(right) ? (E)right : null;
}
@Override
public <E extends JavaElement> void findAll(Function<JavaElement, Boolean> finder, List<E> list){
if(finder.apply(left)) list.add((E) left);
left.findAll(finder, list);
if(finder.apply(right)) list.add((E) right);
right.findAll(finder, list);
}
}