77 lines
2.6 KiB
Java
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
|
|
*
|
|
*
|
|
*/
|
|
|
|
}
|