diff --git a/PeerAtCodeParser.jar b/PeerAtCodeParser.jar index 076c095..8e52e49 100644 Binary files a/PeerAtCodeParser.jar and b/PeerAtCodeParser.jar differ diff --git a/src/dev/peerat/mapping/TreasureProcessor.java b/src/dev/peerat/mapping/TreasureProcessor.java index 99bb162..c217123 100644 --- a/src/dev/peerat/mapping/TreasureProcessor.java +++ b/src/dev/peerat/mapping/TreasureProcessor.java @@ -33,7 +33,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.Value; import dev.peerat.parser.java.Value.InstanceValue; import dev.peerat.parser.java.operation.ReturnOperation; @@ -105,7 +104,7 @@ public class TreasureProcessor extends AbstractProcessor{ }); if(treasure != null){ provider.mapTreasure(treasure); - annotations.forEach((a) -> roundEnv.getElementsAnnotatedWith(a).forEach((e) -> processingEnv.getMessager().printMessage(Kind.ERROR, classes.getKey().getName(), e))); +// annotations.forEach((a) -> roundEnv.getElementsAnnotatedWith(a).forEach((e) -> processingEnv.getMessager().printMessage(Kind.ERROR, classes.getKey().getName(), e))); List seaBottles = new ArrayList<>(); treasure.findAll((element) -> { if(element instanceof Function){ diff --git a/src/dev/peerat/mapping/providers/mysql/MySQLRequestBuilder.java b/src/dev/peerat/mapping/providers/mysql/MySQLRequestBuilder.java new file mode 100644 index 0000000..8faa755 --- /dev/null +++ b/src/dev/peerat/mapping/providers/mysql/MySQLRequestBuilder.java @@ -0,0 +1,34 @@ +package dev.peerat.mapping.providers.mysql; + +import java.util.List; + +import dev.peerat.parser.java.Value.MethodCallValue; + +public class MySQLRequestBuilder{ + + private List calls; + private String select; + private String from; + + public MySQLRequestBuilder(List calls){ + this.calls = calls; + } + + private String toStringOperation(MethodCallValue value){ + String method = value.getToken().getValue(); + if(method.equals("selectAll()")){ + return "SELECT *"; + } + if(method.equals("select()")){ + throw new RuntimeException(value.getParameters().get(0)+""); +// return "SELECT "; + } + + return null; + } + + public void build(){ + this.select = toStringOperation(calls.get(0)); + } + +} diff --git a/src/dev/peerat/mapping/providers/mysql/MySQlProvider.java b/src/dev/peerat/mapping/providers/mysql/MySQlProvider.java index 57fe5c4..d8557f9 100644 --- a/src/dev/peerat/mapping/providers/mysql/MySQlProvider.java +++ b/src/dev/peerat/mapping/providers/mysql/MySQlProvider.java @@ -2,6 +2,7 @@ package dev.peerat.mapping.providers.mysql; import java.io.File; import java.util.ArrayList; +import java.util.LinkedList; import java.util.List; import dev.peerat.mapping.providers.Provider; @@ -9,6 +10,7 @@ import dev.peerat.mapping.providers.ProviderManager; import dev.peerat.parser.java.Class; import dev.peerat.parser.java.Function; import dev.peerat.parser.java.Value; +import dev.peerat.parser.java.Value.MethodCallValue; import dev.peerat.parser.java.operation.ReturnOperation; public class MySQLProvider implements Provider{ @@ -38,7 +40,18 @@ public class MySQLProvider implements Provider{ public void mapBottle(Class clazz, Function function){ ReturnOperation operation = (ReturnOperation) function.getElements().get(0); Value value = operation.getValue(); - throw new IllegalArgumentException(value.toString()); + if(value instanceof MethodCallValue){ + MethodCallValue call = (MethodCallValue)value; + throw new RuntimeException(clazz.getName().getValue()+" - "+call); + /*List list = new LinkedList<>(); + while(call.base() instanceof MethodCallValue){ + list.add(0, call); + call = (MethodCallValue) call.base(); + } + list.add(0, call); + MySQLRequestBuilder builder = new MySQLRequestBuilder(list); + builder.build();*/ + } } @Override