Add ProviderManager & get Provider Type
This commit is contained in:
parent
fff4188ec5
commit
f0f22dae94
4 changed files with 49 additions and 5 deletions
Binary file not shown.
|
@ -23,6 +23,7 @@ import javax.tools.FileObject;
|
||||||
import javax.tools.StandardLocation;
|
import javax.tools.StandardLocation;
|
||||||
|
|
||||||
import dev.peerat.mapping.providers.Provider;
|
import dev.peerat.mapping.providers.Provider;
|
||||||
|
import dev.peerat.mapping.providers.ProviderManager;
|
||||||
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;
|
||||||
|
@ -33,6 +34,7 @@ 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.Value;
|
import dev.peerat.parser.java.Value;
|
||||||
|
import dev.peerat.parser.java.Value.InstanceValue;
|
||||||
import dev.peerat.parser.java.operation.ReturnOperation;
|
import dev.peerat.parser.java.operation.ReturnOperation;
|
||||||
|
|
||||||
public class TreasureProcessor extends AbstractProcessor{
|
public class TreasureProcessor extends AbstractProcessor{
|
||||||
|
@ -68,12 +70,21 @@ public class TreasureProcessor extends AbstractProcessor{
|
||||||
}
|
}
|
||||||
Provider provider = null;
|
Provider provider = null;
|
||||||
for(Entry<File, JavaFile> classes : map.entrySet()){
|
for(Entry<File, JavaFile> classes : map.entrySet()){
|
||||||
List<Value> values = new ArrayList<>();
|
List<InstanceValue> values = new ArrayList<>();
|
||||||
classes.getValue().findAll((e) -> e instanceof Value, values);
|
classes.getValue().findAll((e) -> {
|
||||||
if(values.size() < 1) continue;
|
if(e instanceof InstanceValue){
|
||||||
// annotations.forEach((a) -> roundEnv.getElementsAnnotatedWith(a).forEach((e) -> processingEnv.getMessager().printMessage(Kind.ERROR, classes.getKey().getName()+" | "+values, e)));
|
InstanceValue iv = (InstanceValue)e;
|
||||||
//ship
|
return iv.getToken().getValue().equals("Ship()"); //can also be dev.peerat.mapping.Ship
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
|
}, values);
|
||||||
|
if(values.size() < 1) continue;
|
||||||
|
InstanceValue ship = (InstanceValue)values.get(0);
|
||||||
|
String providerType = ship.getParameters().get(0).getToken().getValue();
|
||||||
|
provider = ProviderManager.getInstance().getProvider(providerType);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(provider == null) return false;
|
||||||
|
|
||||||
for(Entry<File, JavaFile> classes : map.entrySet()){
|
for(Entry<File, JavaFile> classes : map.entrySet()){
|
||||||
Class treasure = classes.getValue().find((element) -> {
|
Class treasure = classes.getValue().find((element) -> {
|
||||||
|
|
28
src/dev/peerat/mapping/providers/ProviderManager.java
Normal file
28
src/dev/peerat/mapping/providers/ProviderManager.java
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
package dev.peerat.mapping.providers;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class ProviderManager{
|
||||||
|
|
||||||
|
private static final ProviderManager SINGLETON = new ProviderManager();
|
||||||
|
|
||||||
|
public static ProviderManager getInstance(){
|
||||||
|
return SINGLETON;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Map<String, Provider> providers;
|
||||||
|
|
||||||
|
private ProviderManager(){
|
||||||
|
this.providers = new HashMap<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void register(String name, Provider provider){
|
||||||
|
this.providers.put(name, provider);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Provider getProvider(String name){
|
||||||
|
return this.providers.get(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -4,6 +4,7 @@ import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import dev.peerat.mapping.providers.Provider;
|
import dev.peerat.mapping.providers.Provider;
|
||||||
|
import dev.peerat.mapping.providers.ProviderManager;
|
||||||
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;
|
||||||
|
@ -11,9 +12,13 @@ import dev.peerat.parser.java.operation.ReturnOperation;
|
||||||
|
|
||||||
public class MySQlProvider implements Provider{
|
public class MySQlProvider implements Provider{
|
||||||
|
|
||||||
|
static{
|
||||||
|
ProviderManager.getInstance().register("mysql", new MySQlProvider());
|
||||||
|
}
|
||||||
|
|
||||||
private List<String> treasures;
|
private List<String> treasures;
|
||||||
|
|
||||||
public MySQlProvider(){
|
private MySQlProvider(){
|
||||||
this.treasures = new ArrayList<>();
|
this.treasures = new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue