peer-at-code-parser-java/test/dev/peerat/parser/java/browser/BrowserLambdaTests.java
2025-02-26 23:56:51 +01:00

77 lines
2.6 KiB
Java

package dev.peerat.parser.java.browser;
import java.lang.reflect.Modifier;
import org.junit.jupiter.api.Test;
import dev.peerat.parser.java.JavaFile;
import dev.peerat.parser.java.JavaParser;
import dev.peerat.parser.java.Class;
public class BrowserLambdaTests{
@Test
void main(){
try{
JavaParser parser = new JavaParser();
JavaFile javaFile = new JavaFile();
parser.parse("package be.jeffcheasey88; public class Test{ public Test(){} public void test(){} }", javaFile);
Class clazz = (Class) javaFile.getMainClass();
System.out.println(clazz);
clazz.stream().functionFilter((func) -> func.getName().getValue().equals("test"));
}catch(Exception ex){
ex.printStackTrace();
}
}
@Test
void findVariableGetterSetter(){
try{
JavaParser parser = new JavaParser();
JavaFile javaFile = new JavaFile();
parser.parse("package be.jeffcheasey88; public class Test{ private boolean isActive; public boolean isActive(){ return isActive;} public void setActive(boolean active){ isActive = active; } }", javaFile);
Class clazz = (Class) javaFile.getMainClass();
System.out.println(clazz);
clazz.stream().variableFilter((v) -> Modifier.isPrivate(v.getModifier()));
}catch(Exception ex){
ex.printStackTrace();
}
}
/**
*
* Récupérer la liste des constructeurs
* clazz.stream().functionFilter((func) -> func.isConstructor());
* Récupérer la liste des variables privée ainsi que leurs getter/setter
* clazz.stream().variableFilter((variable) -> variable.isPrivate()).pair((clazzStreamble, variable) clazzStreamable.functionFilter(func) -> func.getName().endsWith(variable.getName()));
* Récupérer les annotations de n'importe quel type d'element et check si toutes les variables de l'annotation sont override
* findAnnotation(true)
* pair(
* (annotation) -> findAnnotationClass((clazz) -> clazz.getName().equals(annotation.getName()))
* )
*
* return Map<Annotation, AnnotationClass>;
* Récupérer toutes les méthodes qui ne font pas un return de l'un de leurs paramètres
* findFunction(func -> !func.isConstructor())
* .findReturnOperation((func, operation) -> !func.getVariableNames().contains(operation.getVariableName()))
* .parent()
* Vérifier si une variable définie dans la class est utilisée quelque part dans celle-ci.
* findVariables((v) -> true)
* pair(
* (variable) -> findStaticValue((value) -> value.getToken().getValue().equals(variable.getName()))
* )
*
* return Map<Variable, Value>;
* Vérifier si une méthode est override par au moins par 2 sous-classes
*
*
*/
}