From 5b6da187cc233d91af9d23116d8f91340905cb95 Mon Sep 17 00:00:00 2001 From: jeffcheasey88 <66554203+jeffcheasey88@users.noreply.github.com> Date: Mon, 20 Nov 2023 14:42:47 +0100 Subject: [PATCH] [SQL Generator] select --- .../providers/mysql/MySQLRequestBuilder.java | 16 ++++++++++++++-- .../mapping/providers/mysql/MySQlProvider.java | 5 ++--- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/dev/peerat/mapping/providers/mysql/MySQLRequestBuilder.java b/src/dev/peerat/mapping/providers/mysql/MySQLRequestBuilder.java index 8faa755..1d0fe96 100644 --- a/src/dev/peerat/mapping/providers/mysql/MySQLRequestBuilder.java +++ b/src/dev/peerat/mapping/providers/mysql/MySQLRequestBuilder.java @@ -1,7 +1,10 @@ package dev.peerat.mapping.providers.mysql; +import java.util.ArrayList; import java.util.List; +import dev.peerat.parser.java.Value; +import dev.peerat.parser.java.Value.LambdaValue; import dev.peerat.parser.java.Value.MethodCallValue; public class MySQLRequestBuilder{ @@ -20,8 +23,16 @@ public class MySQLRequestBuilder{ return "SELECT *"; } if(method.equals("select()")){ - throw new RuntimeException(value.getParameters().get(0)+""); -// return "SELECT "; + LambdaValue include = (LambdaValue) value.getParameters().get(0); + MethodCallValue keep = (MethodCallValue)include.getOperations().get(0); + List binds = new ArrayList<>(); + for(Value param : keep.getParameters()){ + binds.add(param.getToken().getValue()); + } + String result = ""; //optimise with iterator + for(String bind : binds) result+=","+bind; + result=result.substring(1); + return "SELECT "+result; } return null; @@ -29,6 +40,7 @@ public class MySQLRequestBuilder{ public void build(){ this.select = toStringOperation(calls.get(0)); + throw new RuntimeException(this.select); } } diff --git a/src/dev/peerat/mapping/providers/mysql/MySQlProvider.java b/src/dev/peerat/mapping/providers/mysql/MySQlProvider.java index d8557f9..d0b0961 100644 --- a/src/dev/peerat/mapping/providers/mysql/MySQlProvider.java +++ b/src/dev/peerat/mapping/providers/mysql/MySQlProvider.java @@ -42,15 +42,14 @@ public class MySQLProvider implements Provider{ Value value = operation.getValue(); if(value instanceof MethodCallValue){ MethodCallValue call = (MethodCallValue)value; - throw new RuntimeException(clazz.getName().getValue()+" - "+call); - /*List list = new LinkedList<>(); + 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();*/ + builder.build(); } }