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.StandardLocation;
|
||||
|
||||
import dev.peerat.mapping.providers.Provider;
|
||||
import dev.peerat.parser.ElementBuilder.Builder;
|
||||
import dev.peerat.parser.Parser;
|
||||
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.JavaFile;
|
||||
import dev.peerat.parser.java.JavaParser;
|
||||
import dev.peerat.parser.java.Operation;
|
||||
import dev.peerat.parser.java.Value;
|
||||
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)));
|
||||
}
|
||||
}
|
||||
Provider provider = null;
|
||||
for(Entry<File, JavaFile> classes : map.entrySet()){
|
||||
List<Operation> values = new ArrayList<>();
|
||||
classes.getValue().findAll((e) -> e instanceof Operation, values);
|
||||
List<Value> values = new ArrayList<>();
|
||||
classes.getValue().findAll((e) -> e instanceof Value, values);
|
||||
if(values.size() < 1) continue;
|
||||
// annotations.forEach((a) -> roundEnv.getElementsAnnotatedWith(a).forEach((e) -> processingEnv.getMessager().printMessage(Kind.ERROR, classes.getKey().getName()+" | "+values, e)));
|
||||
//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;
|
||||
}
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@ package dev.peerat.mapping.providers;
|
|||
import dev.peerat.parser.java.Class;
|
||||
import dev.peerat.parser.java.Function;
|
||||
|
||||
public interface ProviderMapper{
|
||||
public interface Provider{
|
||||
|
||||
void mapTreasure(Class clazz);
|
||||
|
|
@ -3,13 +3,13 @@ package dev.peerat.mapping.providers.mysql;
|
|||
import java.util.ArrayList;
|
||||
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.Function;
|
||||
import dev.peerat.parser.java.Value;
|
||||
import dev.peerat.parser.java.operation.ReturnOperation;
|
||||
|
||||
public class MySQlProvider implements ProviderMapper{
|
||||
public class MySQlProvider implements Provider{
|
||||
|
||||
private List<String> treasures;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue