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; * 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; * Vérifier si une méthode est override par au moins par 2 sous-classes * * */ }