AST findAll....with recursivity.............
This commit is contained in:
parent
33cb38b9ba
commit
d93c8c0f93
20 changed files with 107 additions and 5 deletions
|
@ -67,6 +67,7 @@ public class Annotation extends JavaElement{
|
|||
public <E extends JavaElement> void findAll(Function<JavaElement, Boolean> finder, List<E> list){
|
||||
for(Value value : this.values.values()){
|
||||
if(finder.apply(value)) list.add((E)value);
|
||||
value.findAll(finder, list);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -95,11 +95,13 @@ public class AnnotationClass extends ClassBase{
|
|||
if(annotations != null){
|
||||
for(Annotation annotation : this.annotations){
|
||||
if(finder.apply(annotation)) list.add((E) annotation);
|
||||
annotation.findAll(finder, list);
|
||||
}
|
||||
}
|
||||
if(elements != null){
|
||||
for(JavaElement element : this.elements){
|
||||
if(finder.apply(element)) list.add((E) element);
|
||||
element.findAll(finder, list);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -110,11 +110,13 @@ public class Class extends ClassBase{
|
|||
if(annotations != null){
|
||||
for(Annotation annotation : this.annotations){
|
||||
if(finder.apply(annotation)) list.add((E) annotation);
|
||||
annotation.findAll(finder, list);
|
||||
}
|
||||
}
|
||||
if(elements != null){
|
||||
for(JavaElement element : this.elements){
|
||||
if(finder.apply(element)) list.add((E) element);
|
||||
element.findAll(finder, list);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -100,11 +100,13 @@ public class Enumeration extends ClassBase{
|
|||
if(annotations != null){
|
||||
for(Annotation annotation : this.annotations){
|
||||
if(finder.apply(annotation)) list.add((E) annotation);
|
||||
annotation.findAll(finder, list);
|
||||
}
|
||||
}
|
||||
if(elements != null){
|
||||
for(JavaElement element : this.elements){
|
||||
if(finder.apply(element)) list.add((E) element);
|
||||
element.findAll(finder, list);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -152,16 +152,19 @@ public class Function extends JavaElement implements VariableContainer, Operatio
|
|||
if(annotations != null){
|
||||
for(Annotation annotation : this.annotations){
|
||||
if(finder.apply(annotation)) list.add((E) annotation);
|
||||
annotation.findAll(finder, list);
|
||||
}
|
||||
}
|
||||
if(parameters != null){
|
||||
for(Variable param : this.parameters){
|
||||
if(finder.apply(param)) list.add((E) param);
|
||||
param.findAll(finder, list);
|
||||
}
|
||||
}
|
||||
if(elements != null){
|
||||
for(JavaElement content : this.elements){
|
||||
if(finder.apply(content)) list.add((E) content);
|
||||
content.findAll(finder, list);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -100,11 +100,13 @@ public class Interface extends ClassBase{
|
|||
if(annotations != null){
|
||||
for(Annotation annotation : this.annotations){
|
||||
if(finder.apply(annotation)) list.add((E) annotation);
|
||||
annotation.findAll(finder, list);
|
||||
}
|
||||
}
|
||||
if(elements != null){
|
||||
for(JavaElement element : this.elements){
|
||||
if(finder.apply(element)) list.add((E) element);
|
||||
element.findAll(finder, list);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -96,8 +96,10 @@ public class JavaFile extends JavaElement implements ClassContainer, AnnotableBu
|
|||
@Override
|
||||
public <E extends JavaElement> void findAll(Function<JavaElement, Boolean> finder, List<E> list){
|
||||
if(finder.apply(mainClazz)) list.add((E) mainClazz);
|
||||
mainClazz.findAll(finder, list);
|
||||
for(ClassBase clazz : subClazz){
|
||||
if(finder.apply(clazz)) list.add((E) clazz);
|
||||
clazz.findAll(finder, list);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -49,7 +49,10 @@ public class Value extends JavaElement{
|
|||
|
||||
@Override
|
||||
public <E extends JavaElement> void findAll(Function<JavaElement, Boolean> finder, List<E> list) {
|
||||
if(content != null && finder.apply(content)) list.add((E) content);
|
||||
if(content != null){
|
||||
if(finder.apply(content)) list.add((E) content);
|
||||
content.findAll(finder, list);
|
||||
}
|
||||
}
|
||||
|
||||
public static class BiValue extends Value{
|
||||
|
@ -96,7 +99,9 @@ public class Value extends JavaElement{
|
|||
@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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -137,8 +142,11 @@ public class Value extends JavaElement{
|
|||
@Override
|
||||
public <E extends JavaElement> void findAll(Function<JavaElement, Boolean> finder, List<E> list){
|
||||
if(finder.apply(check)) list.add((E)check);
|
||||
check.findAll(finder, list);
|
||||
if(finder.apply(success)) list.add((E)success);
|
||||
success.findAll(finder, list);
|
||||
if(finder.apply(fail)) list.add((E)fail);
|
||||
fail.findAll(finder, list);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -103,8 +103,12 @@ public class Variable extends JavaElement{
|
|||
if(annotations != null){
|
||||
for(Annotation annotation : this.annotations){
|
||||
if(finder.apply(annotation)) list.add((E)annotation);
|
||||
annotation.findAll(finder, list);
|
||||
}
|
||||
}
|
||||
if(value != null && finder.apply(value)) list.add((E)value);
|
||||
if(value != null){
|
||||
if(finder.apply(value)) list.add((E)value);
|
||||
value.findAll(finder, list);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -40,6 +40,8 @@ public class AssignOperation extends Operation{
|
|||
@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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -60,4 +60,26 @@ public class ForOperation extends OperationBag{
|
|||
}
|
||||
return super.find(finder);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <E extends JavaElement> void findAll(Function<JavaElement, Boolean> finder, List<E> list){
|
||||
if(init_vars != null){
|
||||
for(Variable variable : this.init_vars){
|
||||
if(finder.apply(variable)) list.add((E)variable);
|
||||
variable.findAll(finder, list);
|
||||
}
|
||||
}
|
||||
if(init_values != null){
|
||||
for(Value value : this.init_values){
|
||||
if(finder.apply(value)) list.add((E)value);
|
||||
value.findAll(finder, list);
|
||||
}
|
||||
}
|
||||
if(finder.apply(condition)) list.add((E)condition);
|
||||
for(Value value : this.updates){
|
||||
if(finder.apply(value)) list.add((E)value);
|
||||
value.findAll(finder, list);
|
||||
}
|
||||
super.findAll(finder, list);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package dev.peerat.parser.java.operation;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.function.Function;
|
||||
|
||||
import dev.peerat.parser.Token;
|
||||
|
@ -37,4 +38,11 @@ public class ForeachOperation extends OperationBag{
|
|||
if(finder.apply(iterator)) return (E)iterator;
|
||||
return super.find(finder);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <E extends JavaElement> void findAll(Function<JavaElement, Boolean> finder, List<E> list){
|
||||
if(finder.apply(iterator)) list.add((E)iterator);
|
||||
iterator.findAll(finder, list);
|
||||
super.findAll(finder, list);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package dev.peerat.parser.java.operation;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.function.Function;
|
||||
|
||||
import dev.peerat.parser.java.JavaElement;
|
||||
|
@ -22,4 +23,11 @@ public class IfOperation extends OperationBag{
|
|||
if(finder.apply(condition)) return (E)condition;
|
||||
return super.find(finder);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <E extends JavaElement> void findAll(Function<JavaElement, Boolean> finder, List<E> list){
|
||||
if(finder.apply(condition)) list.add((E)condition);
|
||||
condition.findAll(finder, list);
|
||||
super.find(finder);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -57,9 +57,14 @@ public class MethodCallOperation extends Operation{
|
|||
@Override
|
||||
public <E extends JavaElement> void findAll(Function<JavaElement, Boolean> finder, List<E> list){
|
||||
if(finder.apply(start)) list.add((E)start);
|
||||
if(previous != null) if(finder.apply(previous)) list.add((E) previous);
|
||||
start.findAll(finder, list);
|
||||
if(previous != null){
|
||||
if(finder.apply(previous)) list.add((E) previous);
|
||||
previous.findAll(finder, list);
|
||||
}
|
||||
for(Value param : this.parameters){
|
||||
if(finder.apply(param)) list.add((E)param);
|
||||
param.findAll(finder, list);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -43,6 +43,7 @@ public class OperationBag extends Operation implements VariableContainer, Operat
|
|||
if(elements != null){
|
||||
for(JavaElement element : this.elements){
|
||||
if(finder.apply(element)) list.add((E)element);
|
||||
element.findAll(finder, list);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -31,6 +31,9 @@ public class ReturnOperation extends Operation{
|
|||
|
||||
@Override
|
||||
public <E extends JavaElement> void findAll(Function<JavaElement, Boolean> finder, List<E> list){
|
||||
if(value != null && finder.apply(value)) list.add((E) value);
|
||||
if(value != null){
|
||||
if(finder.apply(value)) list.add((E) value);
|
||||
value.findAll(finder, list);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package dev.peerat.parser.java.operation;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.function.Function;
|
||||
|
||||
import dev.peerat.parser.java.JavaElement;
|
||||
|
@ -23,4 +24,11 @@ public class SynchronizedOperation extends OperationBag{
|
|||
if(finder.apply(value)) return (E)value;
|
||||
return super.find(finder);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <E extends JavaElement> void findAll(Function<JavaElement, Boolean> finder, List<E> list){
|
||||
if(finder.apply(value)) list.add((E)value);
|
||||
value.findAll(finder, list);
|
||||
super.findAll(finder, list);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -33,6 +33,7 @@ public class ThrowOperation extends Operation{
|
|||
@Override
|
||||
public <E extends JavaElement> void findAll(Function<JavaElement, Boolean> finder, List<E> list){
|
||||
if(finder.apply(value)) list.add((E) value);
|
||||
value.findAll(finder, list);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package dev.peerat.parser.java.operation;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.function.Function;
|
||||
|
||||
import dev.peerat.parser.java.JavaElement;
|
||||
|
@ -26,4 +27,13 @@ public class TryOperation extends OperationBag{
|
|||
public <E extends JavaElement> E find(Function<JavaElement, Boolean> finder){
|
||||
return resource != null ? finder.apply(resource) ? (E)resource : super.find(finder) : super.find(finder);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <E extends JavaElement> void findAll(Function<JavaElement, Boolean> finder, List<E> list){
|
||||
if(resource != null){
|
||||
if(finder.apply(resource)) list.add((E) resource);
|
||||
resource.findAll(finder, list);
|
||||
}
|
||||
super.findAll(finder, list);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package dev.peerat.parser.java.operation;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.function.Function;
|
||||
|
||||
import dev.peerat.parser.java.JavaElement;
|
||||
|
@ -13,7 +14,7 @@ public class WhileOperation extends OperationBag{
|
|||
this.condition = condition;
|
||||
}
|
||||
|
||||
public Value getCondition(){
|
||||
public Value getCondition(){s
|
||||
return this.condition;
|
||||
}
|
||||
|
||||
|
@ -22,4 +23,11 @@ public class WhileOperation extends OperationBag{
|
|||
if(finder.apply(condition)) return (E)condition;
|
||||
return super.find(finder);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <E extends JavaElement> void findAll(Function<JavaElement, Boolean> finder, List<E> list){
|
||||
if(finder.apply(condition)) list.add((E) condition);
|
||||
condition.findAll(finder, list);
|
||||
super.findAll(finder, list);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue