Bind Treasures, SeaBottle and uses
This commit is contained in:
parent
cae620d11f
commit
fff4188ec5
4 changed files with 55 additions and 6 deletions
Binary file not shown.
|
@ -22,6 +22,7 @@ import javax.tools.Diagnostic.Kind;
|
||||||
import javax.tools.FileObject;
|
import javax.tools.FileObject;
|
||||||
import javax.tools.StandardLocation;
|
import javax.tools.StandardLocation;
|
||||||
|
|
||||||
|
import dev.peerat.mapping.providers.Provider;
|
||||||
import dev.peerat.parser.ElementBuilder.Builder;
|
import dev.peerat.parser.ElementBuilder.Builder;
|
||||||
import dev.peerat.parser.Parser;
|
import dev.peerat.parser.Parser;
|
||||||
import dev.peerat.parser.TokenValidator;
|
import dev.peerat.parser.TokenValidator;
|
||||||
|
@ -31,7 +32,6 @@ import dev.peerat.parser.java.Function;
|
||||||
import dev.peerat.parser.java.JavaElement;
|
import dev.peerat.parser.java.JavaElement;
|
||||||
import dev.peerat.parser.java.JavaFile;
|
import dev.peerat.parser.java.JavaFile;
|
||||||
import dev.peerat.parser.java.JavaParser;
|
import dev.peerat.parser.java.JavaParser;
|
||||||
import dev.peerat.parser.java.Operation;
|
|
||||||
import dev.peerat.parser.java.Value;
|
import dev.peerat.parser.java.Value;
|
||||||
import dev.peerat.parser.java.operation.ReturnOperation;
|
import dev.peerat.parser.java.operation.ReturnOperation;
|
||||||
|
|
||||||
|
@ -66,13 +66,62 @@ public class TreasureProcessor extends AbstractProcessor{
|
||||||
annotations.forEach((a) -> roundEnv.getElementsAnnotatedWith(a).forEach((e) -> processingEnv.getMessager().printMessage(Kind.ERROR, ex.getMessage(), e)));
|
annotations.forEach((a) -> roundEnv.getElementsAnnotatedWith(a).forEach((e) -> processingEnv.getMessager().printMessage(Kind.ERROR, ex.getMessage(), e)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Provider provider = null;
|
||||||
for(Entry<File, JavaFile> classes : map.entrySet()){
|
for(Entry<File, JavaFile> classes : map.entrySet()){
|
||||||
List<Operation> values = new ArrayList<>();
|
List<Value> values = new ArrayList<>();
|
||||||
classes.getValue().findAll((e) -> e instanceof Operation, values);
|
classes.getValue().findAll((e) -> e instanceof Value, values);
|
||||||
if(values.size() < 1) continue;
|
if(values.size() < 1) continue;
|
||||||
// annotations.forEach((a) -> roundEnv.getElementsAnnotatedWith(a).forEach((e) -> processingEnv.getMessager().printMessage(Kind.ERROR, classes.getKey().getName()+" | "+values, e)));
|
// annotations.forEach((a) -> roundEnv.getElementsAnnotatedWith(a).forEach((e) -> processingEnv.getMessager().printMessage(Kind.ERROR, classes.getKey().getName()+" | "+values, e)));
|
||||||
//ship
|
//ship
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for(Entry<File, JavaFile> classes : map.entrySet()){
|
||||||
|
Class treasure = classes.getValue().find((element) -> {
|
||||||
|
if(element instanceof Class){
|
||||||
|
Class c = (Class)element;
|
||||||
|
return c.hasAnnotation((annotation) -> annotation.getName().getValue().equals("Treasure")); //can also be dev.peerat.mapping.Treasure
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
if(treasure != null){
|
||||||
|
provider.mapTreasure(treasure);
|
||||||
|
List<Function> seaBottles = new ArrayList<>();
|
||||||
|
treasure.findAll((element) -> {
|
||||||
|
if(element instanceof Function){
|
||||||
|
Function function = (Function)element;
|
||||||
|
return function.hasAnnotation((annotation) -> annotation.getName().getValue().equals("SeaBottle")); //can also be dev.peerat.mapping.SeaBottle
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}, null);
|
||||||
|
for(Function function : seaBottles){
|
||||||
|
provider.mapBottle(treasure, function);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for(Entry<File, JavaFile> classes : map.entrySet()){
|
||||||
|
List<Class> noTreasures = new ArrayList<>();
|
||||||
|
classes.getValue().findAll((element) -> {
|
||||||
|
if(element instanceof Class){
|
||||||
|
Class c = (Class)element;
|
||||||
|
return c.hasAnnotation((annotation) -> annotation.getName().getValue().equals("Treasure")); //can also be dev.peerat.mapping.Treasure
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}, noTreasures);
|
||||||
|
for(Class clazz : noTreasures){
|
||||||
|
List<Function> functions = new ArrayList<>();
|
||||||
|
clazz.findAll((element) -> {
|
||||||
|
if(element instanceof Function){
|
||||||
|
Function function = (Function)element;
|
||||||
|
return function.hasAnnotation((annotation) -> annotation.getName().getValue().equals("SeaBottle")); //can also be dev.peerat.mapping.SeaBottle
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}, functions);
|
||||||
|
for(Function function : functions){
|
||||||
|
provider.mapUses(clazz, function);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@ package dev.peerat.mapping.providers;
|
||||||
import dev.peerat.parser.java.Class;
|
import dev.peerat.parser.java.Class;
|
||||||
import dev.peerat.parser.java.Function;
|
import dev.peerat.parser.java.Function;
|
||||||
|
|
||||||
public interface ProviderMapper{
|
public interface Provider{
|
||||||
|
|
||||||
void mapTreasure(Class clazz);
|
void mapTreasure(Class clazz);
|
||||||
|
|
|
@ -3,13 +3,13 @@ package dev.peerat.mapping.providers.mysql;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import dev.peerat.mapping.providers.ProviderMapper;
|
import dev.peerat.mapping.providers.Provider;
|
||||||
import dev.peerat.parser.java.Class;
|
import dev.peerat.parser.java.Class;
|
||||||
import dev.peerat.parser.java.Function;
|
import dev.peerat.parser.java.Function;
|
||||||
import dev.peerat.parser.java.Value;
|
import dev.peerat.parser.java.Value;
|
||||||
import dev.peerat.parser.java.operation.ReturnOperation;
|
import dev.peerat.parser.java.operation.ReturnOperation;
|
||||||
|
|
||||||
public class MySQlProvider implements ProviderMapper{
|
public class MySQlProvider implements Provider{
|
||||||
|
|
||||||
private List<String> treasures;
|
private List<String> treasures;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue