From 1f51163e9875daf1bce6bb09d9d06ca50c9dc51b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sebastian=20Ho=C3=9F?= Date: Mon, 2 May 2022 10:55:02 +0200 Subject: [PATCH] fix build --- .../benchmark/codegen/AbstractDaggerBenchmark.java | 11 +- yosql-benchmarks/yosql-benchmarks-jdbc/pom.xml | 30 +- ...itiesGenerator.java => ConverterGenerator.java} | 10 +- .../codegen/api/DelegatingMethodsGenerator.java | 34 +- .../java/wtf/metio/yosql/codegen/api/Fields.java | 7 + .../metio/yosql/codegen/api/FieldsGenerator.java | 3 +- .../yosql/codegen/api/MutinyMethodGenerator.java | 18 + .../yosql/codegen/api/ReactorMethodGenerator.java | 18 + .../yosql/codegen/api/RxJavaMethodGenerator.java | 18 + .../yosql/codegen/blocks/DefaultCodeGenerator.java | 10 +- .../metio/yosql/codegen/blocks/DefaultFields.java | 41 +- .../codegen/blocks/GenericRepositoryGenerator.java | 8 +- .../yosql/codegen/blocks/DefaultFieldsTest.java | 41 +- .../codegen/files/DefaultMethodApiConfigurer.java | 12 - .../files/DefaultMethodApiConfigurerTest.java | 33 - .../yosql/codegen/tck/FieldsGeneratorTCK.java | 4 +- .../yosql/dao/ebean/EBeanFieldsGenerator.java | 5 +- .../dao/ebean/EBeanMutinyMethodGenerator.java | 10 + .../dao/ebean/EBeanReactorMethodGenerator.java | 10 + .../dao/ebean/EBeanRxJavaMethodGenerator.java | 10 + .../dao/fluentjdbc/FluentJdbcFieldsGenerator.java | 5 +- .../FluentJdbcMutinyMethodGenerator.java | 10 + .../FluentJdbcReactorMethodGenerator.java | 10 + .../FluentJdbcRxJavaMethodGenerator.java | 10 + .../metio/yosql/dao/jdbc/DefaultJdbcBlocks.java | 47 +- .../metio/yosql/dao/jdbc/DefaultJdbcFields.java | 49 - .../java/wtf/metio/yosql/dao/jdbc/JdbcFields.java | 20 - .../metio/yosql/dao/jdbc/JdbcFieldsGenerator.java | 19 +- .../yosql/dao/jdbc/JdbcMutinyMethodGenerator.java | 10 + .../yosql/dao/jdbc/JdbcReactorMethodGenerator.java | 10 + .../yosql/dao/jdbc/JdbcRxJavaMethodGenerator.java | 10 + ...sGenerator.java => JdbcConverterGenerator.java} | 8 +- .../yosql/dao/jdbc/JdbcFieldsGeneratorTest.java | 28 +- .../jdbc/JdbcGenericRepositoryGeneratorTest.java | 1958 ++++++++++---------- .../wtf/metio/yosql/dao/jdbc/JdbcObjectMother.java | 9 +- .../metio/yosql/dao/jdbi/JdbiFieldsGenerator.java | 5 +- .../yosql/dao/jdbi/JdbiMutinyMethodGenerator.java | 10 + .../yosql/dao/jdbi/JdbiReactorMethodGenerator.java | 10 + .../yosql/dao/jdbi/JdbiRxJavaMethodGenerator.java | 10 + .../metio/yosql/dao/jooq/JooqFieldsGenerator.java | 5 +- .../yosql/dao/jooq/JooqMutinyMethodGenerator.java | 10 + .../yosql/dao/jooq/JooqReactorMethodGenerator.java | 10 + .../yosql/dao/jooq/JooqRxJavaMethodGenerator.java | 10 + .../metio/yosql/dao/jpa/JpaFieldsGenerator.java | 5 +- .../yosql/dao/jpa/JpaMutinyMethodGenerator.java | 10 + .../yosql/dao/jpa/JpaReactorMethodGenerator.java | 10 + .../yosql/dao/jpa/JpaRxJavaMethodGenerator.java | 10 + .../yosql/dao/mybatis/MyBatisFieldsGenerator.java | 5 +- .../dao/mybatis/MyBatisMutinyMethodGenerator.java | 10 + .../dao/mybatis/MyBatisReactorMethodGenerator.java | 10 + .../dao/mybatis/MyBatisRxJavaMethodGenerator.java | 10 + .../yosql/dao/pyranid/PyranidFieldsGenerator.java | 5 +- .../dao/pyranid/PyranidMutinyMethodGenerator.java | 10 + .../dao/pyranid/PyranidReactorMethodGenerator.java | 10 + .../dao/pyranid/PyranidRxJavaMethodGenerator.java | 10 + .../yosql/dao/r2dbc/R2dbcFieldsGenerator.java | 5 +- .../dao/r2dbc/R2dbcMutinyMethodGenerator.java | 10 + .../dao/r2dbc/R2dbcReactorMethodGenerator.java | 10 + .../dao/r2dbc/R2dbcRxJavaMethodGenerator.java | 10 + .../yosql/dao/sansorm/SansOrmFieldsGenerator.java | 5 +- .../dao/sansorm/SansOrmMutinyMethodGenerator.java | 10 + .../dao/sansorm/SansOrmReactorMethodGenerator.java | 10 + .../dao/sansorm/SansOrmRxJavaMethodGenerator.java | 10 + .../data/jdbc/SpringDataJdbcFieldsGenerator.java | 5 +- .../jdbc/SpringDataJdbcMutinyMethodGenerator.java | 10 + .../jdbc/SpringDataJdbcReactorMethodGenerator.java | 10 + .../jdbc/SpringDataJdbcRxJavaMethodGenerator.java | 10 + .../data/jpa/SpringDataJpaFieldsGenerator.java | 5 +- .../jpa/SpringDataJpaMutinyMethodGenerator.java | 10 + .../jpa/SpringDataJpaReactorMethodGenerator.java | 10 + .../jpa/SpringDataJpaRxJavaMethodGenerator.java | 10 + .../data/r2dbc/SpringDataR2dbcFieldsGenerator.java | 5 +- .../SpringDataR2dbcMutinyMethodGenerator.java | 10 + .../SpringDataR2dbcReactorMethodGenerator.java | 10 + .../SpringDataR2dbcRxJavaMethodGenerator.java | 10 + yosql-dao/yosql-dao-spring-jdbc/pom.xml | 4 + .../dao/spring/jdbc/DefaultSpringJdbcBlocks.java | 14 +- .../spring/jdbc/DefaultSpringJdbcParameters.java | 37 + .../jdbc/SpringJdbcBlockingMethodGenerator.java | 8 +- .../jdbc/SpringJdbcConstructorGenerator.java | 46 +- .../spring/jdbc/SpringJdbcFieldsGenerator.java} | 131 +- .../jdbc/SpringJdbcMutinyMethodGenerator.java | 10 + .../dao/spring/jdbc/SpringJdbcParameters.java | 32 + .../jdbc/SpringJdbcReactorMethodGenerator.java | 10 + .../jdbc/SpringJdbcRxJavaMethodGenerator.java | 10 + .../jdbc/SpringJdbcFieldsGeneratorTest.java} | 182 +- .../dao/spring/jdbc/SpringJdbcObjectMother.java | 10 + .../pom.xml | 10 + .../maven/springjdbc/java16/ExampleApp.java | 10 +- .../yosql/models/immutables/SqlStatement.java | 54 +- .../wtf/metio/yosql/models/meta/data/Names.java | 10 + .../wtf/metio/yosql/testing/codegen/Blocks.java | 2 +- .../dagger/codegen/DefaultCodeGeneratorModule.java | 6 +- .../codegen/blocks/DefaultGenericBlocksModule.java | 2 +- .../codegen/blocks/DefaultJdbcBlocksModule.java | 10 +- .../blocks/DefaultSpringJdbcBlocksModule.java | 11 + .../tooling/dagger/codegen/dao/JdbcDaoModule.java | 8 +- .../dagger/codegen/dao/SpringJdbcDaoModule.java | 19 +- 98 files changed, 2038 insertions(+), 1484 deletions(-) rename yosql-codegen/yosql-codegen-api/src/main/java/wtf/metio/yosql/codegen/api/{UtilitiesGenerator.java => ConverterGenerator.java} (67%) rename yosql-dao/yosql-dao-jdbc/src/test/java/wtf/metio/yosql/dao/jdbc/DefaultJdbcFieldsTest.java => yosql-codegen/yosql-codegen-blocks/src/test/java/wtf/metio/yosql/codegen/blocks/DefaultFieldsTest.java (66%) delete mode 100644 yosql-dao/yosql-dao-jdbc/src/main/java/wtf/metio/yosql/dao/jdbc/DefaultJdbcFields.java delete mode 100644 yosql-dao/yosql-dao-jdbc/src/main/java/wtf/metio/yosql/dao/jdbc/JdbcFields.java rename yosql-dao/yosql-dao-jdbc/src/main/java/wtf/metio/yosql/dao/jdbc/utilities/{JdbcUtilitiesGenerator.java => JdbcConverterGenerator.java} (91%) create mode 100644 yosql-dao/yosql-dao-spring-jdbc/src/main/java/wtf/metio/yosql/dao/spring/jdbc/DefaultSpringJdbcParameters.java copy yosql-dao/{yosql-dao-jdbc/src/main/java/wtf/metio/yosql/dao/jdbc/JdbcFieldsGenerator.java => yosql-dao-spring-jdbc/src/main/java/wtf/metio/yosql/dao/spring/jdbc/SpringJdbcFieldsGenerator.java} (55%) create mode 100644 yosql-dao/yosql-dao-spring-jdbc/src/main/java/wtf/metio/yosql/dao/spring/jdbc/SpringJdbcParameters.java copy yosql-dao/{yosql-dao-jdbc/src/test/java/wtf/metio/yosql/dao/jdbc/JdbcFieldsGeneratorTest.java => yosql-dao-spring-jdbc/src/test/java/wtf/metio/yosql/dao/spring/jdbc/SpringJdbcFieldsGeneratorTest.java} (79%) diff --git a/yosql-benchmarks/yosql-benchmarks-codegen/src/main/java/wtf/metio/yosql/benchmark/codegen/AbstractDaggerBenchmark.java b/yosql-benchmarks/yosql-benchmarks-codegen/src/main/java/wtf/metio/yosql/benchmark/codegen/AbstractDaggerBenchmark.java index d16f40d1..1abb0e32 100644 --- a/yosql-benchmarks/yosql-benchmarks-codegen/src/main/java/wtf/metio/yosql/benchmark/codegen/AbstractDaggerBenchmark.java +++ b/yosql-benchmarks/yosql-benchmarks-codegen/src/main/java/wtf/metio/yosql/benchmark/codegen/AbstractDaggerBenchmark.java @@ -10,9 +10,8 @@ import org.openjdk.jmh.annotations.Setup; import wtf.metio.yosql.internals.jdk.SupportedLocales; import wtf.metio.yosql.models.immutables.ApiConfiguration; import wtf.metio.yosql.models.immutables.FilesConfiguration; -import wtf.metio.yosql.models.immutables.JdbcConfiguration; import wtf.metio.yosql.models.immutables.RuntimeConfiguration; -import wtf.metio.yosql.models.sql.ResultRowConverter; +import wtf.metio.yosql.testing.configs.ConverterConfigurations; import wtf.metio.yosql.tooling.dagger.DaggerYoSQLComponent; /** @@ -38,19 +37,13 @@ abstract class AbstractDaggerBenchmark extends AbstractCodeGenBenchmark { * @return Fully configured runtime configuration. */ private RuntimeConfiguration config() { - final var jdbcDefaults = JdbcConfiguration.usingDefaults().build(); return RuntimeConfiguration.usingDefaults() .setFiles(FilesConfiguration.usingDefaults() .setInputBaseDirectory(inputDirectory) .setOutputBaseDirectory(outputDirectory) .build()) .setApi(apiConfig()) - .setJdbc(jdbcDefaults.withDefaultConverter(ResultRowConverter.builder() - .setAlias("resultRow") - .setConverterType(jdbcDefaults.utilityPackageName() + ".ToResultRowConverter") - .setMethodName("apply") - .setResultType(jdbcDefaults.utilityPackageName() + "." + jdbcDefaults.resultRowClassName()) - .build())) + .setConverter(ConverterConfigurations.withResultRowConverter()) .build(); } diff --git a/yosql-benchmarks/yosql-benchmarks-jdbc/pom.xml b/yosql-benchmarks/yosql-benchmarks-jdbc/pom.xml index 8827d8a5..30c8f194 100644 --- a/yosql-benchmarks/yosql-benchmarks-jdbc/pom.xml +++ b/yosql-benchmarks/yosql-benchmarks-jdbc/pom.xml @@ -128,9 +128,9 @@ wtf.metio.yosql.benchmark.jdbc.jul.persistence - - wtf.metio.yosql.benchmark.jdbc.jul.persistence.util - + + wtf.metio.yosql.benchmark.jdbc.jul.persistence.util + @@ -149,9 +149,9 @@ wtf.metio.yosql.benchmark.jdbc.log4j.persistence - - wtf.metio.yosql.benchmark.jdbc.log4j.persistence.util - + + wtf.metio.yosql.benchmark.jdbc.log4j.persistence.util + @@ -170,9 +170,9 @@ wtf.metio.yosql.benchmark.jdbc.noop.persistence - - wtf.metio.yosql.benchmark.jdbc.noop.persistence.util - + + wtf.metio.yosql.benchmark.jdbc.noop.persistence.util + @@ -191,9 +191,9 @@ wtf.metio.yosql.benchmark.jdbc.slf4j.persistence - - wtf.metio.yosql.benchmark.jdbc.slf4j.persistence.util - + + wtf.metio.yosql.benchmark.jdbc.slf4j.persistence.util + @@ -212,9 +212,9 @@ wtf.metio.yosql.benchmark.jdbc.tinylog.persistence - - wtf.metio.yosql.benchmark.jdbc.tinylog.persistence.util - + + wtf.metio.yosql.benchmark.jdbc.tinylog.persistence.util + diff --git a/yosql-codegen/yosql-codegen-api/src/main/java/wtf/metio/yosql/codegen/api/UtilitiesGenerator.java b/yosql-codegen/yosql-codegen-api/src/main/java/wtf/metio/yosql/codegen/api/ConverterGenerator.java similarity index 67% rename from yosql-codegen/yosql-codegen-api/src/main/java/wtf/metio/yosql/codegen/api/UtilitiesGenerator.java rename to yosql-codegen/yosql-codegen-api/src/main/java/wtf/metio/yosql/codegen/api/ConverterGenerator.java index fd345643..bed89e16 100644 --- a/yosql-codegen/yosql-codegen-api/src/main/java/wtf/metio/yosql/codegen/api/UtilitiesGenerator.java +++ b/yosql-codegen/yosql-codegen-api/src/main/java/wtf/metio/yosql/codegen/api/ConverterGenerator.java @@ -13,17 +13,17 @@ import java.util.List; import java.util.stream.Stream; /** - * Generates utility classes. + * Generates converter related classes. */ @FunctionalInterface -public interface UtilitiesGenerator { +public interface ConverterGenerator { /** - * Creates utilities based on a number of {@link SqlStatement}s. + * Creates converter related classes based on a number of {@link SqlStatement}s. * * @param statements The statements to use. - * @return A stream of utility type specifications and their target package. + * @return A stream of type specifications and their target package. */ - Stream generateUtilities(List statements); + Stream generateConverterClasses(List statements); } diff --git a/yosql-codegen/yosql-codegen-api/src/main/java/wtf/metio/yosql/codegen/api/DelegatingMethodsGenerator.java b/yosql-codegen/yosql-codegen-api/src/main/java/wtf/metio/yosql/codegen/api/DelegatingMethodsGenerator.java index cb0dc069..1e183a73 100644 --- a/yosql-codegen/yosql-codegen-api/src/main/java/wtf/metio/yosql/codegen/api/DelegatingMethodsGenerator.java +++ b/yosql-codegen/yosql-codegen-api/src/main/java/wtf/metio/yosql/codegen/api/DelegatingMethodsGenerator.java @@ -14,7 +14,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Objects; import java.util.function.BiFunction; -import java.util.function.Consumer; import java.util.function.Predicate; /** @@ -62,25 +61,30 @@ public final class DelegatingMethodsGenerator implements MethodsGenerator { methods.add(constructor.forRepository(statements)); - addMethods(statements, SqlStatement::shouldGenerateBlockingReadAPI, blockingMethods::blockingReadMethod, methods::add); - addMethods(statements, SqlStatement::shouldGenerateBlockingWriteAPI, blockingMethods::blockingWriteMethod, methods::add); - addMethods(statements, SqlStatement::shouldGenerateBlockingCallAPI, blockingMethods::blockingCallMethod, methods::add); - addMethods(statements, SqlStatement::shouldGenerateBatchWriteAPI, batchMethods::batchWriteMethod, methods::add); - addMethods(statements, SqlStatement::shouldGenerateStreamEagerReadAPI, streamMethods::streamEagerReadMethod, methods::add); - addMethods(statements, SqlStatement::shouldGenerateStreamLazyReadAPI, streamMethods::streamLazyReadMethod, methods::add); - addMethods(statements, SqlStatement::shouldGenerateRxJavaReadAPI, rxjavaMethods::rxJavaReadMethod, methods::add); - addMethods(statements, SqlStatement::shouldGenerateReactorReadAPI, reactorMethods::reactorReadMethod, methods::add); - addMethods(statements, SqlStatement::shouldGenerateMutinyReadAPI, mutinyMethods::mutinyReadMethod, methods::add); + methods.addAll(asMethods(statements, SqlStatement::shouldGenerateBatchWriteAPI, batchMethods::batchWriteMethod)); + methods.addAll(asMethods(statements, SqlStatement::shouldGenerateBlockingCallAPI, blockingMethods::blockingCallMethod)); + methods.addAll(asMethods(statements, SqlStatement::shouldGenerateBlockingReadAPI, blockingMethods::blockingReadMethod)); + methods.addAll(asMethods(statements, SqlStatement::shouldGenerateBlockingWriteAPI, blockingMethods::blockingWriteMethod)); + methods.addAll(asMethods(statements, SqlStatement::shouldGenerateMutinyCallAPI, mutinyMethods::mutinyCallMethod)); + methods.addAll(asMethods(statements, SqlStatement::shouldGenerateMutinyReadAPI, mutinyMethods::mutinyReadMethod)); + methods.addAll(asMethods(statements, SqlStatement::shouldGenerateMutinyWriteAPI, mutinyMethods::mutinyWriteMethod)); + methods.addAll(asMethods(statements, SqlStatement::shouldGenerateRxJavaCallAPI, rxjavaMethods::rxJavaCallMethod)); + methods.addAll(asMethods(statements, SqlStatement::shouldGenerateRxJavaReadAPI, rxjavaMethods::rxJavaReadMethod)); + methods.addAll(asMethods(statements, SqlStatement::shouldGenerateRxJavaWriteAPI, rxjavaMethods::rxJavaWriteMethod)); + methods.addAll(asMethods(statements, SqlStatement::shouldGenerateReactorCallAPI, reactorMethods::reactorCallMethod)); + methods.addAll(asMethods(statements, SqlStatement::shouldGenerateReactorReadAPI, reactorMethods::reactorReadMethod)); + methods.addAll(asMethods(statements, SqlStatement::shouldGenerateReactorWriteAPI, reactorMethods::reactorWriteMethod)); + methods.addAll(asMethods(statements, SqlStatement::shouldGenerateStreamEagerReadAPI, streamMethods::streamEagerReadMethod)); + methods.addAll(asMethods(statements, SqlStatement::shouldGenerateStreamLazyReadAPI, streamMethods::streamLazyReadMethod)); return methods; } - private static void addMethods( + private static List asMethods( final List statements, final Predicate filter, - final BiFunction, MethodSpec> generator, - final Consumer aggregator) { - statements.stream() + final BiFunction, MethodSpec> generator) { + return statements.stream() .filter(filter) .collect(SqlStatement.groupByName()) .values() @@ -88,7 +92,7 @@ public final class DelegatingMethodsGenerator implements MethodsGenerator { .map(statementsInRepository -> generator.apply( SqlConfiguration.fromStatements(statementsInRepository), statementsInRepository)) .filter(Objects::nonNull) - .forEach(aggregator); + .toList(); } } diff --git a/yosql-codegen/yosql-codegen-api/src/main/java/wtf/metio/yosql/codegen/api/Fields.java b/yosql-codegen/yosql-codegen-api/src/main/java/wtf/metio/yosql/codegen/api/Fields.java index 20c5e056..4be3201f 100644 --- a/yosql-codegen/yosql-codegen-api/src/main/java/wtf/metio/yosql/codegen/api/Fields.java +++ b/yosql-codegen/yosql-codegen-api/src/main/java/wtf/metio/yosql/codegen/api/Fields.java @@ -10,6 +10,7 @@ package wtf.metio.yosql.codegen.api; import com.squareup.javapoet.CodeBlock; import com.squareup.javapoet.FieldSpec; import com.squareup.javapoet.TypeName; +import wtf.metio.yosql.models.immutables.SqlConfiguration; import java.lang.reflect.Type; @@ -25,4 +26,10 @@ public interface Fields { CodeBlock initialize(String statement); + String constantSqlStatementFieldName(SqlConfiguration configuration); + + String constantRawSqlStatementFieldName(SqlConfiguration configuration); + + String constantSqlStatementParameterIndexFieldName(SqlConfiguration configuration); + } diff --git a/yosql-codegen/yosql-codegen-api/src/main/java/wtf/metio/yosql/codegen/api/FieldsGenerator.java b/yosql-codegen/yosql-codegen-api/src/main/java/wtf/metio/yosql/codegen/api/FieldsGenerator.java index 04e7d886..5e643e5f 100644 --- a/yosql-codegen/yosql-codegen-api/src/main/java/wtf/metio/yosql/codegen/api/FieldsGenerator.java +++ b/yosql-codegen/yosql-codegen-api/src/main/java/wtf/metio/yosql/codegen/api/FieldsGenerator.java @@ -11,6 +11,7 @@ import com.squareup.javapoet.FieldSpec; import wtf.metio.yosql.models.immutables.SqlStatement; import java.util.List; +import java.util.Optional; /** * Generates fields and static initializers for those. @@ -23,7 +24,7 @@ public interface FieldsGenerator { * @param statements The statements to use. * @return The static initializer for the given statements. */ - CodeBlock staticInitializer(List statements); + Optional staticInitializer(List statements); /** * Creates the field specifications for a class based on a number of {@link SqlStatement}s. diff --git a/yosql-codegen/yosql-codegen-api/src/main/java/wtf/metio/yosql/codegen/api/MutinyMethodGenerator.java b/yosql-codegen/yosql-codegen-api/src/main/java/wtf/metio/yosql/codegen/api/MutinyMethodGenerator.java index cb8a0208..9d289a64 100644 --- a/yosql-codegen/yosql-codegen-api/src/main/java/wtf/metio/yosql/codegen/api/MutinyMethodGenerator.java +++ b/yosql-codegen/yosql-codegen-api/src/main/java/wtf/metio/yosql/codegen/api/MutinyMethodGenerator.java @@ -18,6 +18,15 @@ import java.util.List; public interface MutinyMethodGenerator { /** + * Creates a Mutiny based method for calling a procedure in a database. + * + * @param configuration The configuration to use. + * @param vendorStatements The vendor statements to use. + * @return A Mutiny based call method. + */ + MethodSpec mutinyCallMethod(SqlConfiguration configuration, List vendorStatements); + + /** * Creates a Mutiny based method for reading data out of a database. * * @param configuration The configuration to use. @@ -26,4 +35,13 @@ public interface MutinyMethodGenerator { */ MethodSpec mutinyReadMethod(SqlConfiguration configuration, List vendorStatements); + /** + * Creates a Mutiny based method for writing data out of a database. + * + * @param configuration The configuration to use. + * @param vendorStatements The vendor statements to use. + * @return A Mutiny based write method. + */ + MethodSpec mutinyWriteMethod(SqlConfiguration configuration, List vendorStatements); + } diff --git a/yosql-codegen/yosql-codegen-api/src/main/java/wtf/metio/yosql/codegen/api/ReactorMethodGenerator.java b/yosql-codegen/yosql-codegen-api/src/main/java/wtf/metio/yosql/codegen/api/ReactorMethodGenerator.java index 0f0b5409..96e20ace 100644 --- a/yosql-codegen/yosql-codegen-api/src/main/java/wtf/metio/yosql/codegen/api/ReactorMethodGenerator.java +++ b/yosql-codegen/yosql-codegen-api/src/main/java/wtf/metio/yosql/codegen/api/ReactorMethodGenerator.java @@ -18,6 +18,15 @@ import java.util.List; public interface ReactorMethodGenerator { /** + * Creates a Reactor based method for calling a procedure in a database. + * + * @param configuration The configuration to use. + * @param vendorStatements The vendor statements to use. + * @return A Reactor based call method. + */ + MethodSpec reactorCallMethod(SqlConfiguration configuration, List vendorStatements); + + /** * Creates a Reactor based method for reading data out of a database. * * @param configuration The configuration to use. @@ -26,4 +35,13 @@ public interface ReactorMethodGenerator { */ MethodSpec reactorReadMethod(SqlConfiguration configuration, List vendorStatements); + /** + * Creates a Reactor based method for writing data out of a database. + * + * @param configuration The configuration to use. + * @param vendorStatements The vendor statements to use. + * @return A Reactor based write method. + */ + MethodSpec reactorWriteMethod(SqlConfiguration configuration, List vendorStatements); + } diff --git a/yosql-codegen/yosql-codegen-api/src/main/java/wtf/metio/yosql/codegen/api/RxJavaMethodGenerator.java b/yosql-codegen/yosql-codegen-api/src/main/java/wtf/metio/yosql/codegen/api/RxJavaMethodGenerator.java index 2d2cf0d1..e7fa7f77 100644 --- a/yosql-codegen/yosql-codegen-api/src/main/java/wtf/metio/yosql/codegen/api/RxJavaMethodGenerator.java +++ b/yosql-codegen/yosql-codegen-api/src/main/java/wtf/metio/yosql/codegen/api/RxJavaMethodGenerator.java @@ -18,6 +18,15 @@ import java.util.List; public interface RxJavaMethodGenerator { /** + * Creates a RxJava based method for calling a procedure in a database. + * + * @param configuration The configuration to use. + * @param vendorStatements The vendor statements to use. + * @return A RxJava based call method. + */ + MethodSpec rxJavaCallMethod(SqlConfiguration configuration, List vendorStatements); + + /** * Creates a RxJava based method for reading data out of a database. * * @param configuration The configuration to use. @@ -26,4 +35,13 @@ public interface RxJavaMethodGenerator { */ MethodSpec rxJavaReadMethod(SqlConfiguration configuration, List vendorStatements); + /** + * Creates a RxJava based method for writing data out of a database. + * + * @param configuration The configuration to use. + * @param vendorStatements The vendor statements to use. + * @return A RxJava based write method. + */ + MethodSpec rxJavaWriteMethod(SqlConfiguration configuration, List vendorStatements); + } diff --git a/yosql-codegen/yosql-codegen-blocks/src/main/java/wtf/metio/yosql/codegen/blocks/DefaultCodeGenerator.java b/yosql-codegen/yosql-codegen-blocks/src/main/java/wtf/metio/yosql/codegen/blocks/DefaultCodeGenerator.java index 6f609d69..752c791a 100644 --- a/yosql-codegen/yosql-codegen-blocks/src/main/java/wtf/metio/yosql/codegen/blocks/DefaultCodeGenerator.java +++ b/yosql-codegen/yosql-codegen-blocks/src/main/java/wtf/metio/yosql/codegen/blocks/DefaultCodeGenerator.java @@ -8,8 +8,8 @@ package wtf.metio.yosql.codegen.blocks; import wtf.metio.yosql.codegen.api.CodeGenerator; +import wtf.metio.yosql.codegen.api.ConverterGenerator; import wtf.metio.yosql.codegen.api.RepositoryGenerator; -import wtf.metio.yosql.codegen.api.UtilitiesGenerator; import wtf.metio.yosql.models.immutables.PackagedTypeSpec; import wtf.metio.yosql.models.immutables.SqlStatement; @@ -22,18 +22,18 @@ import static java.util.stream.Collectors.groupingBy; public final class DefaultCodeGenerator implements CodeGenerator { private final RepositoryGenerator repositoryGenerator; - private final UtilitiesGenerator utilitiesGenerator; + private final ConverterGenerator converterGenerator; public DefaultCodeGenerator( final RepositoryGenerator repositoryGenerator, - final UtilitiesGenerator utilitiesGenerator) { + final ConverterGenerator converterGenerator) { this.repositoryGenerator = repositoryGenerator; - this.utilitiesGenerator = utilitiesGenerator; + this.converterGenerator = converterGenerator; } @Override public Stream generateCode(final List statements) { - return Stream.concat(generateRepositories(statements), utilitiesGenerator.generateUtilities(statements)) + return Stream.concat(generateRepositories(statements), converterGenerator.generateConverterClasses(statements)) .filter(Objects::nonNull); } diff --git a/yosql-codegen/yosql-codegen-blocks/src/main/java/wtf/metio/yosql/codegen/blocks/DefaultFields.java b/yosql-codegen/yosql-codegen-blocks/src/main/java/wtf/metio/yosql/codegen/blocks/DefaultFields.java index 0b446812..156c05ef 100644 --- a/yosql-codegen/yosql-codegen-blocks/src/main/java/wtf/metio/yosql/codegen/blocks/DefaultFields.java +++ b/yosql-codegen/yosql-codegen-blocks/src/main/java/wtf/metio/yosql/codegen/blocks/DefaultFields.java @@ -12,19 +12,30 @@ import com.squareup.javapoet.FieldSpec; import com.squareup.javapoet.TypeName; import wtf.metio.yosql.codegen.api.AnnotationGenerator; import wtf.metio.yosql.codegen.api.Fields; +import wtf.metio.yosql.internals.jdk.Strings; import wtf.metio.yosql.models.immutables.JavaConfiguration; +import wtf.metio.yosql.models.immutables.NamesConfiguration; +import wtf.metio.yosql.models.immutables.SqlConfiguration; import javax.lang.model.element.Modifier; import java.lang.reflect.Type; public final class DefaultFields implements Fields { + private static final String NAME_REGEX = "([a-z])([A-Z])"; + private static final String NAME_REPLACEMENT = "$1_$2"; + private final AnnotationGenerator annotations; private final JavaConfiguration java; + private final NamesConfiguration names; - public DefaultFields(final AnnotationGenerator annotations, final JavaConfiguration java) { + public DefaultFields( + final AnnotationGenerator annotations, + final JavaConfiguration java, + final NamesConfiguration names) { this.annotations = annotations; this.java = java; + this.names = names; } @Override @@ -55,9 +66,9 @@ public final class DefaultFields implements Fields { public CodeBlock initialize(final String statement) { if (java.useTextBlocks()) { return CodeBlock.builder() - .add("\"\"\"\n") - .add("$L", statement) .add("\"\"\"") + .add("$>$>\n$L", statement) + .add("\"\"\"$<$<") .build(); } return CodeBlock.builder() @@ -70,4 +81,28 @@ public final class DefaultFields implements Fields { .addAnnotations(annotations.generatedField()); } + @Override + public String constantSqlStatementFieldName(final SqlConfiguration configuration) { + return configuration.name() + .replaceAll(NAME_REGEX, NAME_REPLACEMENT) + .toUpperCase() + + getVendor(configuration); + } + + @Override + public String constantRawSqlStatementFieldName(final SqlConfiguration configuration) { + return constantSqlStatementFieldName(configuration) + names.rawSuffix(); + } + + @Override + public String constantSqlStatementParameterIndexFieldName(final SqlConfiguration configuration) { + return constantSqlStatementFieldName(configuration) + names.indexSuffix(); + } + + private static String getVendor(final SqlConfiguration configuration) { + return Strings.isBlank(configuration.vendor()) + ? "" + : "_" + configuration.vendor().replace(" ", "_").toUpperCase(); + } + } diff --git a/yosql-codegen/yosql-codegen-blocks/src/main/java/wtf/metio/yosql/codegen/blocks/GenericRepositoryGenerator.java b/yosql-codegen/yosql-codegen-blocks/src/main/java/wtf/metio/yosql/codegen/blocks/GenericRepositoryGenerator.java index 86586d16..07713e5e 100644 --- a/yosql-codegen/yosql-codegen-blocks/src/main/java/wtf/metio/yosql/codegen/blocks/GenericRepositoryGenerator.java +++ b/yosql-codegen/yosql-codegen-blocks/src/main/java/wtf/metio/yosql/codegen/blocks/GenericRepositoryGenerator.java @@ -67,13 +67,13 @@ public final class GenericRepositoryGenerator implements RepositoryGenerator { final String repositoryName, final List sqlStatements) { final var className = ClassName.bestGuess(repositoryName); - final var repository = classes.publicClass(className) + final var classBuilder = classes.publicClass(className) .addJavadoc(javadoc.repositoryJavadoc(sqlStatements)) .addFields(fields.asFields(sqlStatements)) .addMethods(methods.asMethods(sqlStatements)) - .addAnnotations(annotations.generatedClass()) - .addStaticBlock(fields.staticInitializer(sqlStatements)) - .build(); + .addAnnotations(annotations.generatedClass()); + fields.staticInitializer(sqlStatements).ifPresent(classBuilder::addStaticBlock); + final var repository = classBuilder.build(); logger.debug(CodegenLifecycle.TYPE_GENERATED, className.packageName(), className.simpleName()); return PackagedTypeSpec.of(repository, className.packageName()); } diff --git a/yosql-dao/yosql-dao-jdbc/src/test/java/wtf/metio/yosql/dao/jdbc/DefaultJdbcFieldsTest.java b/yosql-codegen/yosql-codegen-blocks/src/test/java/wtf/metio/yosql/codegen/blocks/DefaultFieldsTest.java similarity index 66% rename from yosql-dao/yosql-dao-jdbc/src/test/java/wtf/metio/yosql/dao/jdbc/DefaultJdbcFieldsTest.java rename to yosql-codegen/yosql-codegen-blocks/src/test/java/wtf/metio/yosql/codegen/blocks/DefaultFieldsTest.java index ab348e6a..6547d831 100644 --- a/yosql-dao/yosql-dao-jdbc/src/test/java/wtf/metio/yosql/dao/jdbc/DefaultJdbcFieldsTest.java +++ b/yosql-codegen/yosql-codegen-blocks/src/test/java/wtf/metio/yosql/codegen/blocks/DefaultFieldsTest.java @@ -5,23 +5,54 @@ * in the LICENSE file. */ -package wtf.metio.yosql.dao.jdbc; +package wtf.metio.yosql.codegen.blocks; +import com.squareup.javapoet.TypeName; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import wtf.metio.yosql.models.immutables.SqlConfiguration; +import wtf.metio.yosql.testing.configs.AnnotationsConfigurations; +import wtf.metio.yosql.testing.configs.ApiConfigurations; +import wtf.metio.yosql.testing.configs.JavaConfigurations; import wtf.metio.yosql.testing.configs.NamesConfigurations; -@DisplayName("DefaultJdbcFields") -class DefaultJdbcFieldsTest { +@DisplayName("DefaultFields") +class DefaultFieldsTest { - private DefaultJdbcFields generator; + private DefaultFields generator; @BeforeEach void setUp() { - generator = new DefaultJdbcFields(NamesConfigurations.defaults()); + generator = new DefaultFields( + new DefaultAnnotationGenerator(AnnotationsConfigurations.defaults(), ApiConfigurations.defaults()), + JavaConfigurations.defaults(), + NamesConfigurations.defaults()); + } + + @Test + @DisplayName("creates fields") + void shouldCreateField() { + Assertions.assertEquals(""" + @javax.annotation.processing.Generated( + value = "YoSQL", + comments = "DO NOT MODIFY - automatically generated by YoSQL" + ) + private final java.lang.String test; + """, generator.field(String.class, "test").toString()); + } + + @Test + @DisplayName("creates fields for TypeNames") + void shouldCreateFieldWithTypeName() { + Assertions.assertEquals(""" + @javax.annotation.processing.Generated( + value = "YoSQL", + comments = "DO NOT MODIFY - automatically generated by YoSQL" + ) + private final boolean test; + """, generator.field(TypeName.BOOLEAN, "test").toString()); } @Test diff --git a/yosql-codegen/yosql-codegen-files/src/main/java/wtf/metio/yosql/codegen/files/DefaultMethodApiConfigurer.java b/yosql-codegen/yosql-codegen-files/src/main/java/wtf/metio/yosql/codegen/files/DefaultMethodApiConfigurer.java index 638193ea..32b97525 100644 --- a/yosql-codegen/yosql-codegen-files/src/main/java/wtf/metio/yosql/codegen/files/DefaultMethodApiConfigurer.java +++ b/yosql-codegen/yosql-codegen-files/src/main/java/wtf/metio/yosql/codegen/files/DefaultMethodApiConfigurer.java @@ -56,10 +56,6 @@ public final class DefaultMethodApiConfigurer implements MethodApiConfigurer { // visible for testing SqlConfiguration mutiny(final SqlConfiguration configuration) { - if (WRITING == configuration.type()) { - // TODO: allow Mutiny insert/update statements - return SqlConfiguration.copyOf(configuration).withGenerateMutinyApi(false); - } if (configuration.generateMutinyApi().isEmpty()) { return SqlConfiguration.copyOf(configuration).withGenerateMutinyApi(repositories.generateMutinyApi()); } @@ -68,10 +64,6 @@ public final class DefaultMethodApiConfigurer implements MethodApiConfigurer { // visible for testing SqlConfiguration reactor(final SqlConfiguration configuration) { - if (WRITING == configuration.type()) { - // TODO: allow Reactor insert/update statements - return SqlConfiguration.copyOf(configuration).withGenerateReactorApi(false); - } if (configuration.generateReactorApi().isEmpty()) { return SqlConfiguration.copyOf(configuration).withGenerateReactorApi(repositories.generateReactorApi()); } @@ -80,10 +72,6 @@ public final class DefaultMethodApiConfigurer implements MethodApiConfigurer { // visible for testing SqlConfiguration rxJava(final SqlConfiguration configuration) { - if (WRITING == configuration.type()) { - // TODO: allow RxJava insert/update statements - return SqlConfiguration.copyOf(configuration).withGenerateRxJavaApi(false); - } if (configuration.generateRxJavaApi().isEmpty()) { return SqlConfiguration.copyOf(configuration).withGenerateRxJavaApi(repositories.generateRxJavaApi()); } diff --git a/yosql-codegen/yosql-codegen-files/src/test/java/wtf/metio/yosql/codegen/files/DefaultMethodApiConfigurerTest.java b/yosql-codegen/yosql-codegen-files/src/test/java/wtf/metio/yosql/codegen/files/DefaultMethodApiConfigurerTest.java index e7056117..836b9456 100644 --- a/yosql-codegen/yosql-codegen-files/src/test/java/wtf/metio/yosql/codegen/files/DefaultMethodApiConfigurerTest.java +++ b/yosql-codegen/yosql-codegen-files/src/test/java/wtf/metio/yosql/codegen/files/DefaultMethodApiConfigurerTest.java @@ -86,17 +86,6 @@ class DefaultMethodApiConfigurerTest { } @Test - void mutinyForcedDisabledForWrites() { - final var original = SqlConfiguration.usingDefaults() - .setGenerateMutinyApi(true) - .setType(SqlType.WRITING) - .build(); - final var adapted = configurer.mutiny(original); - assertTrue(adapted.generateMutinyApi().isPresent()); - assertFalse(adapted.generateMutinyApi().get()); - } - - @Test void mutinyChangedToRepositoryDefault() { final var original = SqlConfiguration.usingDefaults() // .setGenerateMutinyApi(true) // value is NOT set @@ -116,17 +105,6 @@ class DefaultMethodApiConfigurerTest { } @Test - void reactorForcedDisabledForWrites() { - final var original = SqlConfiguration.usingDefaults() - .setGenerateReactorApi(true) - .setType(SqlType.WRITING) - .build(); - final var adapted = configurer.reactor(original); - assertTrue(adapted.generateReactorApi().isPresent()); - assertFalse(adapted.generateReactorApi().get()); - } - - @Test void reactorChangedToRepositoryDefault() { final var original = SqlConfiguration.usingDefaults() // .setGenerateReactorApi(true) // value is NOT set @@ -146,17 +124,6 @@ class DefaultMethodApiConfigurerTest { } @Test - void rxJavaForcedDisabledForWrites() { - final var original = SqlConfiguration.usingDefaults() - .setGenerateRxJavaApi(true) - .setType(SqlType.WRITING) - .build(); - final var adapted = configurer.rxJava(original); - assertTrue(adapted.generateRxJavaApi().isPresent()); - assertFalse(adapted.generateRxJavaApi().get()); - } - - @Test void rxJavaChangedToRepositoryDefault() { final var original = SqlConfiguration.usingDefaults() // .setGenerateRxJavaApi(true) // value is NOT set diff --git a/yosql-codegen/yosql-codegen-tck/src/main/java/wtf/metio/yosql/codegen/tck/FieldsGeneratorTCK.java b/yosql-codegen/yosql-codegen-tck/src/main/java/wtf/metio/yosql/codegen/tck/FieldsGeneratorTCK.java index df59831a..b5a92480 100644 --- a/yosql-codegen/yosql-codegen-tck/src/main/java/wtf/metio/yosql/codegen/tck/FieldsGeneratorTCK.java +++ b/yosql-codegen/yosql-codegen-tck/src/main/java/wtf/metio/yosql/codegen/tck/FieldsGeneratorTCK.java @@ -8,6 +8,7 @@ package wtf.metio.yosql.codegen.tck; import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Assumptions; import org.junit.jupiter.api.Test; import wtf.metio.yosql.codegen.api.FieldsGenerator; import wtf.metio.yosql.internals.junit5.TestIterables; @@ -26,9 +27,10 @@ public interface FieldsGeneratorTCK { @Test default void staticInitializer() { + Assumptions.assumeTrue(generator().staticInitializer(SqlConfigurations.sqlStatements()).isPresent()); Assertions.assertEquals( staticInitializerExpectation(), - generator().staticInitializer(SqlConfigurations.sqlStatements()).toString(), + generator().staticInitializer(SqlConfigurations.sqlStatements()).get().toString(), "The generated static initializer did not match expectation"); } diff --git a/yosql-dao/yosql-dao-ebean/src/main/java/wtf/metio/yosql/dao/ebean/EBeanFieldsGenerator.java b/yosql-dao/yosql-dao-ebean/src/main/java/wtf/metio/yosql/dao/ebean/EBeanFieldsGenerator.java index 38225435..0a1e75b3 100644 --- a/yosql-dao/yosql-dao-ebean/src/main/java/wtf/metio/yosql/dao/ebean/EBeanFieldsGenerator.java +++ b/yosql-dao/yosql-dao-ebean/src/main/java/wtf/metio/yosql/dao/ebean/EBeanFieldsGenerator.java @@ -16,6 +16,7 @@ import wtf.metio.yosql.logging.api.LoggingGenerator; import wtf.metio.yosql.models.immutables.SqlStatement; import java.util.List; +import java.util.Optional; public final class EBeanFieldsGenerator implements FieldsGenerator { @@ -33,8 +34,8 @@ public final class EBeanFieldsGenerator implements FieldsGenerator { } @Override - public CodeBlock staticInitializer(final List statements) { - return null; + public Optional staticInitializer(final List statements) { + return Optional.empty(); } @Override diff --git a/yosql-dao/yosql-dao-ebean/src/main/java/wtf/metio/yosql/dao/ebean/EBeanMutinyMethodGenerator.java b/yosql-dao/yosql-dao-ebean/src/main/java/wtf/metio/yosql/dao/ebean/EBeanMutinyMethodGenerator.java index 5c8d7825..dea5b0a9 100644 --- a/yosql-dao/yosql-dao-ebean/src/main/java/wtf/metio/yosql/dao/ebean/EBeanMutinyMethodGenerator.java +++ b/yosql-dao/yosql-dao-ebean/src/main/java/wtf/metio/yosql/dao/ebean/EBeanMutinyMethodGenerator.java @@ -20,4 +20,14 @@ public final class EBeanMutinyMethodGenerator implements MutinyMethodGenerator { return null; } + @Override + public MethodSpec mutinyWriteMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + + @Override + public MethodSpec mutinyCallMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + } diff --git a/yosql-dao/yosql-dao-ebean/src/main/java/wtf/metio/yosql/dao/ebean/EBeanReactorMethodGenerator.java b/yosql-dao/yosql-dao-ebean/src/main/java/wtf/metio/yosql/dao/ebean/EBeanReactorMethodGenerator.java index 5583595f..8d3ff84f 100644 --- a/yosql-dao/yosql-dao-ebean/src/main/java/wtf/metio/yosql/dao/ebean/EBeanReactorMethodGenerator.java +++ b/yosql-dao/yosql-dao-ebean/src/main/java/wtf/metio/yosql/dao/ebean/EBeanReactorMethodGenerator.java @@ -16,8 +16,18 @@ import java.util.List; public final class EBeanReactorMethodGenerator implements ReactorMethodGenerator { @Override + public MethodSpec reactorCallMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + + @Override public MethodSpec reactorReadMethod(final SqlConfiguration configuration, final List vendorStatements) { return null; } + @Override + public MethodSpec reactorWriteMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + } diff --git a/yosql-dao/yosql-dao-ebean/src/main/java/wtf/metio/yosql/dao/ebean/EBeanRxJavaMethodGenerator.java b/yosql-dao/yosql-dao-ebean/src/main/java/wtf/metio/yosql/dao/ebean/EBeanRxJavaMethodGenerator.java index 97af54b6..29b2af88 100644 --- a/yosql-dao/yosql-dao-ebean/src/main/java/wtf/metio/yosql/dao/ebean/EBeanRxJavaMethodGenerator.java +++ b/yosql-dao/yosql-dao-ebean/src/main/java/wtf/metio/yosql/dao/ebean/EBeanRxJavaMethodGenerator.java @@ -45,8 +45,18 @@ public final class EBeanRxJavaMethodGenerator implements RxJavaMethodGenerator { } @Override + public MethodSpec rxJavaCallMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + + @Override public MethodSpec rxJavaReadMethod(final SqlConfiguration configuration, final List vendorStatements) { return null; } + @Override + public MethodSpec rxJavaWriteMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + } diff --git a/yosql-dao/yosql-dao-fluent-jdbc/src/main/java/wtf/metio/yosql/dao/fluentjdbc/FluentJdbcFieldsGenerator.java b/yosql-dao/yosql-dao-fluent-jdbc/src/main/java/wtf/metio/yosql/dao/fluentjdbc/FluentJdbcFieldsGenerator.java index 5a59aae8..4264e8c3 100644 --- a/yosql-dao/yosql-dao-fluent-jdbc/src/main/java/wtf/metio/yosql/dao/fluentjdbc/FluentJdbcFieldsGenerator.java +++ b/yosql-dao/yosql-dao-fluent-jdbc/src/main/java/wtf/metio/yosql/dao/fluentjdbc/FluentJdbcFieldsGenerator.java @@ -16,6 +16,7 @@ import wtf.metio.yosql.logging.api.LoggingGenerator; import wtf.metio.yosql.models.immutables.SqlStatement; import java.util.List; +import java.util.Optional; public final class FluentJdbcFieldsGenerator implements FieldsGenerator { @@ -33,8 +34,8 @@ public final class FluentJdbcFieldsGenerator implements FieldsGenerator { } @Override - public CodeBlock staticInitializer(final List statements) { - return null; + public Optional staticInitializer(final List statements) { + return Optional.empty(); } @Override diff --git a/yosql-dao/yosql-dao-fluent-jdbc/src/main/java/wtf/metio/yosql/dao/fluentjdbc/FluentJdbcMutinyMethodGenerator.java b/yosql-dao/yosql-dao-fluent-jdbc/src/main/java/wtf/metio/yosql/dao/fluentjdbc/FluentJdbcMutinyMethodGenerator.java index b8bcd047..d5282d4e 100644 --- a/yosql-dao/yosql-dao-fluent-jdbc/src/main/java/wtf/metio/yosql/dao/fluentjdbc/FluentJdbcMutinyMethodGenerator.java +++ b/yosql-dao/yosql-dao-fluent-jdbc/src/main/java/wtf/metio/yosql/dao/fluentjdbc/FluentJdbcMutinyMethodGenerator.java @@ -20,4 +20,14 @@ public final class FluentJdbcMutinyMethodGenerator implements MutinyMethodGenera return null; } + @Override + public MethodSpec mutinyWriteMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + + @Override + public MethodSpec mutinyCallMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + } diff --git a/yosql-dao/yosql-dao-fluent-jdbc/src/main/java/wtf/metio/yosql/dao/fluentjdbc/FluentJdbcReactorMethodGenerator.java b/yosql-dao/yosql-dao-fluent-jdbc/src/main/java/wtf/metio/yosql/dao/fluentjdbc/FluentJdbcReactorMethodGenerator.java index b7b53b2c..9575aa7a 100644 --- a/yosql-dao/yosql-dao-fluent-jdbc/src/main/java/wtf/metio/yosql/dao/fluentjdbc/FluentJdbcReactorMethodGenerator.java +++ b/yosql-dao/yosql-dao-fluent-jdbc/src/main/java/wtf/metio/yosql/dao/fluentjdbc/FluentJdbcReactorMethodGenerator.java @@ -16,8 +16,18 @@ import java.util.List; public final class FluentJdbcReactorMethodGenerator implements ReactorMethodGenerator { @Override + public MethodSpec reactorCallMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + + @Override public MethodSpec reactorReadMethod(final SqlConfiguration configuration, final List vendorStatements) { return null; } + @Override + public MethodSpec reactorWriteMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + } diff --git a/yosql-dao/yosql-dao-fluent-jdbc/src/main/java/wtf/metio/yosql/dao/fluentjdbc/FluentJdbcRxJavaMethodGenerator.java b/yosql-dao/yosql-dao-fluent-jdbc/src/main/java/wtf/metio/yosql/dao/fluentjdbc/FluentJdbcRxJavaMethodGenerator.java index cd4e5b88..0c2850c5 100644 --- a/yosql-dao/yosql-dao-fluent-jdbc/src/main/java/wtf/metio/yosql/dao/fluentjdbc/FluentJdbcRxJavaMethodGenerator.java +++ b/yosql-dao/yosql-dao-fluent-jdbc/src/main/java/wtf/metio/yosql/dao/fluentjdbc/FluentJdbcRxJavaMethodGenerator.java @@ -45,8 +45,18 @@ public final class FluentJdbcRxJavaMethodGenerator implements RxJavaMethodGenera } @Override + public MethodSpec rxJavaCallMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + + @Override public MethodSpec rxJavaReadMethod(final SqlConfiguration configuration, final List vendorStatements) { return null; } + @Override + public MethodSpec rxJavaWriteMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + } diff --git a/yosql-dao/yosql-dao-jdbc/src/main/java/wtf/metio/yosql/dao/jdbc/DefaultJdbcBlocks.java b/yosql-dao/yosql-dao-jdbc/src/main/java/wtf/metio/yosql/dao/jdbc/DefaultJdbcBlocks.java index 53fdc082..a6cacff3 100644 --- a/yosql-dao/yosql-dao-jdbc/src/main/java/wtf/metio/yosql/dao/jdbc/DefaultJdbcBlocks.java +++ b/yosql-dao/yosql-dao-jdbc/src/main/java/wtf/metio/yosql/dao/jdbc/DefaultJdbcBlocks.java @@ -12,6 +12,7 @@ import io.reactivex.Flowable; import io.smallrye.mutiny.Multi; import reactor.core.publisher.Flux; import wtf.metio.yosql.codegen.api.ControlFlows; +import wtf.metio.yosql.codegen.api.Fields; import wtf.metio.yosql.codegen.api.Variables; import wtf.metio.yosql.codegen.blocks.GenericBlocks; import wtf.metio.yosql.internals.javapoet.TypicalTypes; @@ -39,7 +40,7 @@ public final class DefaultJdbcBlocks implements JdbcBlocks { private final ControlFlows controlFlows; private final NamesConfiguration names; private final Variables variables; - private final JdbcFields jdbcFields; + private final Fields fields; private final JdbcMethods jdbcMethods; private final LoggingGenerator logging; @@ -48,7 +49,7 @@ public final class DefaultJdbcBlocks implements JdbcBlocks { final GenericBlocks blocks, final ControlFlows controlFlows, final Variables variables, - final JdbcFields jdbcFields, + final Fields fields, final JdbcMethods jdbcMethods, final LoggingGenerator logging) { this.runtimeConfiguration = runtimeConfiguration; @@ -56,7 +57,7 @@ public final class DefaultJdbcBlocks implements JdbcBlocks { this.names = runtimeConfiguration.names(); this.variables = variables; this.controlFlows = controlFlows; - this.jdbcFields = jdbcFields; + this.fields = fields; this.jdbcMethods = jdbcMethods; this.logging = logging; } @@ -196,7 +197,7 @@ public final class DefaultJdbcBlocks implements JdbcBlocks { .map(SqlStatement::getConfiguration) .filter(config -> Objects.nonNull(config.vendor())) .forEach(config -> { - final var query = jdbcFields.constantSqlStatementFieldName(config); + final var query = fields.constantSqlStatementFieldName(config); builder.add("case $S:\n", config.vendor()) .addStatement("$>$N = $N", names.query(), query) .add(logging.vendorQueryPicked(query)); @@ -208,7 +209,7 @@ public final class DefaultJdbcBlocks implements JdbcBlocks { .findFirst(); if (firstConfigWithoutVendor.isPresent()) { final var config = firstConfigWithoutVendor.get(); - final var query = jdbcFields.constantSqlStatementFieldName(config); + final var query = fields.constantSqlStatementFieldName(config); builder.add("default:\n") .addStatement("$>$N = $N", names.query(), query) .add(logging.vendorQueryPicked(query)); @@ -221,17 +222,17 @@ public final class DefaultJdbcBlocks implements JdbcBlocks { builder.endControlFlow(); } else { final var config = sqlStatements.get(0).getConfiguration(); - final var query = jdbcFields.constantSqlStatementFieldName(config); + final var query = fields.constantSqlStatementFieldName(config); builder.addStatement(variables.inline(String.class, names.query(), "$N", query)) .add(logging.queryPicked(query)); if (logging.isEnabled()) { - final var rawQuery = jdbcFields.constantRawSqlStatementFieldName(config); + final var rawQuery = fields.constantRawSqlStatementFieldName(config); builder.addStatement(variables.inline(String.class, names.rawQuery(), "$N", rawQuery)); } if (Buckets.hasEntries(config.parameters())) { - final var indexFieldName = jdbcFields.constantSqlStatementParameterIndexFieldName(config); + final var indexFieldName = fields.constantSqlStatementParameterIndexFieldName(config); builder.addStatement(variables.inline(TypicalTypes.MAP_OF_STRING_AND_ARRAY_OF_INTS, - names.indexVariable(),"$N", indexFieldName)) + names.indexVariable(), "$N", indexFieldName)) .add(logging.indexPicked(indexFieldName)); } } @@ -240,11 +241,11 @@ public final class DefaultJdbcBlocks implements JdbcBlocks { private void finalizeCase(final CodeBlock.Builder builder, final SqlConfiguration config) { if (logging.isEnabled()) { - final var rawQuery = jdbcFields.constantRawSqlStatementFieldName(config); + final var rawQuery = fields.constantRawSqlStatementFieldName(config); builder.addStatement("$N = $N", names.rawQuery(), rawQuery); } if (Buckets.hasEntries(config.parameters())) { - final var indexName = jdbcFields.constantSqlStatementParameterIndexFieldName(config); + final var indexName = fields.constantSqlStatementParameterIndexFieldName(config); builder.addStatement("$N = $N", names.indexVariable(), indexName) .add(logging.vendorIndexPicked(indexName)); } @@ -261,14 +262,12 @@ public final class DefaultJdbcBlocks implements JdbcBlocks { .flatMap(Collection::stream) .forEach(parameter -> { if (TypeGuesser.guessTypeName(parameter.type()).isPrimitive()) { - builder - .add("\n$>.replace($S, $T.valueOf($N))$<", ":" + parameter.name(), - String.class, parameter.name()); + builder.add("\n$>.replace($S, $T.valueOf($N))$<", ":" + parameter.name(), + String.class, parameter.name()); } else { - builder - .add("\n$>.replace($S, $N == null ? $S : $N.toString())$<", - ":" + parameter.name(), parameter.name(), "null", - parameter.name()); + builder.add("\n$>.replace($S, $N == null ? $S : $N.toString())$<", + ":" + parameter.name(), parameter.name(), "null", + parameter.name()); } }); builder.add(";\n"); @@ -288,14 +287,12 @@ public final class DefaultJdbcBlocks implements JdbcBlocks { .flatMap(Collection::stream) .forEach(parameter -> { if (TypeGuesser.guessTypeName(parameter.type()).isPrimitive()) { - builder - .add("\n$>.replace($S, $T.toString($N))$<", ":" + parameter.name(), - Arrays.class, parameter.name()); + builder.add("\n$>.replace($S, $T.toString($N))$<", ":" + parameter.name(), + Arrays.class, parameter.name()); } else { - builder - .add("\n$>.replace($S, $N == null ? $S : $T.toString($N))$<", - ":" + parameter.name(), parameter.name(), "null", - Arrays.class, parameter.name()); + builder.add("\n$>.replace($S, $N == null ? $S : $T.toString($N))$<", + ":" + parameter.name(), parameter.name(), "null", + Arrays.class, parameter.name()); } }); builder.add(";\n"); diff --git a/yosql-dao/yosql-dao-jdbc/src/main/java/wtf/metio/yosql/dao/jdbc/DefaultJdbcFields.java b/yosql-dao/yosql-dao-jdbc/src/main/java/wtf/metio/yosql/dao/jdbc/DefaultJdbcFields.java deleted file mode 100644 index fdba3619..00000000 --- a/yosql-dao/yosql-dao-jdbc/src/main/java/wtf/metio/yosql/dao/jdbc/DefaultJdbcFields.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * This file is part of yosql. It is subject to the license terms in the LICENSE file found in the top-level - * directory of this distribution and at https://creativecommons.org/publicdomain/zero/1.0/. No part of yosql, - * including this file, may be copied, modified, propagated, or distributed except according to the terms contained - * in the LICENSE file. - */ - -package wtf.metio.yosql.dao.jdbc; - -import wtf.metio.yosql.internals.jdk.Strings; -import wtf.metio.yosql.models.immutables.NamesConfiguration; -import wtf.metio.yosql.models.immutables.SqlConfiguration; - -public final class DefaultJdbcFields implements JdbcFields { - - private static final String NAME_REGEX = "([a-z])([A-Z])"; - private static final String NAME_REPLACEMENT = "$1_$2"; - - private final NamesConfiguration names; - - public DefaultJdbcFields(final NamesConfiguration names) { - this.names = names; - } - - @Override - public String constantSqlStatementFieldName(final SqlConfiguration configuration) { - return configuration.name() - .replaceAll(NAME_REGEX, NAME_REPLACEMENT) - .toUpperCase() - + getVendor(configuration); - } - - @Override - public String constantRawSqlStatementFieldName(final SqlConfiguration configuration) { - return constantSqlStatementFieldName(configuration) + names.rawSuffix(); - } - - @Override - public String constantSqlStatementParameterIndexFieldName(final SqlConfiguration configuration) { - return constantSqlStatementFieldName(configuration) + names.indexSuffix(); - } - - private static String getVendor(final SqlConfiguration configuration) { - return Strings.isBlank(configuration.vendor()) - ? "" - : "_" + configuration.vendor().replace(" ", "_").toUpperCase(); - } - -} diff --git a/yosql-dao/yosql-dao-jdbc/src/main/java/wtf/metio/yosql/dao/jdbc/JdbcFields.java b/yosql-dao/yosql-dao-jdbc/src/main/java/wtf/metio/yosql/dao/jdbc/JdbcFields.java deleted file mode 100644 index 87b91c49..00000000 --- a/yosql-dao/yosql-dao-jdbc/src/main/java/wtf/metio/yosql/dao/jdbc/JdbcFields.java +++ /dev/null @@ -1,20 +0,0 @@ -/* - * This file is part of yosql. It is subject to the license terms in the LICENSE file found in the top-level - * directory of this distribution and at https://creativecommons.org/publicdomain/zero/1.0/. No part of yosql, - * including this file, may be copied, modified, propagated, or distributed except according to the terms contained - * in the LICENSE file. - */ - -package wtf.metio.yosql.dao.jdbc; - -import wtf.metio.yosql.models.immutables.SqlConfiguration; - -public interface JdbcFields { - - String constantSqlStatementFieldName(SqlConfiguration configuration); - - String constantRawSqlStatementFieldName(SqlConfiguration configuration); - - String constantSqlStatementParameterIndexFieldName(SqlConfiguration configuration); - -} diff --git a/yosql-dao/yosql-dao-jdbc/src/main/java/wtf/metio/yosql/dao/jdbc/JdbcFieldsGenerator.java b/yosql-dao/yosql-dao-jdbc/src/main/java/wtf/metio/yosql/dao/jdbc/JdbcFieldsGenerator.java index 5da2defe..d82eea15 100644 --- a/yosql-dao/yosql-dao-jdbc/src/main/java/wtf/metio/yosql/dao/jdbc/JdbcFieldsGenerator.java +++ b/yosql-dao/yosql-dao-jdbc/src/main/java/wtf/metio/yosql/dao/jdbc/JdbcFieldsGenerator.java @@ -43,25 +43,22 @@ public final class JdbcFieldsGenerator implements FieldsGenerator { private final LoggingGenerator logging; private final Javadoc javadoc; private final Fields fields; - private final JdbcFields jdbcFields; public JdbcFieldsGenerator( final ConverterConfiguration converters, final NamesConfiguration names, final LoggingGenerator logging, final Javadoc javadoc, - final Fields fields, - final JdbcFields jdbcFields) { + final Fields fields) { this.converters = converters; this.names = names; this.logging = logging; this.javadoc = javadoc; this.fields = fields; - this.jdbcFields = jdbcFields; } @Override - public CodeBlock staticInitializer(final List statements) { + public Optional staticInitializer(final List statements) { final var builder = CodeBlock.builder(); statements.stream() .map(SqlStatement::getConfiguration) @@ -69,7 +66,7 @@ public final class JdbcFieldsGenerator implements FieldsGenerator { .forEach(config -> config.parameters().stream() .filter(SqlParameter::hasIndices) .forEach(parameter -> addIndexArray(builder, parameter, config))); - return builder.build(); + return Optional.of(builder.build()); } private void addIndexArray( @@ -77,7 +74,7 @@ public final class JdbcFieldsGenerator implements FieldsGenerator { final SqlParameter parameter, final SqlConfiguration config) { builder.addStatement("$N.put($S, $L)", - jdbcFields.constantSqlStatementParameterIndexFieldName(config), + fields.constantSqlStatementParameterIndexFieldName(config), parameter.name(), indexArray(parameter)); } @@ -122,8 +119,7 @@ public final class JdbcFieldsGenerator implements FieldsGenerator { private FieldSpec asConstantRawSqlField(final SqlStatement sqlStatement) { final var configuration = sqlStatement.getConfiguration(); final var rawStatement = sqlStatement.getRawStatement(); - return fields.prepareConstant(String.class, - jdbcFields.constantRawSqlStatementFieldName(configuration)) + return fields.prepareConstant(String.class, fields.constantRawSqlStatementFieldName(configuration)) .initializer(fields.initialize(rawStatement)) .addJavadoc(javadoc.fieldJavaDoc(sqlStatement)) .build(); @@ -133,8 +129,7 @@ public final class JdbcFieldsGenerator implements FieldsGenerator { final var configuration = sqlStatement.getConfiguration(); final var rawStatement = sqlStatement.getRawStatement(); final var statement = replaceNamedParameters(rawStatement); - return fields.prepareConstant(String.class, - jdbcFields.constantSqlStatementFieldName(configuration)) + return fields.prepareConstant(String.class, fields.constantSqlStatementFieldName(configuration)) .initializer(fields.initialize(statement)) .addJavadoc(javadoc.fieldJavaDoc(sqlStatement)) .build(); @@ -147,7 +142,7 @@ public final class JdbcFieldsGenerator implements FieldsGenerator { private FieldSpec asConstantSqlParameterIndexField(final SqlStatement sqlStatement) { final var configuration = sqlStatement.getConfiguration(); return fields.prepareConstant(TypicalTypes.MAP_OF_STRING_AND_ARRAY_OF_INTS, - jdbcFields.constantSqlStatementParameterIndexFieldName(configuration)) + fields.constantSqlStatementParameterIndexFieldName(configuration)) .initializer("new $T<>($L)", HashMap.class, sqlStatement.getConfiguration().parameters().size()) .build(); } diff --git a/yosql-dao/yosql-dao-jdbc/src/main/java/wtf/metio/yosql/dao/jdbc/JdbcMutinyMethodGenerator.java b/yosql-dao/yosql-dao-jdbc/src/main/java/wtf/metio/yosql/dao/jdbc/JdbcMutinyMethodGenerator.java index f72e1c88..441f51c5 100644 --- a/yosql-dao/yosql-dao-jdbc/src/main/java/wtf/metio/yosql/dao/jdbc/JdbcMutinyMethodGenerator.java +++ b/yosql-dao/yosql-dao-jdbc/src/main/java/wtf/metio/yosql/dao/jdbc/JdbcMutinyMethodGenerator.java @@ -74,4 +74,14 @@ public final class JdbcMutinyMethodGenerator implements MutinyMethodGenerator { .build(); } + @Override + public MethodSpec mutinyWriteMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + + @Override + public MethodSpec mutinyCallMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + } diff --git a/yosql-dao/yosql-dao-jdbc/src/main/java/wtf/metio/yosql/dao/jdbc/JdbcReactorMethodGenerator.java b/yosql-dao/yosql-dao-jdbc/src/main/java/wtf/metio/yosql/dao/jdbc/JdbcReactorMethodGenerator.java index 57573c80..933a5ed1 100644 --- a/yosql-dao/yosql-dao-jdbc/src/main/java/wtf/metio/yosql/dao/jdbc/JdbcReactorMethodGenerator.java +++ b/yosql-dao/yosql-dao-jdbc/src/main/java/wtf/metio/yosql/dao/jdbc/JdbcReactorMethodGenerator.java @@ -48,6 +48,11 @@ public final class JdbcReactorMethodGenerator implements ReactorMethodGenerator } @Override + public MethodSpec reactorCallMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + + @Override public MethodSpec reactorReadMethod(final SqlConfiguration configuration, final List statements) { final var converter = configuration.resultRowConverter() .or(converters::defaultConverter).orElseThrow(); @@ -74,4 +79,9 @@ public final class JdbcReactorMethodGenerator implements ReactorMethodGenerator .build(); } + @Override + public MethodSpec reactorWriteMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + } diff --git a/yosql-dao/yosql-dao-jdbc/src/main/java/wtf/metio/yosql/dao/jdbc/JdbcRxJavaMethodGenerator.java b/yosql-dao/yosql-dao-jdbc/src/main/java/wtf/metio/yosql/dao/jdbc/JdbcRxJavaMethodGenerator.java index 8311a28e..1ac324bc 100644 --- a/yosql-dao/yosql-dao-jdbc/src/main/java/wtf/metio/yosql/dao/jdbc/JdbcRxJavaMethodGenerator.java +++ b/yosql-dao/yosql-dao-jdbc/src/main/java/wtf/metio/yosql/dao/jdbc/JdbcRxJavaMethodGenerator.java @@ -48,6 +48,11 @@ public final class JdbcRxJavaMethodGenerator implements RxJavaMethodGenerator { } @Override + public MethodSpec rxJavaCallMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + + @Override public MethodSpec rxJavaReadMethod(final SqlConfiguration configuration, final List statements) { final var converter = configuration.resultRowConverter() .or(converters::defaultConverter).orElseThrow(); @@ -74,4 +79,9 @@ public final class JdbcRxJavaMethodGenerator implements RxJavaMethodGenerator { .build(); } + @Override + public MethodSpec rxJavaWriteMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + } diff --git a/yosql-dao/yosql-dao-jdbc/src/main/java/wtf/metio/yosql/dao/jdbc/utilities/JdbcUtilitiesGenerator.java b/yosql-dao/yosql-dao-jdbc/src/main/java/wtf/metio/yosql/dao/jdbc/utilities/JdbcConverterGenerator.java similarity index 91% rename from yosql-dao/yosql-dao-jdbc/src/main/java/wtf/metio/yosql/dao/jdbc/utilities/JdbcUtilitiesGenerator.java rename to yosql-dao/yosql-dao-jdbc/src/main/java/wtf/metio/yosql/dao/jdbc/utilities/JdbcConverterGenerator.java index 7671177e..acc7f6ea 100644 --- a/yosql-dao/yosql-dao-jdbc/src/main/java/wtf/metio/yosql/dao/jdbc/utilities/JdbcUtilitiesGenerator.java +++ b/yosql-dao/yosql-dao-jdbc/src/main/java/wtf/metio/yosql/dao/jdbc/utilities/JdbcConverterGenerator.java @@ -6,7 +6,7 @@ */ package wtf.metio.yosql.dao.jdbc.utilities; -import wtf.metio.yosql.codegen.api.UtilitiesGenerator; +import wtf.metio.yosql.codegen.api.ConverterGenerator; import wtf.metio.yosql.models.immutables.ConverterConfiguration; import wtf.metio.yosql.models.immutables.PackagedTypeSpec; import wtf.metio.yosql.models.immutables.SqlStatement; @@ -14,7 +14,7 @@ import wtf.metio.yosql.models.immutables.SqlStatement; import java.util.List; import java.util.stream.Stream; -public final class JdbcUtilitiesGenerator implements UtilitiesGenerator { +public final class JdbcConverterGenerator implements ConverterGenerator { private final FlowStateGenerator flowStateGenerator; private final ResultStateGenerator resultStateGenerator; @@ -22,7 +22,7 @@ public final class JdbcUtilitiesGenerator implements UtilitiesGenerator { private final ResultRowGenerator resultRowGenerator; private final ConverterConfiguration converters; - public JdbcUtilitiesGenerator( + public JdbcConverterGenerator( final FlowStateGenerator flowStateGenerator, final ResultStateGenerator resultStateGenerator, final ToResultRowConverterGenerator toResultRowConverterGenerator, @@ -36,7 +36,7 @@ public final class JdbcUtilitiesGenerator implements UtilitiesGenerator { } @Override - public Stream generateUtilities(final List allStatements) { + public Stream generateConverterClasses(final List allStatements) { PackagedTypeSpec resultStateClass = null; PackagedTypeSpec flowStateClass = null; PackagedTypeSpec toResultRowConverterClass = null; diff --git a/yosql-dao/yosql-dao-jdbc/src/test/java/wtf/metio/yosql/dao/jdbc/JdbcFieldsGeneratorTest.java b/yosql-dao/yosql-dao-jdbc/src/test/java/wtf/metio/yosql/dao/jdbc/JdbcFieldsGeneratorTest.java index 02e0c872..398a1f7f 100644 --- a/yosql-dao/yosql-dao-jdbc/src/test/java/wtf/metio/yosql/dao/jdbc/JdbcFieldsGeneratorTest.java +++ b/yosql-dao/yosql-dao-jdbc/src/test/java/wtf/metio/yosql/dao/jdbc/JdbcFieldsGeneratorTest.java @@ -62,7 +62,7 @@ final class JdbcFieldsGeneratorTest { comments = "DO NOT MODIFY - automatically generated by YoSQL" ) private static final java.lang.String QUERY_DATA_RAW = ""\" - SELECT raw FROM table WHERE test = ? AND id = ?;""\"; + SELECT raw FROM table WHERE test = ? AND id = ?;""\"; """, """ /** @@ -76,7 +76,7 @@ final class JdbcFieldsGeneratorTest { comments = "DO NOT MODIFY - automatically generated by YoSQL" ) private static final java.lang.String QUERY_DATA = ""\" - SELECT raw FROM table WHERE test = ? AND id = ?;""\"; + SELECT raw FROM table WHERE test = ? AND id = ?;""\"; """, """ @javax.annotation.processing.Generated( @@ -98,7 +98,7 @@ final class JdbcFieldsGeneratorTest { } @Nested - @DisplayName("using java 4 configuration") + @DisplayName("using Java 4 configuration") class Java4 implements FieldsGeneratorTCK { @Override @@ -170,7 +170,7 @@ final class JdbcFieldsGeneratorTest { } @Nested - @DisplayName("using java 5 configuration") + @DisplayName("using Java 5 configuration") class Java5 implements FieldsGeneratorTCK { @Override @@ -242,7 +242,7 @@ final class JdbcFieldsGeneratorTest { } @Nested - @DisplayName("using java 7 configuration") + @DisplayName("using Java 7 configuration") class Java7 implements FieldsGeneratorTCK { @Override @@ -314,7 +314,7 @@ final class JdbcFieldsGeneratorTest { } @Nested - @DisplayName("using java 8 configuration") + @DisplayName("using Java 8 configuration") class Java8 implements FieldsGeneratorTCK { @Override @@ -386,7 +386,7 @@ final class JdbcFieldsGeneratorTest { } @Nested - @DisplayName("using java 9 configuration") + @DisplayName("using Java 9 configuration") class Java9 implements FieldsGeneratorTCK { @Override @@ -458,7 +458,7 @@ final class JdbcFieldsGeneratorTest { } @Nested - @DisplayName("using java 11 configuration") + @DisplayName("using Java 11 configuration") class Java11 implements FieldsGeneratorTCK { @Override @@ -530,7 +530,7 @@ final class JdbcFieldsGeneratorTest { } @Nested - @DisplayName("using java 14 configuration") + @DisplayName("using Java 14 configuration") class Java14 implements FieldsGeneratorTCK { @Override @@ -575,7 +575,7 @@ final class JdbcFieldsGeneratorTest { comments = "DO NOT MODIFY - automatically generated by YoSQL" ) private static final java.lang.String QUERY_DATA_RAW = ""\" - SELECT raw FROM table WHERE test = ? AND id = ?;""\"; + SELECT raw FROM table WHERE test = ? AND id = ?;""\"; """, """ /** @@ -589,7 +589,7 @@ final class JdbcFieldsGeneratorTest { comments = "DO NOT MODIFY - automatically generated by YoSQL" ) private static final java.lang.String QUERY_DATA = ""\" - SELECT raw FROM table WHERE test = ? AND id = ?;""\"; + SELECT raw FROM table WHERE test = ? AND id = ?;""\"; """, """ @javax.annotation.processing.Generated( @@ -604,7 +604,7 @@ final class JdbcFieldsGeneratorTest { } @Nested - @DisplayName("using java 16 configuration") + @DisplayName("using Java 16 configuration") class Java16 implements FieldsGeneratorTCK { @Override @@ -649,7 +649,7 @@ final class JdbcFieldsGeneratorTest { comments = "DO NOT MODIFY - automatically generated by YoSQL" ) private static final java.lang.String QUERY_DATA_RAW = ""\" - SELECT raw FROM table WHERE test = ? AND id = ?;""\"; + SELECT raw FROM table WHERE test = ? AND id = ?;""\"; """, """ /** @@ -663,7 +663,7 @@ final class JdbcFieldsGeneratorTest { comments = "DO NOT MODIFY - automatically generated by YoSQL" ) private static final java.lang.String QUERY_DATA = ""\" - SELECT raw FROM table WHERE test = ? AND id = ?;""\"; + SELECT raw FROM table WHERE test = ? AND id = ?;""\"; """, """ @javax.annotation.processing.Generated( diff --git a/yosql-dao/yosql-dao-jdbc/src/test/java/wtf/metio/yosql/dao/jdbc/JdbcGenericRepositoryGeneratorTest.java b/yosql-dao/yosql-dao-jdbc/src/test/java/wtf/metio/yosql/dao/jdbc/JdbcGenericRepositoryGeneratorTest.java index d3953bfd..ea8fccee 100644 --- a/yosql-dao/yosql-dao-jdbc/src/test/java/wtf/metio/yosql/dao/jdbc/JdbcGenericRepositoryGeneratorTest.java +++ b/yosql-dao/yosql-dao-jdbc/src/test/java/wtf/metio/yosql/dao/jdbc/JdbcGenericRepositoryGeneratorTest.java @@ -56,7 +56,7 @@ class JdbcGenericRepositoryGeneratorTest { comments = "DO NOT MODIFY - automatically generated by YoSQL" ) private static final java.lang.String QUERY_DATA_RAW = ""\" - SELECT raw FROM table WHERE test = ? AND id = ?;""\"; + SELECT raw FROM table WHERE test = ? AND id = ?;""\"; /** * Generated based on the following file: @@ -69,7 +69,7 @@ class JdbcGenericRepositoryGeneratorTest { comments = "DO NOT MODIFY - automatically generated by YoSQL" ) private static final java.lang.String QUERY_DATA = ""\" - SELECT raw FROM table WHERE test = ? AND id = ?;""\"; + SELECT raw FROM table WHERE test = ? AND id = ?;""\"; @javax.annotation.processing.Generated( value = "YoSQL", @@ -168,7 +168,7 @@ class JdbcGenericRepositoryGeneratorTest { *
    *
  • data/queryData.sql
  • *
- *

Disable generating this method by setting generateStreamEagerApi to false

+ *

Disable generating this method by setting generateMutinyApi to false

* * @see com.example.util.ResultRow */ @@ -176,9 +176,9 @@ class JdbcGenericRepositoryGeneratorTest { value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - public final java.util.stream.Stream queryDataStreamEager( + public final io.smallrye.mutiny.Multi queryDataMulti( final java.lang.Object test, final int id) { - LOG.entering("com.example.persistence.DataRepository", "queryDataStreamEager"); + LOG.entering("com.example.persistence.DataRepository", "queryDataMulti"); try (final var connection = dataSource.getConnection()) { final var query = QUERY_DATA; LOG.finer(() -> java.lang.String.format("Picked query [%s]", "QUERY_DATA")); @@ -206,7 +206,7 @@ class JdbcGenericRepositoryGeneratorTest { while (state.next()) { list.add(resultRow.apply(state)); } - return list.stream(); + return io.smallrye.mutiny.Multi.createFrom().iterable(list); } } } @@ -224,7 +224,7 @@ class JdbcGenericRepositoryGeneratorTest { *
    *
  • data/queryData.sql
  • *
- *

Disable generating this method by setting generateStreamLazyApi to false

+ *

Disable generating this method by setting generateRxJavaApi to false

* * @see com.example.util.ResultRow */ @@ -232,69 +232,39 @@ class JdbcGenericRepositoryGeneratorTest { value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - public final java.util.stream.Stream queryDataStreamLazy( + public final io.reactivex.Flowable queryDataFlow( final java.lang.Object test, final int id) { - LOG.entering("com.example.persistence.DataRepository", "queryDataStreamLazy"); - try { - final var connection = dataSource.getConnection(); + LOG.entering("com.example.persistence.DataRepository", "queryDataFlow"); + try (final var connection = dataSource.getConnection()) { final var query = QUERY_DATA; LOG.finer(() -> java.lang.String.format("Picked query [%s]", "QUERY_DATA")); final var rawQuery = QUERY_DATA_RAW; final var index = QUERY_DATA_INDEX; LOG.finer(() -> java.lang.String.format("Picked index [%s]", "QUERY_DATA_INDEX")); - final var statement = connection.prepareStatement(query); - for (final int jdbcIndex : index.get("test")) { - statement.setObject(jdbcIndex, test); - } - for (final int jdbcIndex : index.get("id")) { - statement.setObject(jdbcIndex, id); - } - if (LOG.isLoggable(java.util.logging.Level.FINE)) { - final var executedQuery = rawQuery - .replace(":test", test == null ? "null" : test.toString()) - .replace(":id", java.lang.String.valueOf(id)); - LOG.fine(() -> java.lang.String.format("Executing query [%s]", executedQuery)); - } - final var resultSet = statement.executeQuery(); - final var resultSetMetaData = resultSet.getMetaData(); - final var columnCount = resultSetMetaData.getColumnCount(); - final var state = new com.example.persistence.converter.ResultState(resultSet, resultSetMetaData, columnCount); - return java.util.stream.StreamSupport.stream(new java.util.Spliterators.AbstractSpliterator(java.lang.Long.MAX_VALUE, java.util.Spliterator.ORDERED) { - @java.lang.Override - @javax.annotation.processing.Generated( - value = "YoSQL", - comments = "DO NOT MODIFY - automatically generated by YoSQL" - ) - public final boolean tryAdvance( - final java.util.function.Consumer action) { - try { - if (state.next()) { - action.accept(resultRow.apply(state)); - return true; - } - return false; - } - catch (final java.sql.SQLException exception) { - throw new java.lang.RuntimeException(exception); - } + try (final var statement = connection.prepareStatement(query)) { + for (final int jdbcIndex : index.get("test")) { + statement.setObject(jdbcIndex, test); } - }, false).onClose(new java.lang.Runnable() { - @java.lang.Override - @javax.annotation.processing.Generated( - value = "YoSQL", - comments = "DO NOT MODIFY - automatically generated by YoSQL" - ) - public final void run() { - try { - resultSet.close(); - statement.close(); - connection.close(); - } - catch (final java.sql.SQLException exception) { - throw new java.lang.RuntimeException(exception); + for (final int jdbcIndex : index.get("id")) { + statement.setObject(jdbcIndex, id); + } + if (LOG.isLoggable(java.util.logging.Level.FINE)) { + final var executedQuery = rawQuery + .replace(":test", test == null ? "null" : test.toString()) + .replace(":id", java.lang.String.valueOf(id)); + LOG.fine(() -> java.lang.String.format("Executing query [%s]", executedQuery)); + } + try (final var resultSet = statement.executeQuery()) { + final var resultSetMetaData = resultSet.getMetaData(); + final var columnCount = resultSetMetaData.getColumnCount(); + final var state = new com.example.persistence.converter.ResultState(resultSet, resultSetMetaData, columnCount); + final var list = new java.util.ArrayList(); + while (state.next()) { + list.add(resultRow.apply(state)); } + return io.reactivex.Flowable.fromIterable(list); } - }); + } } catch (final java.sql.SQLException exception) { throw new java.lang.RuntimeException(exception); @@ -310,7 +280,7 @@ class JdbcGenericRepositoryGeneratorTest { *
    *
  • data/queryData.sql
  • *
- *

Disable generating this method by setting generateRxJavaApi to false

+ *

Disable generating this method by setting generateReactorApi to false

* * @see com.example.util.ResultRow */ @@ -318,9 +288,9 @@ class JdbcGenericRepositoryGeneratorTest { value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - public final io.reactivex.Flowable queryDataFlow( + public final reactor.core.publisher.Flux queryDataFlux( final java.lang.Object test, final int id) { - LOG.entering("com.example.persistence.DataRepository", "queryDataFlow"); + LOG.entering("com.example.persistence.DataRepository", "queryDataFlux"); try (final var connection = dataSource.getConnection()) { final var query = QUERY_DATA; LOG.finer(() -> java.lang.String.format("Picked query [%s]", "QUERY_DATA")); @@ -348,7 +318,7 @@ class JdbcGenericRepositoryGeneratorTest { while (state.next()) { list.add(resultRow.apply(state)); } - return io.reactivex.Flowable.fromIterable(list); + return reactor.core.publisher.Flux.fromIterable(list); } } } @@ -366,7 +336,7 @@ class JdbcGenericRepositoryGeneratorTest { *
    *
  • data/queryData.sql
  • *
- *

Disable generating this method by setting generateReactorApi to false

+ *

Disable generating this method by setting generateStreamEagerApi to false

* * @see com.example.util.ResultRow */ @@ -374,9 +344,9 @@ class JdbcGenericRepositoryGeneratorTest { value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - public final reactor.core.publisher.Flux queryDataFlux( + public final java.util.stream.Stream queryDataStreamEager( final java.lang.Object test, final int id) { - LOG.entering("com.example.persistence.DataRepository", "queryDataFlux"); + LOG.entering("com.example.persistence.DataRepository", "queryDataStreamEager"); try (final var connection = dataSource.getConnection()) { final var query = QUERY_DATA; LOG.finer(() -> java.lang.String.format("Picked query [%s]", "QUERY_DATA")); @@ -404,7 +374,7 @@ class JdbcGenericRepositoryGeneratorTest { while (state.next()) { list.add(resultRow.apply(state)); } - return reactor.core.publisher.Flux.fromIterable(list); + return list.stream(); } } } @@ -422,7 +392,7 @@ class JdbcGenericRepositoryGeneratorTest { *
    *
  • data/queryData.sql
  • *
- *

Disable generating this method by setting generateMutinyApi to false

+ *

Disable generating this method by setting generateStreamLazyApi to false

* * @see com.example.util.ResultRow */ @@ -430,39 +400,69 @@ class JdbcGenericRepositoryGeneratorTest { value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - public final io.smallrye.mutiny.Multi queryDataMulti( + public final java.util.stream.Stream queryDataStreamLazy( final java.lang.Object test, final int id) { - LOG.entering("com.example.persistence.DataRepository", "queryDataMulti"); - try (final var connection = dataSource.getConnection()) { + LOG.entering("com.example.persistence.DataRepository", "queryDataStreamLazy"); + try { + final var connection = dataSource.getConnection(); final var query = QUERY_DATA; LOG.finer(() -> java.lang.String.format("Picked query [%s]", "QUERY_DATA")); final var rawQuery = QUERY_DATA_RAW; final var index = QUERY_DATA_INDEX; LOG.finer(() -> java.lang.String.format("Picked index [%s]", "QUERY_DATA_INDEX")); - try (final var statement = connection.prepareStatement(query)) { - for (final int jdbcIndex : index.get("test")) { - statement.setObject(jdbcIndex, test); - } - for (final int jdbcIndex : index.get("id")) { - statement.setObject(jdbcIndex, id); - } - if (LOG.isLoggable(java.util.logging.Level.FINE)) { - final var executedQuery = rawQuery - .replace(":test", test == null ? "null" : test.toString()) - .replace(":id", java.lang.String.valueOf(id)); - LOG.fine(() -> java.lang.String.format("Executing query [%s]", executedQuery)); + final var statement = connection.prepareStatement(query); + for (final int jdbcIndex : index.get("test")) { + statement.setObject(jdbcIndex, test); + } + for (final int jdbcIndex : index.get("id")) { + statement.setObject(jdbcIndex, id); + } + if (LOG.isLoggable(java.util.logging.Level.FINE)) { + final var executedQuery = rawQuery + .replace(":test", test == null ? "null" : test.toString()) + .replace(":id", java.lang.String.valueOf(id)); + LOG.fine(() -> java.lang.String.format("Executing query [%s]", executedQuery)); + } + final var resultSet = statement.executeQuery(); + final var resultSetMetaData = resultSet.getMetaData(); + final var columnCount = resultSetMetaData.getColumnCount(); + final var state = new com.example.persistence.converter.ResultState(resultSet, resultSetMetaData, columnCount); + return java.util.stream.StreamSupport.stream(new java.util.Spliterators.AbstractSpliterator(java.lang.Long.MAX_VALUE, java.util.Spliterator.ORDERED) { + @java.lang.Override + @javax.annotation.processing.Generated( + value = "YoSQL", + comments = "DO NOT MODIFY - automatically generated by YoSQL" + ) + public final boolean tryAdvance( + final java.util.function.Consumer action) { + try { + if (state.next()) { + action.accept(resultRow.apply(state)); + return true; + } + return false; + } + catch (final java.sql.SQLException exception) { + throw new java.lang.RuntimeException(exception); + } } - try (final var resultSet = statement.executeQuery()) { - final var resultSetMetaData = resultSet.getMetaData(); - final var columnCount = resultSetMetaData.getColumnCount(); - final var state = new com.example.persistence.converter.ResultState(resultSet, resultSetMetaData, columnCount); - final var list = new java.util.ArrayList(); - while (state.next()) { - list.add(resultRow.apply(state)); + }, false).onClose(new java.lang.Runnable() { + @java.lang.Override + @javax.annotation.processing.Generated( + value = "YoSQL", + comments = "DO NOT MODIFY - automatically generated by YoSQL" + ) + public final void run() { + try { + resultSet.close(); + statement.close(); + connection.close(); + } + catch (final java.sql.SQLException exception) { + throw new java.lang.RuntimeException(exception); } - return io.smallrye.mutiny.Multi.createFrom().iterable(list); } - } + }); } catch (final java.sql.SQLException exception) { throw new java.lang.RuntimeException(exception); @@ -624,7 +624,7 @@ class JdbcGenericRepositoryGeneratorTest { *
    *
  • data/queryData.sql
  • *
- *

Disable generating this method by setting generateStreamEagerApi to false

+ *

Disable generating this method by setting generateMutinyApi to false

* * @see com.example.util.ResultRow */ @@ -632,9 +632,9 @@ class JdbcGenericRepositoryGeneratorTest { value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - public final java.util.stream.Stream queryDataStreamEager( + public final io.smallrye.mutiny.Multi queryDataMulti( final java.lang.Object test, final int id) { - LOG.entering("com.example.persistence.DataRepository", "queryDataStreamEager"); + LOG.entering("com.example.persistence.DataRepository", "queryDataMulti"); try (final java.sql.Connection connection = dataSource.getConnection()) { final java.lang.String query = QUERY_DATA; LOG.finer(() -> java.lang.String.format("Picked query [%s]", "QUERY_DATA")); @@ -662,7 +662,7 @@ class JdbcGenericRepositoryGeneratorTest { while (state.next()) { list.add(resultRow.apply(state)); } - return list.stream(); + return io.smallrye.mutiny.Multi.createFrom().iterable(list); } } } @@ -680,7 +680,7 @@ class JdbcGenericRepositoryGeneratorTest { *
    *
  • data/queryData.sql
  • *
- *

Disable generating this method by setting generateStreamLazyApi to false

+ *

Disable generating this method by setting generateRxJavaApi to false

* * @see com.example.util.ResultRow */ @@ -688,69 +688,39 @@ class JdbcGenericRepositoryGeneratorTest { value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - public final java.util.stream.Stream queryDataStreamLazy( + public final io.reactivex.Flowable queryDataFlow( final java.lang.Object test, final int id) { - LOG.entering("com.example.persistence.DataRepository", "queryDataStreamLazy"); - try { - final java.sql.Connection connection = dataSource.getConnection(); + LOG.entering("com.example.persistence.DataRepository", "queryDataFlow"); + try (final java.sql.Connection connection = dataSource.getConnection()) { final java.lang.String query = QUERY_DATA; LOG.finer(() -> java.lang.String.format("Picked query [%s]", "QUERY_DATA")); final java.lang.String rawQuery = QUERY_DATA_RAW; final java.util.Map index = QUERY_DATA_INDEX; LOG.finer(() -> java.lang.String.format("Picked index [%s]", "QUERY_DATA_INDEX")); - final java.sql.PreparedStatement statement = connection.prepareStatement(query); - for (final int jdbcIndex : index.get("test")) { - statement.setObject(jdbcIndex, test); - } - for (final int jdbcIndex : index.get("id")) { - statement.setObject(jdbcIndex, id); - } - if (LOG.isLoggable(java.util.logging.Level.FINE)) { - final java.lang.String executedQuery = rawQuery - .replace(":test", test == null ? "null" : test.toString()) - .replace(":id", java.lang.String.valueOf(id)); - LOG.fine(() -> java.lang.String.format("Executing query [%s]", executedQuery)); - } - final java.sql.ResultSet resultSet = statement.executeQuery(); - final java.sql.ResultSetMetaData resultSetMetaData = resultSet.getMetaData(); - final int columnCount = resultSetMetaData.getColumnCount(); - final com.example.persistence.converter.ResultState state = new com.example.persistence.converter.ResultState(resultSet, resultSetMetaData, columnCount); - return java.util.stream.StreamSupport.stream(new java.util.Spliterators.AbstractSpliterator(java.lang.Long.MAX_VALUE, java.util.Spliterator.ORDERED) { - @java.lang.Override - @javax.annotation.processing.Generated( - value = "YoSQL", - comments = "DO NOT MODIFY - automatically generated by YoSQL" - ) - public final boolean tryAdvance( - final java.util.function.Consumer action) { - try { - if (state.next()) { - action.accept(resultRow.apply(state)); - return true; - } - return false; - } - catch (final java.sql.SQLException exception) { - throw new java.lang.RuntimeException(exception); - } + try (final java.sql.PreparedStatement statement = connection.prepareStatement(query)) { + for (final int jdbcIndex : index.get("test")) { + statement.setObject(jdbcIndex, test); } - }, false).onClose(new java.lang.Runnable() { - @java.lang.Override - @javax.annotation.processing.Generated( - value = "YoSQL", - comments = "DO NOT MODIFY - automatically generated by YoSQL" - ) - public final void run() { - try { - resultSet.close(); - statement.close(); - connection.close(); - } - catch (final java.sql.SQLException exception) { - throw new java.lang.RuntimeException(exception); - } + for (final int jdbcIndex : index.get("id")) { + statement.setObject(jdbcIndex, id); } - }); + if (LOG.isLoggable(java.util.logging.Level.FINE)) { + final java.lang.String executedQuery = rawQuery + .replace(":test", test == null ? "null" : test.toString()) + .replace(":id", java.lang.String.valueOf(id)); + LOG.fine(() -> java.lang.String.format("Executing query [%s]", executedQuery)); + } + try (final java.sql.ResultSet resultSet = statement.executeQuery()) { + final java.sql.ResultSetMetaData resultSetMetaData = resultSet.getMetaData(); + final int columnCount = resultSetMetaData.getColumnCount(); + final com.example.persistence.converter.ResultState state = new com.example.persistence.converter.ResultState(resultSet, resultSetMetaData, columnCount); + final java.util.List list = new java.util.ArrayList(); + while (state.next()) { + list.add(resultRow.apply(state)); + } + return io.reactivex.Flowable.fromIterable(list); + } + } } catch (final java.sql.SQLException exception) { throw new java.lang.RuntimeException(exception); @@ -766,7 +736,7 @@ class JdbcGenericRepositoryGeneratorTest { *
    *
  • data/queryData.sql
  • *
- *

Disable generating this method by setting generateRxJavaApi to false

+ *

Disable generating this method by setting generateReactorApi to false

* * @see com.example.util.ResultRow */ @@ -774,9 +744,9 @@ class JdbcGenericRepositoryGeneratorTest { value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - public final io.reactivex.Flowable queryDataFlow( + public final reactor.core.publisher.Flux queryDataFlux( final java.lang.Object test, final int id) { - LOG.entering("com.example.persistence.DataRepository", "queryDataFlow"); + LOG.entering("com.example.persistence.DataRepository", "queryDataFlux"); try (final java.sql.Connection connection = dataSource.getConnection()) { final java.lang.String query = QUERY_DATA; LOG.finer(() -> java.lang.String.format("Picked query [%s]", "QUERY_DATA")); @@ -804,7 +774,7 @@ class JdbcGenericRepositoryGeneratorTest { while (state.next()) { list.add(resultRow.apply(state)); } - return io.reactivex.Flowable.fromIterable(list); + return reactor.core.publisher.Flux.fromIterable(list); } } } @@ -822,7 +792,7 @@ class JdbcGenericRepositoryGeneratorTest { *
    *
  • data/queryData.sql
  • *
- *

Disable generating this method by setting generateReactorApi to false

+ *

Disable generating this method by setting generateStreamEagerApi to false

* * @see com.example.util.ResultRow */ @@ -830,9 +800,9 @@ class JdbcGenericRepositoryGeneratorTest { value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - public final reactor.core.publisher.Flux queryDataFlux( + public final java.util.stream.Stream queryDataStreamEager( final java.lang.Object test, final int id) { - LOG.entering("com.example.persistence.DataRepository", "queryDataFlux"); + LOG.entering("com.example.persistence.DataRepository", "queryDataStreamEager"); try (final java.sql.Connection connection = dataSource.getConnection()) { final java.lang.String query = QUERY_DATA; LOG.finer(() -> java.lang.String.format("Picked query [%s]", "QUERY_DATA")); @@ -860,7 +830,7 @@ class JdbcGenericRepositoryGeneratorTest { while (state.next()) { list.add(resultRow.apply(state)); } - return reactor.core.publisher.Flux.fromIterable(list); + return list.stream(); } } } @@ -878,7 +848,7 @@ class JdbcGenericRepositoryGeneratorTest { *
    *
  • data/queryData.sql
  • *
- *

Disable generating this method by setting generateMutinyApi to false

+ *

Disable generating this method by setting generateStreamLazyApi to false

* * @see com.example.util.ResultRow */ @@ -886,39 +856,69 @@ class JdbcGenericRepositoryGeneratorTest { value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - public final io.smallrye.mutiny.Multi queryDataMulti( + public final java.util.stream.Stream queryDataStreamLazy( final java.lang.Object test, final int id) { - LOG.entering("com.example.persistence.DataRepository", "queryDataMulti"); - try (final java.sql.Connection connection = dataSource.getConnection()) { + LOG.entering("com.example.persistence.DataRepository", "queryDataStreamLazy"); + try { + final java.sql.Connection connection = dataSource.getConnection(); final java.lang.String query = QUERY_DATA; LOG.finer(() -> java.lang.String.format("Picked query [%s]", "QUERY_DATA")); final java.lang.String rawQuery = QUERY_DATA_RAW; final java.util.Map index = QUERY_DATA_INDEX; LOG.finer(() -> java.lang.String.format("Picked index [%s]", "QUERY_DATA_INDEX")); - try (final java.sql.PreparedStatement statement = connection.prepareStatement(query)) { - for (final int jdbcIndex : index.get("test")) { - statement.setObject(jdbcIndex, test); - } - for (final int jdbcIndex : index.get("id")) { - statement.setObject(jdbcIndex, id); - } - if (LOG.isLoggable(java.util.logging.Level.FINE)) { - final java.lang.String executedQuery = rawQuery - .replace(":test", test == null ? "null" : test.toString()) - .replace(":id", java.lang.String.valueOf(id)); - LOG.fine(() -> java.lang.String.format("Executing query [%s]", executedQuery)); + final java.sql.PreparedStatement statement = connection.prepareStatement(query); + for (final int jdbcIndex : index.get("test")) { + statement.setObject(jdbcIndex, test); + } + for (final int jdbcIndex : index.get("id")) { + statement.setObject(jdbcIndex, id); + } + if (LOG.isLoggable(java.util.logging.Level.FINE)) { + final java.lang.String executedQuery = rawQuery + .replace(":test", test == null ? "null" : test.toString()) + .replace(":id", java.lang.String.valueOf(id)); + LOG.fine(() -> java.lang.String.format("Executing query [%s]", executedQuery)); + } + final java.sql.ResultSet resultSet = statement.executeQuery(); + final java.sql.ResultSetMetaData resultSetMetaData = resultSet.getMetaData(); + final int columnCount = resultSetMetaData.getColumnCount(); + final com.example.persistence.converter.ResultState state = new com.example.persistence.converter.ResultState(resultSet, resultSetMetaData, columnCount); + return java.util.stream.StreamSupport.stream(new java.util.Spliterators.AbstractSpliterator(java.lang.Long.MAX_VALUE, java.util.Spliterator.ORDERED) { + @java.lang.Override + @javax.annotation.processing.Generated( + value = "YoSQL", + comments = "DO NOT MODIFY - automatically generated by YoSQL" + ) + public final boolean tryAdvance( + final java.util.function.Consumer action) { + try { + if (state.next()) { + action.accept(resultRow.apply(state)); + return true; + } + return false; + } + catch (final java.sql.SQLException exception) { + throw new java.lang.RuntimeException(exception); + } } - try (final java.sql.ResultSet resultSet = statement.executeQuery()) { - final java.sql.ResultSetMetaData resultSetMetaData = resultSet.getMetaData(); - final int columnCount = resultSetMetaData.getColumnCount(); - final com.example.persistence.converter.ResultState state = new com.example.persistence.converter.ResultState(resultSet, resultSetMetaData, columnCount); - final java.util.List list = new java.util.ArrayList(); - while (state.next()) { - list.add(resultRow.apply(state)); + }, false).onClose(new java.lang.Runnable() { + @java.lang.Override + @javax.annotation.processing.Generated( + value = "YoSQL", + comments = "DO NOT MODIFY - automatically generated by YoSQL" + ) + public final void run() { + try { + resultSet.close(); + statement.close(); + connection.close(); + } + catch (final java.sql.SQLException exception) { + throw new java.lang.RuntimeException(exception); } - return io.smallrye.mutiny.Multi.createFrom().iterable(list); } - } + }); } catch (final java.sql.SQLException exception) { throw new java.lang.RuntimeException(exception); @@ -1080,7 +1080,7 @@ class JdbcGenericRepositoryGeneratorTest { *
    *
  • data/queryData.sql
  • *
- *

Disable generating this method by setting generateStreamEagerApi to false

+ *

Disable generating this method by setting generateMutinyApi to false

* * @see com.example.util.ResultRow */ @@ -1088,9 +1088,9 @@ class JdbcGenericRepositoryGeneratorTest { value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - public final java.util.stream.Stream queryDataStreamEager( + public final io.smallrye.mutiny.Multi queryDataMulti( final java.lang.Object test, final int id) { - LOG.entering("com.example.persistence.DataRepository", "queryDataStreamEager"); + LOG.entering("com.example.persistence.DataRepository", "queryDataMulti"); try (final java.sql.Connection connection = dataSource.getConnection()) { final java.lang.String query = QUERY_DATA; LOG.finer(() -> java.lang.String.format("Picked query [%s]", "QUERY_DATA")); @@ -1118,7 +1118,7 @@ class JdbcGenericRepositoryGeneratorTest { while (state.next()) { list.add(resultRow.apply(state)); } - return list.stream(); + return io.smallrye.mutiny.Multi.createFrom().iterable(list); } } } @@ -1136,92 +1136,6 @@ class JdbcGenericRepositoryGeneratorTest { *
    *
  • data/queryData.sql
  • *
- *

Disable generating this method by setting generateStreamLazyApi to false

- * - * @see com.example.util.ResultRow - */ - @javax.annotation.processing.Generated( - value = "YoSQL", - comments = "DO NOT MODIFY - automatically generated by YoSQL" - ) - public final java.util.stream.Stream queryDataStreamLazy( - final java.lang.Object test, final int id) { - LOG.entering("com.example.persistence.DataRepository", "queryDataStreamLazy"); - try { - final java.sql.Connection connection = dataSource.getConnection(); - final java.lang.String query = QUERY_DATA; - LOG.finer(() -> java.lang.String.format("Picked query [%s]", "QUERY_DATA")); - final java.lang.String rawQuery = QUERY_DATA_RAW; - final java.util.Map index = QUERY_DATA_INDEX; - LOG.finer(() -> java.lang.String.format("Picked index [%s]", "QUERY_DATA_INDEX")); - final java.sql.PreparedStatement statement = connection.prepareStatement(query); - for (final int jdbcIndex : index.get("test")) { - statement.setObject(jdbcIndex, test); - } - for (final int jdbcIndex : index.get("id")) { - statement.setObject(jdbcIndex, id); - } - if (LOG.isLoggable(java.util.logging.Level.FINE)) { - final java.lang.String executedQuery = rawQuery - .replace(":test", test == null ? "null" : test.toString()) - .replace(":id", java.lang.String.valueOf(id)); - LOG.fine(() -> java.lang.String.format("Executing query [%s]", executedQuery)); - } - final java.sql.ResultSet resultSet = statement.executeQuery(); - final java.sql.ResultSetMetaData resultSetMetaData = resultSet.getMetaData(); - final int columnCount = resultSetMetaData.getColumnCount(); - final com.example.persistence.converter.ResultState state = new com.example.persistence.converter.ResultState(resultSet, resultSetMetaData, columnCount); - return java.util.stream.StreamSupport.stream(new java.util.Spliterators.AbstractSpliterator(java.lang.Long.MAX_VALUE, java.util.Spliterator.ORDERED) { - @java.lang.Override - @javax.annotation.processing.Generated( - value = "YoSQL", - comments = "DO NOT MODIFY - automatically generated by YoSQL" - ) - public final boolean tryAdvance( - final java.util.function.Consumer action) { - try { - if (state.next()) { - action.accept(resultRow.apply(state)); - return true; - } - return false; - } - catch (final java.sql.SQLException exception) { - throw new java.lang.RuntimeException(exception); - } - } - }, false).onClose(new java.lang.Runnable() { - @java.lang.Override - @javax.annotation.processing.Generated( - value = "YoSQL", - comments = "DO NOT MODIFY - automatically generated by YoSQL" - ) - public final void run() { - try { - resultSet.close(); - statement.close(); - connection.close(); - } - catch (final java.sql.SQLException exception) { - throw new java.lang.RuntimeException(exception); - } - } - }); - } - catch (final java.sql.SQLException exception) { - throw new java.lang.RuntimeException(exception); - } - } - - /** - *

Executes the following statement:

- *
-                       * SELECT raw FROM table WHERE test = ? AND id = ?;
- * - *

Generated based on the following file(s):

- *
    - *
  • data/queryData.sql
  • - *
*

Disable generating this method by setting generateRxJavaApi to false

* * @see com.example.util.ResultRow @@ -1334,7 +1248,7 @@ class JdbcGenericRepositoryGeneratorTest { *
    *
  • data/queryData.sql
  • *
- *

Disable generating this method by setting generateMutinyApi to false

+ *

Disable generating this method by setting generateStreamEagerApi to false

* * @see com.example.util.ResultRow */ @@ -1342,9 +1256,9 @@ class JdbcGenericRepositoryGeneratorTest { value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - public final io.smallrye.mutiny.Multi queryDataMulti( + public final java.util.stream.Stream queryDataStreamEager( final java.lang.Object test, final int id) { - LOG.entering("com.example.persistence.DataRepository", "queryDataMulti"); + LOG.entering("com.example.persistence.DataRepository", "queryDataStreamEager"); try (final java.sql.Connection connection = dataSource.getConnection()) { final java.lang.String query = QUERY_DATA; LOG.finer(() -> java.lang.String.format("Picked query [%s]", "QUERY_DATA")); @@ -1372,7 +1286,7 @@ class JdbcGenericRepositoryGeneratorTest { while (state.next()) { list.add(resultRow.apply(state)); } - return io.smallrye.mutiny.Multi.createFrom().iterable(list); + return list.stream(); } } } @@ -1380,43 +1294,129 @@ class JdbcGenericRepositoryGeneratorTest { throw new java.lang.RuntimeException(exception); } } - } - """; - } - - } - - @Nested - @DisplayName("using JavaConfigurations 7 configuration") - class Java7 implements RepositoryGeneratorTCK { - - @Override - public GenericRepositoryGenerator generator() { - return JdbcObjectMother.genericRepositoryGenerator(JavaConfigurations.java7()); - } - - @Override - public String repositoryExpectation() { - return """ - /** - * Generated based on the following file(s): - *
    - *
  • data/queryData.sql
  • - *
- */ - @javax.annotation.processing.Generated( - value = "YoSQL", - comments = "DO NOT MODIFY - automatically generated by YoSQL" - ) - public final class Test { - @javax.annotation.processing.Generated( - value = "YoSQL", - comments = "DO NOT MODIFY - automatically generated by YoSQL" - ) - private static final java.util.logging.Logger LOG = java.util.logging.Logger.getLogger(com.example.persistence.DataRepository.class.getName()); /** - * Generated based on the following file: + *

Executes the following statement:

+ *
+                       * SELECT raw FROM table WHERE test = ? AND id = ?;
+ * + *

Generated based on the following file(s):

+ *
    + *
  • data/queryData.sql
  • + *
+ *

Disable generating this method by setting generateStreamLazyApi to false

+ * + * @see com.example.util.ResultRow + */ + @javax.annotation.processing.Generated( + value = "YoSQL", + comments = "DO NOT MODIFY - automatically generated by YoSQL" + ) + public final java.util.stream.Stream queryDataStreamLazy( + final java.lang.Object test, final int id) { + LOG.entering("com.example.persistence.DataRepository", "queryDataStreamLazy"); + try { + final java.sql.Connection connection = dataSource.getConnection(); + final java.lang.String query = QUERY_DATA; + LOG.finer(() -> java.lang.String.format("Picked query [%s]", "QUERY_DATA")); + final java.lang.String rawQuery = QUERY_DATA_RAW; + final java.util.Map index = QUERY_DATA_INDEX; + LOG.finer(() -> java.lang.String.format("Picked index [%s]", "QUERY_DATA_INDEX")); + final java.sql.PreparedStatement statement = connection.prepareStatement(query); + for (final int jdbcIndex : index.get("test")) { + statement.setObject(jdbcIndex, test); + } + for (final int jdbcIndex : index.get("id")) { + statement.setObject(jdbcIndex, id); + } + if (LOG.isLoggable(java.util.logging.Level.FINE)) { + final java.lang.String executedQuery = rawQuery + .replace(":test", test == null ? "null" : test.toString()) + .replace(":id", java.lang.String.valueOf(id)); + LOG.fine(() -> java.lang.String.format("Executing query [%s]", executedQuery)); + } + final java.sql.ResultSet resultSet = statement.executeQuery(); + final java.sql.ResultSetMetaData resultSetMetaData = resultSet.getMetaData(); + final int columnCount = resultSetMetaData.getColumnCount(); + final com.example.persistence.converter.ResultState state = new com.example.persistence.converter.ResultState(resultSet, resultSetMetaData, columnCount); + return java.util.stream.StreamSupport.stream(new java.util.Spliterators.AbstractSpliterator(java.lang.Long.MAX_VALUE, java.util.Spliterator.ORDERED) { + @java.lang.Override + @javax.annotation.processing.Generated( + value = "YoSQL", + comments = "DO NOT MODIFY - automatically generated by YoSQL" + ) + public final boolean tryAdvance( + final java.util.function.Consumer action) { + try { + if (state.next()) { + action.accept(resultRow.apply(state)); + return true; + } + return false; + } + catch (final java.sql.SQLException exception) { + throw new java.lang.RuntimeException(exception); + } + } + }, false).onClose(new java.lang.Runnable() { + @java.lang.Override + @javax.annotation.processing.Generated( + value = "YoSQL", + comments = "DO NOT MODIFY - automatically generated by YoSQL" + ) + public final void run() { + try { + resultSet.close(); + statement.close(); + connection.close(); + } + catch (final java.sql.SQLException exception) { + throw new java.lang.RuntimeException(exception); + } + } + }); + } + catch (final java.sql.SQLException exception) { + throw new java.lang.RuntimeException(exception); + } + } + } + """; + } + + } + + @Nested + @DisplayName("using JavaConfigurations 7 configuration") + class Java7 implements RepositoryGeneratorTCK { + + @Override + public GenericRepositoryGenerator generator() { + return JdbcObjectMother.genericRepositoryGenerator(JavaConfigurations.java7()); + } + + @Override + public String repositoryExpectation() { + return """ + /** + * Generated based on the following file(s): + *
    + *
  • data/queryData.sql
  • + *
+ */ + @javax.annotation.processing.Generated( + value = "YoSQL", + comments = "DO NOT MODIFY - automatically generated by YoSQL" + ) + public final class Test { + @javax.annotation.processing.Generated( + value = "YoSQL", + comments = "DO NOT MODIFY - automatically generated by YoSQL" + ) + private static final java.util.logging.Logger LOG = java.util.logging.Logger.getLogger(com.example.persistence.DataRepository.class.getName()); + + /** + * Generated based on the following file: *
    *
  • data/queryData.sql
  • *
@@ -1536,7 +1536,7 @@ class JdbcGenericRepositoryGeneratorTest { *
    *
  • data/queryData.sql
  • *
- *

Disable generating this method by setting generateStreamEagerApi to false

+ *

Disable generating this method by setting generateMutinyApi to false

* * @see com.example.util.ResultRow */ @@ -1544,9 +1544,9 @@ class JdbcGenericRepositoryGeneratorTest { value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - public final java.util.stream.Stream queryDataStreamEager( + public final io.smallrye.mutiny.Multi queryDataMulti( final java.lang.Object test, final int id) { - LOG.entering("com.example.persistence.DataRepository", "queryDataStreamEager"); + LOG.entering("com.example.persistence.DataRepository", "queryDataMulti"); try (final java.sql.Connection connection = dataSource.getConnection()) { final java.lang.String query = QUERY_DATA; LOG.finer(() -> java.lang.String.format("Picked query [%s]", "QUERY_DATA")); @@ -1574,7 +1574,7 @@ class JdbcGenericRepositoryGeneratorTest { while (state.next()) { list.add(resultRow.apply(state)); } - return list.stream(); + return io.smallrye.mutiny.Multi.createFrom().iterable(list); } } } @@ -1592,7 +1592,7 @@ class JdbcGenericRepositoryGeneratorTest { *
    *
  • data/queryData.sql
  • *
- *

Disable generating this method by setting generateStreamLazyApi to false

+ *

Disable generating this method by setting generateRxJavaApi to false

* * @see com.example.util.ResultRow */ @@ -1600,69 +1600,39 @@ class JdbcGenericRepositoryGeneratorTest { value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - public final java.util.stream.Stream queryDataStreamLazy( + public final io.reactivex.Flowable queryDataFlow( final java.lang.Object test, final int id) { - LOG.entering("com.example.persistence.DataRepository", "queryDataStreamLazy"); - try { - final java.sql.Connection connection = dataSource.getConnection(); + LOG.entering("com.example.persistence.DataRepository", "queryDataFlow"); + try (final java.sql.Connection connection = dataSource.getConnection()) { final java.lang.String query = QUERY_DATA; LOG.finer(() -> java.lang.String.format("Picked query [%s]", "QUERY_DATA")); final java.lang.String rawQuery = QUERY_DATA_RAW; final java.util.Map index = QUERY_DATA_INDEX; LOG.finer(() -> java.lang.String.format("Picked index [%s]", "QUERY_DATA_INDEX")); - final java.sql.PreparedStatement statement = connection.prepareStatement(query); - for (final int jdbcIndex : index.get("test")) { - statement.setObject(jdbcIndex, test); - } - for (final int jdbcIndex : index.get("id")) { - statement.setObject(jdbcIndex, id); - } - if (LOG.isLoggable(java.util.logging.Level.FINE)) { - final java.lang.String executedQuery = rawQuery - .replace(":test", test == null ? "null" : test.toString()) - .replace(":id", java.lang.String.valueOf(id)); - LOG.fine(() -> java.lang.String.format("Executing query [%s]", executedQuery)); - } - final java.sql.ResultSet resultSet = statement.executeQuery(); - final java.sql.ResultSetMetaData resultSetMetaData = resultSet.getMetaData(); - final int columnCount = resultSetMetaData.getColumnCount(); - final com.example.persistence.converter.ResultState state = new com.example.persistence.converter.ResultState(resultSet, resultSetMetaData, columnCount); - return java.util.stream.StreamSupport.stream(new java.util.Spliterators.AbstractSpliterator(java.lang.Long.MAX_VALUE, java.util.Spliterator.ORDERED) { - @java.lang.Override - @javax.annotation.processing.Generated( - value = "YoSQL", - comments = "DO NOT MODIFY - automatically generated by YoSQL" - ) - public final boolean tryAdvance( - final java.util.function.Consumer action) { - try { - if (state.next()) { - action.accept(resultRow.apply(state)); - return true; - } - return false; - } - catch (final java.sql.SQLException exception) { - throw new java.lang.RuntimeException(exception); - } + try (final java.sql.PreparedStatement statement = connection.prepareStatement(query)) { + for (final int jdbcIndex : index.get("test")) { + statement.setObject(jdbcIndex, test); } - }, false).onClose(new java.lang.Runnable() { - @java.lang.Override - @javax.annotation.processing.Generated( - value = "YoSQL", - comments = "DO NOT MODIFY - automatically generated by YoSQL" - ) - public final void run() { - try { - resultSet.close(); - statement.close(); - connection.close(); - } - catch (final java.sql.SQLException exception) { - throw new java.lang.RuntimeException(exception); + for (final int jdbcIndex : index.get("id")) { + statement.setObject(jdbcIndex, id); + } + if (LOG.isLoggable(java.util.logging.Level.FINE)) { + final java.lang.String executedQuery = rawQuery + .replace(":test", test == null ? "null" : test.toString()) + .replace(":id", java.lang.String.valueOf(id)); + LOG.fine(() -> java.lang.String.format("Executing query [%s]", executedQuery)); + } + try (final java.sql.ResultSet resultSet = statement.executeQuery()) { + final java.sql.ResultSetMetaData resultSetMetaData = resultSet.getMetaData(); + final int columnCount = resultSetMetaData.getColumnCount(); + final com.example.persistence.converter.ResultState state = new com.example.persistence.converter.ResultState(resultSet, resultSetMetaData, columnCount); + final java.util.List list = new java.util.ArrayList(); + while (state.next()) { + list.add(resultRow.apply(state)); } + return io.reactivex.Flowable.fromIterable(list); } - }); + } } catch (final java.sql.SQLException exception) { throw new java.lang.RuntimeException(exception); @@ -1678,7 +1648,7 @@ class JdbcGenericRepositoryGeneratorTest { *
    *
  • data/queryData.sql
  • *
- *

Disable generating this method by setting generateRxJavaApi to false

+ *

Disable generating this method by setting generateReactorApi to false

* * @see com.example.util.ResultRow */ @@ -1686,9 +1656,9 @@ class JdbcGenericRepositoryGeneratorTest { value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - public final io.reactivex.Flowable queryDataFlow( + public final reactor.core.publisher.Flux queryDataFlux( final java.lang.Object test, final int id) { - LOG.entering("com.example.persistence.DataRepository", "queryDataFlow"); + LOG.entering("com.example.persistence.DataRepository", "queryDataFlux"); try (final java.sql.Connection connection = dataSource.getConnection()) { final java.lang.String query = QUERY_DATA; LOG.finer(() -> java.lang.String.format("Picked query [%s]", "QUERY_DATA")); @@ -1716,7 +1686,7 @@ class JdbcGenericRepositoryGeneratorTest { while (state.next()) { list.add(resultRow.apply(state)); } - return io.reactivex.Flowable.fromIterable(list); + return reactor.core.publisher.Flux.fromIterable(list); } } } @@ -1734,7 +1704,7 @@ class JdbcGenericRepositoryGeneratorTest { *
    *
  • data/queryData.sql
  • *
- *

Disable generating this method by setting generateReactorApi to false

+ *

Disable generating this method by setting generateStreamEagerApi to false

* * @see com.example.util.ResultRow */ @@ -1742,9 +1712,9 @@ class JdbcGenericRepositoryGeneratorTest { value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - public final reactor.core.publisher.Flux queryDataFlux( + public final java.util.stream.Stream queryDataStreamEager( final java.lang.Object test, final int id) { - LOG.entering("com.example.persistence.DataRepository", "queryDataFlux"); + LOG.entering("com.example.persistence.DataRepository", "queryDataStreamEager"); try (final java.sql.Connection connection = dataSource.getConnection()) { final java.lang.String query = QUERY_DATA; LOG.finer(() -> java.lang.String.format("Picked query [%s]", "QUERY_DATA")); @@ -1772,7 +1742,7 @@ class JdbcGenericRepositoryGeneratorTest { while (state.next()) { list.add(resultRow.apply(state)); } - return reactor.core.publisher.Flux.fromIterable(list); + return list.stream(); } } } @@ -1790,7 +1760,7 @@ class JdbcGenericRepositoryGeneratorTest { *
    *
  • data/queryData.sql
  • *
- *

Disable generating this method by setting generateMutinyApi to false

+ *

Disable generating this method by setting generateStreamLazyApi to false

* * @see com.example.util.ResultRow */ @@ -1798,39 +1768,69 @@ class JdbcGenericRepositoryGeneratorTest { value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - public final io.smallrye.mutiny.Multi queryDataMulti( + public final java.util.stream.Stream queryDataStreamLazy( final java.lang.Object test, final int id) { - LOG.entering("com.example.persistence.DataRepository", "queryDataMulti"); - try (final java.sql.Connection connection = dataSource.getConnection()) { + LOG.entering("com.example.persistence.DataRepository", "queryDataStreamLazy"); + try { + final java.sql.Connection connection = dataSource.getConnection(); final java.lang.String query = QUERY_DATA; LOG.finer(() -> java.lang.String.format("Picked query [%s]", "QUERY_DATA")); final java.lang.String rawQuery = QUERY_DATA_RAW; final java.util.Map index = QUERY_DATA_INDEX; LOG.finer(() -> java.lang.String.format("Picked index [%s]", "QUERY_DATA_INDEX")); - try (final java.sql.PreparedStatement statement = connection.prepareStatement(query)) { - for (final int jdbcIndex : index.get("test")) { - statement.setObject(jdbcIndex, test); - } - for (final int jdbcIndex : index.get("id")) { - statement.setObject(jdbcIndex, id); - } - if (LOG.isLoggable(java.util.logging.Level.FINE)) { - final java.lang.String executedQuery = rawQuery - .replace(":test", test == null ? "null" : test.toString()) - .replace(":id", java.lang.String.valueOf(id)); - LOG.fine(() -> java.lang.String.format("Executing query [%s]", executedQuery)); + final java.sql.PreparedStatement statement = connection.prepareStatement(query); + for (final int jdbcIndex : index.get("test")) { + statement.setObject(jdbcIndex, test); + } + for (final int jdbcIndex : index.get("id")) { + statement.setObject(jdbcIndex, id); + } + if (LOG.isLoggable(java.util.logging.Level.FINE)) { + final java.lang.String executedQuery = rawQuery + .replace(":test", test == null ? "null" : test.toString()) + .replace(":id", java.lang.String.valueOf(id)); + LOG.fine(() -> java.lang.String.format("Executing query [%s]", executedQuery)); + } + final java.sql.ResultSet resultSet = statement.executeQuery(); + final java.sql.ResultSetMetaData resultSetMetaData = resultSet.getMetaData(); + final int columnCount = resultSetMetaData.getColumnCount(); + final com.example.persistence.converter.ResultState state = new com.example.persistence.converter.ResultState(resultSet, resultSetMetaData, columnCount); + return java.util.stream.StreamSupport.stream(new java.util.Spliterators.AbstractSpliterator(java.lang.Long.MAX_VALUE, java.util.Spliterator.ORDERED) { + @java.lang.Override + @javax.annotation.processing.Generated( + value = "YoSQL", + comments = "DO NOT MODIFY - automatically generated by YoSQL" + ) + public final boolean tryAdvance( + final java.util.function.Consumer action) { + try { + if (state.next()) { + action.accept(resultRow.apply(state)); + return true; + } + return false; + } + catch (final java.sql.SQLException exception) { + throw new java.lang.RuntimeException(exception); + } } - try (final java.sql.ResultSet resultSet = statement.executeQuery()) { - final java.sql.ResultSetMetaData resultSetMetaData = resultSet.getMetaData(); - final int columnCount = resultSetMetaData.getColumnCount(); - final com.example.persistence.converter.ResultState state = new com.example.persistence.converter.ResultState(resultSet, resultSetMetaData, columnCount); - final java.util.List list = new java.util.ArrayList(); - while (state.next()) { - list.add(resultRow.apply(state)); + }, false).onClose(new java.lang.Runnable() { + @java.lang.Override + @javax.annotation.processing.Generated( + value = "YoSQL", + comments = "DO NOT MODIFY - automatically generated by YoSQL" + ) + public final void run() { + try { + resultSet.close(); + statement.close(); + connection.close(); + } + catch (final java.sql.SQLException exception) { + throw new java.lang.RuntimeException(exception); } - return io.smallrye.mutiny.Multi.createFrom().iterable(list); } - } + }); } catch (final java.sql.SQLException exception) { throw new java.lang.RuntimeException(exception); @@ -1992,133 +1992,47 @@ class JdbcGenericRepositoryGeneratorTest { *
    *
  • data/queryData.sql
  • *
- *

Disable generating this method by setting generateStreamEagerApi to false

- * - * @see com.example.util.ResultRow - */ - @javax.annotation.processing.Generated( - value = "YoSQL", - comments = "DO NOT MODIFY - automatically generated by YoSQL" - ) - public final java.util.stream.Stream queryDataStreamEager( - final java.lang.Object test, final int id) { - LOG.entering("com.example.persistence.DataRepository", "queryDataStreamEager"); - try (final java.sql.Connection connection = dataSource.getConnection()) { - final java.lang.String query = QUERY_DATA; - LOG.finer(() -> java.lang.String.format("Picked query [%s]", "QUERY_DATA")); - final java.lang.String rawQuery = QUERY_DATA_RAW; - final java.util.Map index = QUERY_DATA_INDEX; - LOG.finer(() -> java.lang.String.format("Picked index [%s]", "QUERY_DATA_INDEX")); - try (final java.sql.PreparedStatement statement = connection.prepareStatement(query)) { - for (final int jdbcIndex : index.get("test")) { - statement.setObject(jdbcIndex, test); - } - for (final int jdbcIndex : index.get("id")) { - statement.setObject(jdbcIndex, id); - } - if (LOG.isLoggable(java.util.logging.Level.FINE)) { - final java.lang.String executedQuery = rawQuery - .replace(":test", test == null ? "null" : test.toString()) - .replace(":id", java.lang.String.valueOf(id)); - LOG.fine(() -> java.lang.String.format("Executing query [%s]", executedQuery)); - } - try (final java.sql.ResultSet resultSet = statement.executeQuery()) { - final java.sql.ResultSetMetaData resultSetMetaData = resultSet.getMetaData(); - final int columnCount = resultSetMetaData.getColumnCount(); - final com.example.persistence.converter.ResultState state = new com.example.persistence.converter.ResultState(resultSet, resultSetMetaData, columnCount); - final java.util.List list = new java.util.ArrayList(); - while (state.next()) { - list.add(resultRow.apply(state)); - } - return list.stream(); - } - } - } - catch (final java.sql.SQLException exception) { - throw new java.lang.RuntimeException(exception); - } - } - - /** - *

Executes the following statement:

- *
-                       * SELECT raw FROM table WHERE test = ? AND id = ?;
- * - *

Generated based on the following file(s):

- *
    - *
  • data/queryData.sql
  • - *
- *

Disable generating this method by setting generateStreamLazyApi to false

- * - * @see com.example.util.ResultRow - */ - @javax.annotation.processing.Generated( - value = "YoSQL", - comments = "DO NOT MODIFY - automatically generated by YoSQL" - ) - public final java.util.stream.Stream queryDataStreamLazy( - final java.lang.Object test, final int id) { - LOG.entering("com.example.persistence.DataRepository", "queryDataStreamLazy"); - try { - final java.sql.Connection connection = dataSource.getConnection(); - final java.lang.String query = QUERY_DATA; - LOG.finer(() -> java.lang.String.format("Picked query [%s]", "QUERY_DATA")); - final java.lang.String rawQuery = QUERY_DATA_RAW; - final java.util.Map index = QUERY_DATA_INDEX; - LOG.finer(() -> java.lang.String.format("Picked index [%s]", "QUERY_DATA_INDEX")); - final java.sql.PreparedStatement statement = connection.prepareStatement(query); - for (final int jdbcIndex : index.get("test")) { - statement.setObject(jdbcIndex, test); - } - for (final int jdbcIndex : index.get("id")) { - statement.setObject(jdbcIndex, id); - } - if (LOG.isLoggable(java.util.logging.Level.FINE)) { - final java.lang.String executedQuery = rawQuery - .replace(":test", test == null ? "null" : test.toString()) - .replace(":id", java.lang.String.valueOf(id)); - LOG.fine(() -> java.lang.String.format("Executing query [%s]", executedQuery)); - } - final java.sql.ResultSet resultSet = statement.executeQuery(); - final java.sql.ResultSetMetaData resultSetMetaData = resultSet.getMetaData(); - final int columnCount = resultSetMetaData.getColumnCount(); - final com.example.persistence.converter.ResultState state = new com.example.persistence.converter.ResultState(resultSet, resultSetMetaData, columnCount); - return java.util.stream.StreamSupport.stream(new java.util.Spliterators.AbstractSpliterator(java.lang.Long.MAX_VALUE, java.util.Spliterator.ORDERED) { - @java.lang.Override - @javax.annotation.processing.Generated( - value = "YoSQL", - comments = "DO NOT MODIFY - automatically generated by YoSQL" - ) - public final boolean tryAdvance( - final java.util.function.Consumer action) { - try { - if (state.next()) { - action.accept(resultRow.apply(state)); - return true; - } - return false; - } - catch (final java.sql.SQLException exception) { - throw new java.lang.RuntimeException(exception); - } + *

Disable generating this method by setting generateMutinyApi to false

+ * + * @see com.example.util.ResultRow + */ + @javax.annotation.processing.Generated( + value = "YoSQL", + comments = "DO NOT MODIFY - automatically generated by YoSQL" + ) + public final io.smallrye.mutiny.Multi queryDataMulti( + final java.lang.Object test, final int id) { + LOG.entering("com.example.persistence.DataRepository", "queryDataMulti"); + try (final java.sql.Connection connection = dataSource.getConnection()) { + final java.lang.String query = QUERY_DATA; + LOG.finer(() -> java.lang.String.format("Picked query [%s]", "QUERY_DATA")); + final java.lang.String rawQuery = QUERY_DATA_RAW; + final java.util.Map index = QUERY_DATA_INDEX; + LOG.finer(() -> java.lang.String.format("Picked index [%s]", "QUERY_DATA_INDEX")); + try (final java.sql.PreparedStatement statement = connection.prepareStatement(query)) { + for (final int jdbcIndex : index.get("test")) { + statement.setObject(jdbcIndex, test); } - }, false).onClose(new java.lang.Runnable() { - @java.lang.Override - @javax.annotation.processing.Generated( - value = "YoSQL", - comments = "DO NOT MODIFY - automatically generated by YoSQL" - ) - public final void run() { - try { - resultSet.close(); - statement.close(); - connection.close(); - } - catch (final java.sql.SQLException exception) { - throw new java.lang.RuntimeException(exception); + for (final int jdbcIndex : index.get("id")) { + statement.setObject(jdbcIndex, id); + } + if (LOG.isLoggable(java.util.logging.Level.FINE)) { + final java.lang.String executedQuery = rawQuery + .replace(":test", test == null ? "null" : test.toString()) + .replace(":id", java.lang.String.valueOf(id)); + LOG.fine(() -> java.lang.String.format("Executing query [%s]", executedQuery)); + } + try (final java.sql.ResultSet resultSet = statement.executeQuery()) { + final java.sql.ResultSetMetaData resultSetMetaData = resultSet.getMetaData(); + final int columnCount = resultSetMetaData.getColumnCount(); + final com.example.persistence.converter.ResultState state = new com.example.persistence.converter.ResultState(resultSet, resultSetMetaData, columnCount); + final java.util.List list = new java.util.ArrayList(); + while (state.next()) { + list.add(resultRow.apply(state)); } + return io.smallrye.mutiny.Multi.createFrom().iterable(list); } - }); + } } catch (final java.sql.SQLException exception) { throw new java.lang.RuntimeException(exception); @@ -2246,7 +2160,7 @@ class JdbcGenericRepositoryGeneratorTest { *
    *
  • data/queryData.sql
  • *
- *

Disable generating this method by setting generateMutinyApi to false

+ *

Disable generating this method by setting generateStreamEagerApi to false

* * @see com.example.util.ResultRow */ @@ -2254,9 +2168,9 @@ class JdbcGenericRepositoryGeneratorTest { value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - public final io.smallrye.mutiny.Multi queryDataMulti( + public final java.util.stream.Stream queryDataStreamEager( final java.lang.Object test, final int id) { - LOG.entering("com.example.persistence.DataRepository", "queryDataMulti"); + LOG.entering("com.example.persistence.DataRepository", "queryDataStreamEager"); try (final java.sql.Connection connection = dataSource.getConnection()) { final java.lang.String query = QUERY_DATA; LOG.finer(() -> java.lang.String.format("Picked query [%s]", "QUERY_DATA")); @@ -2284,7 +2198,7 @@ class JdbcGenericRepositoryGeneratorTest { while (state.next()) { list.add(resultRow.apply(state)); } - return io.smallrye.mutiny.Multi.createFrom().iterable(list); + return list.stream(); } } } @@ -2292,6 +2206,92 @@ class JdbcGenericRepositoryGeneratorTest { throw new java.lang.RuntimeException(exception); } } + + /** + *

Executes the following statement:

+ *
+                       * SELECT raw FROM table WHERE test = ? AND id = ?;
+ * + *

Generated based on the following file(s):

+ *
    + *
  • data/queryData.sql
  • + *
+ *

Disable generating this method by setting generateStreamLazyApi to false

+ * + * @see com.example.util.ResultRow + */ + @javax.annotation.processing.Generated( + value = "YoSQL", + comments = "DO NOT MODIFY - automatically generated by YoSQL" + ) + public final java.util.stream.Stream queryDataStreamLazy( + final java.lang.Object test, final int id) { + LOG.entering("com.example.persistence.DataRepository", "queryDataStreamLazy"); + try { + final java.sql.Connection connection = dataSource.getConnection(); + final java.lang.String query = QUERY_DATA; + LOG.finer(() -> java.lang.String.format("Picked query [%s]", "QUERY_DATA")); + final java.lang.String rawQuery = QUERY_DATA_RAW; + final java.util.Map index = QUERY_DATA_INDEX; + LOG.finer(() -> java.lang.String.format("Picked index [%s]", "QUERY_DATA_INDEX")); + final java.sql.PreparedStatement statement = connection.prepareStatement(query); + for (final int jdbcIndex : index.get("test")) { + statement.setObject(jdbcIndex, test); + } + for (final int jdbcIndex : index.get("id")) { + statement.setObject(jdbcIndex, id); + } + if (LOG.isLoggable(java.util.logging.Level.FINE)) { + final java.lang.String executedQuery = rawQuery + .replace(":test", test == null ? "null" : test.toString()) + .replace(":id", java.lang.String.valueOf(id)); + LOG.fine(() -> java.lang.String.format("Executing query [%s]", executedQuery)); + } + final java.sql.ResultSet resultSet = statement.executeQuery(); + final java.sql.ResultSetMetaData resultSetMetaData = resultSet.getMetaData(); + final int columnCount = resultSetMetaData.getColumnCount(); + final com.example.persistence.converter.ResultState state = new com.example.persistence.converter.ResultState(resultSet, resultSetMetaData, columnCount); + return java.util.stream.StreamSupport.stream(new java.util.Spliterators.AbstractSpliterator(java.lang.Long.MAX_VALUE, java.util.Spliterator.ORDERED) { + @java.lang.Override + @javax.annotation.processing.Generated( + value = "YoSQL", + comments = "DO NOT MODIFY - automatically generated by YoSQL" + ) + public final boolean tryAdvance( + final java.util.function.Consumer action) { + try { + if (state.next()) { + action.accept(resultRow.apply(state)); + return true; + } + return false; + } + catch (final java.sql.SQLException exception) { + throw new java.lang.RuntimeException(exception); + } + } + }, false).onClose(new java.lang.Runnable() { + @java.lang.Override + @javax.annotation.processing.Generated( + value = "YoSQL", + comments = "DO NOT MODIFY - automatically generated by YoSQL" + ) + public final void run() { + try { + resultSet.close(); + statement.close(); + connection.close(); + } + catch (final java.sql.SQLException exception) { + throw new java.lang.RuntimeException(exception); + } + } + }); + } + catch (final java.sql.SQLException exception) { + throw new java.lang.RuntimeException(exception); + } + } } """; } @@ -2447,134 +2447,48 @@ class JdbcGenericRepositoryGeneratorTest { *

Generated based on the following file(s):

*
    *
  • data/queryData.sql
  • - *
- *

Disable generating this method by setting generateStreamEagerApi to false

- * - * @see com.example.util.ResultRow - */ - @javax.annotation.processing.Generated( - value = "YoSQL", - comments = "DO NOT MODIFY - automatically generated by YoSQL" - ) - public final java.util.stream.Stream queryDataStreamEager( - final java.lang.Object test, final int id) { - LOG.entering("com.example.persistence.DataRepository", "queryDataStreamEager"); - try (final java.sql.Connection connection = dataSource.getConnection()) { - final java.lang.String query = QUERY_DATA; - LOG.finer(() -> java.lang.String.format("Picked query [%s]", "QUERY_DATA")); - final java.lang.String rawQuery = QUERY_DATA_RAW; - final java.util.Map index = QUERY_DATA_INDEX; - LOG.finer(() -> java.lang.String.format("Picked index [%s]", "QUERY_DATA_INDEX")); - try (final java.sql.PreparedStatement statement = connection.prepareStatement(query)) { - for (final int jdbcIndex : index.get("test")) { - statement.setObject(jdbcIndex, test); - } - for (final int jdbcIndex : index.get("id")) { - statement.setObject(jdbcIndex, id); - } - if (LOG.isLoggable(java.util.logging.Level.FINE)) { - final java.lang.String executedQuery = rawQuery - .replace(":test", test == null ? "null" : test.toString()) - .replace(":id", java.lang.String.valueOf(id)); - LOG.fine(() -> java.lang.String.format("Executing query [%s]", executedQuery)); - } - try (final java.sql.ResultSet resultSet = statement.executeQuery()) { - final java.sql.ResultSetMetaData resultSetMetaData = resultSet.getMetaData(); - final int columnCount = resultSetMetaData.getColumnCount(); - final com.example.persistence.converter.ResultState state = new com.example.persistence.converter.ResultState(resultSet, resultSetMetaData, columnCount); - final java.util.List list = new java.util.ArrayList(); - while (state.next()) { - list.add(resultRow.apply(state)); - } - return list.stream(); - } - } - } - catch (final java.sql.SQLException exception) { - throw new java.lang.RuntimeException(exception); - } - } - - /** - *

Executes the following statement:

- *
-                       * SELECT raw FROM table WHERE test = ? AND id = ?;
- * - *

Generated based on the following file(s):

- *
    - *
  • data/queryData.sql
  • - *
- *

Disable generating this method by setting generateStreamLazyApi to false

- * - * @see com.example.util.ResultRow - */ - @javax.annotation.processing.Generated( - value = "YoSQL", - comments = "DO NOT MODIFY - automatically generated by YoSQL" - ) - public final java.util.stream.Stream queryDataStreamLazy( - final java.lang.Object test, final int id) { - LOG.entering("com.example.persistence.DataRepository", "queryDataStreamLazy"); - try { - final java.sql.Connection connection = dataSource.getConnection(); - final java.lang.String query = QUERY_DATA; - LOG.finer(() -> java.lang.String.format("Picked query [%s]", "QUERY_DATA")); - final java.lang.String rawQuery = QUERY_DATA_RAW; - final java.util.Map index = QUERY_DATA_INDEX; - LOG.finer(() -> java.lang.String.format("Picked index [%s]", "QUERY_DATA_INDEX")); - final java.sql.PreparedStatement statement = connection.prepareStatement(query); - for (final int jdbcIndex : index.get("test")) { - statement.setObject(jdbcIndex, test); - } - for (final int jdbcIndex : index.get("id")) { - statement.setObject(jdbcIndex, id); - } - if (LOG.isLoggable(java.util.logging.Level.FINE)) { - final java.lang.String executedQuery = rawQuery - .replace(":test", test == null ? "null" : test.toString()) - .replace(":id", java.lang.String.valueOf(id)); - LOG.fine(() -> java.lang.String.format("Executing query [%s]", executedQuery)); - } - final java.sql.ResultSet resultSet = statement.executeQuery(); - final java.sql.ResultSetMetaData resultSetMetaData = resultSet.getMetaData(); - final int columnCount = resultSetMetaData.getColumnCount(); - final com.example.persistence.converter.ResultState state = new com.example.persistence.converter.ResultState(resultSet, resultSetMetaData, columnCount); - return java.util.stream.StreamSupport.stream(new java.util.Spliterators.AbstractSpliterator(java.lang.Long.MAX_VALUE, java.util.Spliterator.ORDERED) { - @java.lang.Override - @javax.annotation.processing.Generated( - value = "YoSQL", - comments = "DO NOT MODIFY - automatically generated by YoSQL" - ) - public final boolean tryAdvance( - final java.util.function.Consumer action) { - try { - if (state.next()) { - action.accept(resultRow.apply(state)); - return true; - } - return false; - } - catch (final java.sql.SQLException exception) { - throw new java.lang.RuntimeException(exception); - } + * + *

Disable generating this method by setting generateMutinyApi to false

+ * + * @see com.example.util.ResultRow + */ + @javax.annotation.processing.Generated( + value = "YoSQL", + comments = "DO NOT MODIFY - automatically generated by YoSQL" + ) + public final io.smallrye.mutiny.Multi queryDataMulti( + final java.lang.Object test, final int id) { + LOG.entering("com.example.persistence.DataRepository", "queryDataMulti"); + try (final java.sql.Connection connection = dataSource.getConnection()) { + final java.lang.String query = QUERY_DATA; + LOG.finer(() -> java.lang.String.format("Picked query [%s]", "QUERY_DATA")); + final java.lang.String rawQuery = QUERY_DATA_RAW; + final java.util.Map index = QUERY_DATA_INDEX; + LOG.finer(() -> java.lang.String.format("Picked index [%s]", "QUERY_DATA_INDEX")); + try (final java.sql.PreparedStatement statement = connection.prepareStatement(query)) { + for (final int jdbcIndex : index.get("test")) { + statement.setObject(jdbcIndex, test); } - }, false).onClose(new java.lang.Runnable() { - @java.lang.Override - @javax.annotation.processing.Generated( - value = "YoSQL", - comments = "DO NOT MODIFY - automatically generated by YoSQL" - ) - public final void run() { - try { - resultSet.close(); - statement.close(); - connection.close(); - } - catch (final java.sql.SQLException exception) { - throw new java.lang.RuntimeException(exception); + for (final int jdbcIndex : index.get("id")) { + statement.setObject(jdbcIndex, id); + } + if (LOG.isLoggable(java.util.logging.Level.FINE)) { + final java.lang.String executedQuery = rawQuery + .replace(":test", test == null ? "null" : test.toString()) + .replace(":id", java.lang.String.valueOf(id)); + LOG.fine(() -> java.lang.String.format("Executing query [%s]", executedQuery)); + } + try (final java.sql.ResultSet resultSet = statement.executeQuery()) { + final java.sql.ResultSetMetaData resultSetMetaData = resultSet.getMetaData(); + final int columnCount = resultSetMetaData.getColumnCount(); + final com.example.persistence.converter.ResultState state = new com.example.persistence.converter.ResultState(resultSet, resultSetMetaData, columnCount); + final java.util.List list = new java.util.ArrayList(); + while (state.next()) { + list.add(resultRow.apply(state)); } + return io.smallrye.mutiny.Multi.createFrom().iterable(list); } - }); + } } catch (final java.sql.SQLException exception) { throw new java.lang.RuntimeException(exception); @@ -2702,7 +2616,7 @@ class JdbcGenericRepositoryGeneratorTest { *
    *
  • data/queryData.sql
  • *
- *

Disable generating this method by setting generateMutinyApi to false

+ *

Disable generating this method by setting generateStreamEagerApi to false

* * @see com.example.util.ResultRow */ @@ -2710,9 +2624,9 @@ class JdbcGenericRepositoryGeneratorTest { value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - public final io.smallrye.mutiny.Multi queryDataMulti( + public final java.util.stream.Stream queryDataStreamEager( final java.lang.Object test, final int id) { - LOG.entering("com.example.persistence.DataRepository", "queryDataMulti"); + LOG.entering("com.example.persistence.DataRepository", "queryDataStreamEager"); try (final java.sql.Connection connection = dataSource.getConnection()) { final java.lang.String query = QUERY_DATA; LOG.finer(() -> java.lang.String.format("Picked query [%s]", "QUERY_DATA")); @@ -2740,7 +2654,7 @@ class JdbcGenericRepositoryGeneratorTest { while (state.next()) { list.add(resultRow.apply(state)); } - return io.smallrye.mutiny.Multi.createFrom().iterable(list); + return list.stream(); } } } @@ -2748,6 +2662,92 @@ class JdbcGenericRepositoryGeneratorTest { throw new java.lang.RuntimeException(exception); } } + + /** + *

Executes the following statement:

+ *
+                       * SELECT raw FROM table WHERE test = ? AND id = ?;
+ * + *

Generated based on the following file(s):

+ *
    + *
  • data/queryData.sql
  • + *
+ *

Disable generating this method by setting generateStreamLazyApi to false

+ * + * @see com.example.util.ResultRow + */ + @javax.annotation.processing.Generated( + value = "YoSQL", + comments = "DO NOT MODIFY - automatically generated by YoSQL" + ) + public final java.util.stream.Stream queryDataStreamLazy( + final java.lang.Object test, final int id) { + LOG.entering("com.example.persistence.DataRepository", "queryDataStreamLazy"); + try { + final java.sql.Connection connection = dataSource.getConnection(); + final java.lang.String query = QUERY_DATA; + LOG.finer(() -> java.lang.String.format("Picked query [%s]", "QUERY_DATA")); + final java.lang.String rawQuery = QUERY_DATA_RAW; + final java.util.Map index = QUERY_DATA_INDEX; + LOG.finer(() -> java.lang.String.format("Picked index [%s]", "QUERY_DATA_INDEX")); + final java.sql.PreparedStatement statement = connection.prepareStatement(query); + for (final int jdbcIndex : index.get("test")) { + statement.setObject(jdbcIndex, test); + } + for (final int jdbcIndex : index.get("id")) { + statement.setObject(jdbcIndex, id); + } + if (LOG.isLoggable(java.util.logging.Level.FINE)) { + final java.lang.String executedQuery = rawQuery + .replace(":test", test == null ? "null" : test.toString()) + .replace(":id", java.lang.String.valueOf(id)); + LOG.fine(() -> java.lang.String.format("Executing query [%s]", executedQuery)); + } + final java.sql.ResultSet resultSet = statement.executeQuery(); + final java.sql.ResultSetMetaData resultSetMetaData = resultSet.getMetaData(); + final int columnCount = resultSetMetaData.getColumnCount(); + final com.example.persistence.converter.ResultState state = new com.example.persistence.converter.ResultState(resultSet, resultSetMetaData, columnCount); + return java.util.stream.StreamSupport.stream(new java.util.Spliterators.AbstractSpliterator(java.lang.Long.MAX_VALUE, java.util.Spliterator.ORDERED) { + @java.lang.Override + @javax.annotation.processing.Generated( + value = "YoSQL", + comments = "DO NOT MODIFY - automatically generated by YoSQL" + ) + public final boolean tryAdvance( + final java.util.function.Consumer action) { + try { + if (state.next()) { + action.accept(resultRow.apply(state)); + return true; + } + return false; + } + catch (final java.sql.SQLException exception) { + throw new java.lang.RuntimeException(exception); + } + } + }, false).onClose(new java.lang.Runnable() { + @java.lang.Override + @javax.annotation.processing.Generated( + value = "YoSQL", + comments = "DO NOT MODIFY - automatically generated by YoSQL" + ) + public final void run() { + try { + resultSet.close(); + statement.close(); + connection.close(); + } + catch (final java.sql.SQLException exception) { + throw new java.lang.RuntimeException(exception); + } + } + }); + } + catch (final java.sql.SQLException exception) { + throw new java.lang.RuntimeException(exception); + } + } } """; } @@ -2904,133 +2904,47 @@ class JdbcGenericRepositoryGeneratorTest { *
    *
  • data/queryData.sql
  • *
- *

Disable generating this method by setting generateStreamEagerApi to false

- * - * @see com.example.util.ResultRow - */ - @javax.annotation.processing.Generated( - value = "YoSQL", - comments = "DO NOT MODIFY - automatically generated by YoSQL" - ) - public final java.util.stream.Stream queryDataStreamEager( - final java.lang.Object test, final int id) { - LOG.entering("com.example.persistence.DataRepository", "queryDataStreamEager"); - try (final var connection = dataSource.getConnection()) { - final var query = QUERY_DATA; - LOG.finer(() -> java.lang.String.format("Picked query [%s]", "QUERY_DATA")); - final var rawQuery = QUERY_DATA_RAW; - final var index = QUERY_DATA_INDEX; - LOG.finer(() -> java.lang.String.format("Picked index [%s]", "QUERY_DATA_INDEX")); - try (final var statement = connection.prepareStatement(query)) { - for (final int jdbcIndex : index.get("test")) { - statement.setObject(jdbcIndex, test); - } - for (final int jdbcIndex : index.get("id")) { - statement.setObject(jdbcIndex, id); - } - if (LOG.isLoggable(java.util.logging.Level.FINE)) { - final var executedQuery = rawQuery - .replace(":test", test == null ? "null" : test.toString()) - .replace(":id", java.lang.String.valueOf(id)); - LOG.fine(() -> java.lang.String.format("Executing query [%s]", executedQuery)); - } - try (final var resultSet = statement.executeQuery()) { - final var resultSetMetaData = resultSet.getMetaData(); - final var columnCount = resultSetMetaData.getColumnCount(); - final var state = new com.example.persistence.converter.ResultState(resultSet, resultSetMetaData, columnCount); - final var list = new java.util.ArrayList(); - while (state.next()) { - list.add(resultRow.apply(state)); - } - return list.stream(); - } - } - } - catch (final java.sql.SQLException exception) { - throw new java.lang.RuntimeException(exception); - } - } - - /** - *

Executes the following statement:

- *
-                       * SELECT raw FROM table WHERE test = ? AND id = ?;
- * - *

Generated based on the following file(s):

- *
    - *
  • data/queryData.sql
  • - *
- *

Disable generating this method by setting generateStreamLazyApi to false

+ *

Disable generating this method by setting generateMutinyApi to false

* * @see com.example.util.ResultRow - */ - @javax.annotation.processing.Generated( - value = "YoSQL", - comments = "DO NOT MODIFY - automatically generated by YoSQL" - ) - public final java.util.stream.Stream queryDataStreamLazy( - final java.lang.Object test, final int id) { - LOG.entering("com.example.persistence.DataRepository", "queryDataStreamLazy"); - try { - final var connection = dataSource.getConnection(); - final var query = QUERY_DATA; - LOG.finer(() -> java.lang.String.format("Picked query [%s]", "QUERY_DATA")); - final var rawQuery = QUERY_DATA_RAW; - final var index = QUERY_DATA_INDEX; - LOG.finer(() -> java.lang.String.format("Picked index [%s]", "QUERY_DATA_INDEX")); - final var statement = connection.prepareStatement(query); - for (final int jdbcIndex : index.get("test")) { - statement.setObject(jdbcIndex, test); - } - for (final int jdbcIndex : index.get("id")) { - statement.setObject(jdbcIndex, id); - } - if (LOG.isLoggable(java.util.logging.Level.FINE)) { - final var executedQuery = rawQuery - .replace(":test", test == null ? "null" : test.toString()) - .replace(":id", java.lang.String.valueOf(id)); - LOG.fine(() -> java.lang.String.format("Executing query [%s]", executedQuery)); - } - final var resultSet = statement.executeQuery(); - final var resultSetMetaData = resultSet.getMetaData(); - final var columnCount = resultSetMetaData.getColumnCount(); - final var state = new com.example.persistence.converter.ResultState(resultSet, resultSetMetaData, columnCount); - return java.util.stream.StreamSupport.stream(new java.util.Spliterators.AbstractSpliterator(java.lang.Long.MAX_VALUE, java.util.Spliterator.ORDERED) { - @java.lang.Override - @javax.annotation.processing.Generated( - value = "YoSQL", - comments = "DO NOT MODIFY - automatically generated by YoSQL" - ) - public final boolean tryAdvance( - final java.util.function.Consumer action) { - try { - if (state.next()) { - action.accept(resultRow.apply(state)); - return true; - } - return false; - } - catch (final java.sql.SQLException exception) { - throw new java.lang.RuntimeException(exception); - } + */ + @javax.annotation.processing.Generated( + value = "YoSQL", + comments = "DO NOT MODIFY - automatically generated by YoSQL" + ) + public final io.smallrye.mutiny.Multi queryDataMulti( + final java.lang.Object test, final int id) { + LOG.entering("com.example.persistence.DataRepository", "queryDataMulti"); + try (final var connection = dataSource.getConnection()) { + final var query = QUERY_DATA; + LOG.finer(() -> java.lang.String.format("Picked query [%s]", "QUERY_DATA")); + final var rawQuery = QUERY_DATA_RAW; + final var index = QUERY_DATA_INDEX; + LOG.finer(() -> java.lang.String.format("Picked index [%s]", "QUERY_DATA_INDEX")); + try (final var statement = connection.prepareStatement(query)) { + for (final int jdbcIndex : index.get("test")) { + statement.setObject(jdbcIndex, test); } - }, false).onClose(new java.lang.Runnable() { - @java.lang.Override - @javax.annotation.processing.Generated( - value = "YoSQL", - comments = "DO NOT MODIFY - automatically generated by YoSQL" - ) - public final void run() { - try { - resultSet.close(); - statement.close(); - connection.close(); - } - catch (final java.sql.SQLException exception) { - throw new java.lang.RuntimeException(exception); + for (final int jdbcIndex : index.get("id")) { + statement.setObject(jdbcIndex, id); + } + if (LOG.isLoggable(java.util.logging.Level.FINE)) { + final var executedQuery = rawQuery + .replace(":test", test == null ? "null" : test.toString()) + .replace(":id", java.lang.String.valueOf(id)); + LOG.fine(() -> java.lang.String.format("Executing query [%s]", executedQuery)); + } + try (final var resultSet = statement.executeQuery()) { + final var resultSetMetaData = resultSet.getMetaData(); + final var columnCount = resultSetMetaData.getColumnCount(); + final var state = new com.example.persistence.converter.ResultState(resultSet, resultSetMetaData, columnCount); + final var list = new java.util.ArrayList(); + while (state.next()) { + list.add(resultRow.apply(state)); } + return io.smallrye.mutiny.Multi.createFrom().iterable(list); } - }); + } } catch (final java.sql.SQLException exception) { throw new java.lang.RuntimeException(exception); @@ -3158,7 +3072,7 @@ class JdbcGenericRepositoryGeneratorTest { *
    *
  • data/queryData.sql
  • *
- *

Disable generating this method by setting generateMutinyApi to false

+ *

Disable generating this method by setting generateStreamEagerApi to false

* * @see com.example.util.ResultRow */ @@ -3166,9 +3080,9 @@ class JdbcGenericRepositoryGeneratorTest { value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - public final io.smallrye.mutiny.Multi queryDataMulti( + public final java.util.stream.Stream queryDataStreamEager( final java.lang.Object test, final int id) { - LOG.entering("com.example.persistence.DataRepository", "queryDataMulti"); + LOG.entering("com.example.persistence.DataRepository", "queryDataStreamEager"); try (final var connection = dataSource.getConnection()) { final var query = QUERY_DATA; LOG.finer(() -> java.lang.String.format("Picked query [%s]", "QUERY_DATA")); @@ -3196,7 +3110,7 @@ class JdbcGenericRepositoryGeneratorTest { while (state.next()) { list.add(resultRow.apply(state)); } - return io.smallrye.mutiny.Multi.createFrom().iterable(list); + return list.stream(); } } } @@ -3204,6 +3118,92 @@ class JdbcGenericRepositoryGeneratorTest { throw new java.lang.RuntimeException(exception); } } + + /** + *

Executes the following statement:

+ *
+                       * SELECT raw FROM table WHERE test = ? AND id = ?;
+ * + *

Generated based on the following file(s):

+ *
    + *
  • data/queryData.sql
  • + *
+ *

Disable generating this method by setting generateStreamLazyApi to false

+ * + * @see com.example.util.ResultRow + */ + @javax.annotation.processing.Generated( + value = "YoSQL", + comments = "DO NOT MODIFY - automatically generated by YoSQL" + ) + public final java.util.stream.Stream queryDataStreamLazy( + final java.lang.Object test, final int id) { + LOG.entering("com.example.persistence.DataRepository", "queryDataStreamLazy"); + try { + final var connection = dataSource.getConnection(); + final var query = QUERY_DATA; + LOG.finer(() -> java.lang.String.format("Picked query [%s]", "QUERY_DATA")); + final var rawQuery = QUERY_DATA_RAW; + final var index = QUERY_DATA_INDEX; + LOG.finer(() -> java.lang.String.format("Picked index [%s]", "QUERY_DATA_INDEX")); + final var statement = connection.prepareStatement(query); + for (final int jdbcIndex : index.get("test")) { + statement.setObject(jdbcIndex, test); + } + for (final int jdbcIndex : index.get("id")) { + statement.setObject(jdbcIndex, id); + } + if (LOG.isLoggable(java.util.logging.Level.FINE)) { + final var executedQuery = rawQuery + .replace(":test", test == null ? "null" : test.toString()) + .replace(":id", java.lang.String.valueOf(id)); + LOG.fine(() -> java.lang.String.format("Executing query [%s]", executedQuery)); + } + final var resultSet = statement.executeQuery(); + final var resultSetMetaData = resultSet.getMetaData(); + final var columnCount = resultSetMetaData.getColumnCount(); + final var state = new com.example.persistence.converter.ResultState(resultSet, resultSetMetaData, columnCount); + return java.util.stream.StreamSupport.stream(new java.util.Spliterators.AbstractSpliterator(java.lang.Long.MAX_VALUE, java.util.Spliterator.ORDERED) { + @java.lang.Override + @javax.annotation.processing.Generated( + value = "YoSQL", + comments = "DO NOT MODIFY - automatically generated by YoSQL" + ) + public final boolean tryAdvance( + final java.util.function.Consumer action) { + try { + if (state.next()) { + action.accept(resultRow.apply(state)); + return true; + } + return false; + } + catch (final java.sql.SQLException exception) { + throw new java.lang.RuntimeException(exception); + } + } + }, false).onClose(new java.lang.Runnable() { + @java.lang.Override + @javax.annotation.processing.Generated( + value = "YoSQL", + comments = "DO NOT MODIFY - automatically generated by YoSQL" + ) + public final void run() { + try { + resultSet.close(); + statement.close(); + connection.close(); + } + catch (final java.sql.SQLException exception) { + throw new java.lang.RuntimeException(exception); + } + } + }); + } + catch (final java.sql.SQLException exception) { + throw new java.lang.RuntimeException(exception); + } + } } """; } @@ -3250,7 +3250,7 @@ class JdbcGenericRepositoryGeneratorTest { comments = "DO NOT MODIFY - automatically generated by YoSQL" ) private static final java.lang.String QUERY_DATA_RAW = ""\" - SELECT raw FROM table WHERE test = ? AND id = ?;""\"; + SELECT raw FROM table WHERE test = ? AND id = ?;""\"; /** * Generated based on the following file: @@ -3263,7 +3263,7 @@ class JdbcGenericRepositoryGeneratorTest { comments = "DO NOT MODIFY - automatically generated by YoSQL" ) private static final java.lang.String QUERY_DATA = ""\" - SELECT raw FROM table WHERE test = ? AND id = ?;""\"; + SELECT raw FROM table WHERE test = ? AND id = ?;""\"; @javax.annotation.processing.Generated( value = "YoSQL", @@ -3362,7 +3362,7 @@ class JdbcGenericRepositoryGeneratorTest { *
    *
  • data/queryData.sql
  • *
- *

Disable generating this method by setting generateStreamEagerApi to false

+ *

Disable generating this method by setting generateMutinyApi to false

* * @see com.example.util.ResultRow */ @@ -3370,9 +3370,9 @@ class JdbcGenericRepositoryGeneratorTest { value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - public final java.util.stream.Stream queryDataStreamEager( + public final io.smallrye.mutiny.Multi queryDataMulti( final java.lang.Object test, final int id) { - LOG.entering("com.example.persistence.DataRepository", "queryDataStreamEager"); + LOG.entering("com.example.persistence.DataRepository", "queryDataMulti"); try (final var connection = dataSource.getConnection()) { final var query = QUERY_DATA; LOG.finer(() -> java.lang.String.format("Picked query [%s]", "QUERY_DATA")); @@ -3400,7 +3400,7 @@ class JdbcGenericRepositoryGeneratorTest { while (state.next()) { list.add(resultRow.apply(state)); } - return list.stream(); + return io.smallrye.mutiny.Multi.createFrom().iterable(list); } } } @@ -3418,7 +3418,7 @@ class JdbcGenericRepositoryGeneratorTest { *
    *
  • data/queryData.sql
  • *
- *

Disable generating this method by setting generateStreamLazyApi to false

+ *

Disable generating this method by setting generateRxJavaApi to false

* * @see com.example.util.ResultRow */ @@ -3426,69 +3426,39 @@ class JdbcGenericRepositoryGeneratorTest { value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - public final java.util.stream.Stream queryDataStreamLazy( + public final io.reactivex.Flowable queryDataFlow( final java.lang.Object test, final int id) { - LOG.entering("com.example.persistence.DataRepository", "queryDataStreamLazy"); - try { - final var connection = dataSource.getConnection(); + LOG.entering("com.example.persistence.DataRepository", "queryDataFlow"); + try (final var connection = dataSource.getConnection()) { final var query = QUERY_DATA; LOG.finer(() -> java.lang.String.format("Picked query [%s]", "QUERY_DATA")); final var rawQuery = QUERY_DATA_RAW; final var index = QUERY_DATA_INDEX; LOG.finer(() -> java.lang.String.format("Picked index [%s]", "QUERY_DATA_INDEX")); - final var statement = connection.prepareStatement(query); - for (final int jdbcIndex : index.get("test")) { - statement.setObject(jdbcIndex, test); - } - for (final int jdbcIndex : index.get("id")) { - statement.setObject(jdbcIndex, id); - } - if (LOG.isLoggable(java.util.logging.Level.FINE)) { - final var executedQuery = rawQuery - .replace(":test", test == null ? "null" : test.toString()) - .replace(":id", java.lang.String.valueOf(id)); - LOG.fine(() -> java.lang.String.format("Executing query [%s]", executedQuery)); - } - final var resultSet = statement.executeQuery(); - final var resultSetMetaData = resultSet.getMetaData(); - final var columnCount = resultSetMetaData.getColumnCount(); - final var state = new com.example.persistence.converter.ResultState(resultSet, resultSetMetaData, columnCount); - return java.util.stream.StreamSupport.stream(new java.util.Spliterators.AbstractSpliterator(java.lang.Long.MAX_VALUE, java.util.Spliterator.ORDERED) { - @java.lang.Override - @javax.annotation.processing.Generated( - value = "YoSQL", - comments = "DO NOT MODIFY - automatically generated by YoSQL" - ) - public final boolean tryAdvance( - final java.util.function.Consumer action) { - try { - if (state.next()) { - action.accept(resultRow.apply(state)); - return true; - } - return false; - } - catch (final java.sql.SQLException exception) { - throw new java.lang.RuntimeException(exception); - } + try (final var statement = connection.prepareStatement(query)) { + for (final int jdbcIndex : index.get("test")) { + statement.setObject(jdbcIndex, test); } - }, false).onClose(new java.lang.Runnable() { - @java.lang.Override - @javax.annotation.processing.Generated( - value = "YoSQL", - comments = "DO NOT MODIFY - automatically generated by YoSQL" - ) - public final void run() { - try { - resultSet.close(); - statement.close(); - connection.close(); - } - catch (final java.sql.SQLException exception) { - throw new java.lang.RuntimeException(exception); + for (final int jdbcIndex : index.get("id")) { + statement.setObject(jdbcIndex, id); + } + if (LOG.isLoggable(java.util.logging.Level.FINE)) { + final var executedQuery = rawQuery + .replace(":test", test == null ? "null" : test.toString()) + .replace(":id", java.lang.String.valueOf(id)); + LOG.fine(() -> java.lang.String.format("Executing query [%s]", executedQuery)); + } + try (final var resultSet = statement.executeQuery()) { + final var resultSetMetaData = resultSet.getMetaData(); + final var columnCount = resultSetMetaData.getColumnCount(); + final var state = new com.example.persistence.converter.ResultState(resultSet, resultSetMetaData, columnCount); + final var list = new java.util.ArrayList(); + while (state.next()) { + list.add(resultRow.apply(state)); } + return io.reactivex.Flowable.fromIterable(list); } - }); + } } catch (final java.sql.SQLException exception) { throw new java.lang.RuntimeException(exception); @@ -3504,7 +3474,7 @@ class JdbcGenericRepositoryGeneratorTest { *
    *
  • data/queryData.sql
  • *
- *

Disable generating this method by setting generateRxJavaApi to false

+ *

Disable generating this method by setting generateReactorApi to false

* * @see com.example.util.ResultRow */ @@ -3512,9 +3482,9 @@ class JdbcGenericRepositoryGeneratorTest { value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - public final io.reactivex.Flowable queryDataFlow( + public final reactor.core.publisher.Flux queryDataFlux( final java.lang.Object test, final int id) { - LOG.entering("com.example.persistence.DataRepository", "queryDataFlow"); + LOG.entering("com.example.persistence.DataRepository", "queryDataFlux"); try (final var connection = dataSource.getConnection()) { final var query = QUERY_DATA; LOG.finer(() -> java.lang.String.format("Picked query [%s]", "QUERY_DATA")); @@ -3542,7 +3512,7 @@ class JdbcGenericRepositoryGeneratorTest { while (state.next()) { list.add(resultRow.apply(state)); } - return io.reactivex.Flowable.fromIterable(list); + return reactor.core.publisher.Flux.fromIterable(list); } } } @@ -3560,7 +3530,7 @@ class JdbcGenericRepositoryGeneratorTest { *
    *
  • data/queryData.sql
  • *
- *

Disable generating this method by setting generateReactorApi to false

+ *

Disable generating this method by setting generateStreamEagerApi to false

* * @see com.example.util.ResultRow */ @@ -3568,9 +3538,9 @@ class JdbcGenericRepositoryGeneratorTest { value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - public final reactor.core.publisher.Flux queryDataFlux( + public final java.util.stream.Stream queryDataStreamEager( final java.lang.Object test, final int id) { - LOG.entering("com.example.persistence.DataRepository", "queryDataFlux"); + LOG.entering("com.example.persistence.DataRepository", "queryDataStreamEager"); try (final var connection = dataSource.getConnection()) { final var query = QUERY_DATA; LOG.finer(() -> java.lang.String.format("Picked query [%s]", "QUERY_DATA")); @@ -3598,7 +3568,7 @@ class JdbcGenericRepositoryGeneratorTest { while (state.next()) { list.add(resultRow.apply(state)); } - return reactor.core.publisher.Flux.fromIterable(list); + return list.stream(); } } } @@ -3616,7 +3586,7 @@ class JdbcGenericRepositoryGeneratorTest { *
    *
  • data/queryData.sql
  • *
- *

Disable generating this method by setting generateMutinyApi to false

+ *

Disable generating this method by setting generateStreamLazyApi to false

* * @see com.example.util.ResultRow */ @@ -3624,39 +3594,69 @@ class JdbcGenericRepositoryGeneratorTest { value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - public final io.smallrye.mutiny.Multi queryDataMulti( + public final java.util.stream.Stream queryDataStreamLazy( final java.lang.Object test, final int id) { - LOG.entering("com.example.persistence.DataRepository", "queryDataMulti"); - try (final var connection = dataSource.getConnection()) { + LOG.entering("com.example.persistence.DataRepository", "queryDataStreamLazy"); + try { + final var connection = dataSource.getConnection(); final var query = QUERY_DATA; LOG.finer(() -> java.lang.String.format("Picked query [%s]", "QUERY_DATA")); final var rawQuery = QUERY_DATA_RAW; final var index = QUERY_DATA_INDEX; LOG.finer(() -> java.lang.String.format("Picked index [%s]", "QUERY_DATA_INDEX")); - try (final var statement = connection.prepareStatement(query)) { - for (final int jdbcIndex : index.get("test")) { - statement.setObject(jdbcIndex, test); - } - for (final int jdbcIndex : index.get("id")) { - statement.setObject(jdbcIndex, id); - } - if (LOG.isLoggable(java.util.logging.Level.FINE)) { - final var executedQuery = rawQuery - .replace(":test", test == null ? "null" : test.toString()) - .replace(":id", java.lang.String.valueOf(id)); - LOG.fine(() -> java.lang.String.format("Executing query [%s]", executedQuery)); + final var statement = connection.prepareStatement(query); + for (final int jdbcIndex : index.get("test")) { + statement.setObject(jdbcIndex, test); + } + for (final int jdbcIndex : index.get("id")) { + statement.setObject(jdbcIndex, id); + } + if (LOG.isLoggable(java.util.logging.Level.FINE)) { + final var executedQuery = rawQuery + .replace(":test", test == null ? "null" : test.toString()) + .replace(":id", java.lang.String.valueOf(id)); + LOG.fine(() -> java.lang.String.format("Executing query [%s]", executedQuery)); + } + final var resultSet = statement.executeQuery(); + final var resultSetMetaData = resultSet.getMetaData(); + final var columnCount = resultSetMetaData.getColumnCount(); + final var state = new com.example.persistence.converter.ResultState(resultSet, resultSetMetaData, columnCount); + return java.util.stream.StreamSupport.stream(new java.util.Spliterators.AbstractSpliterator(java.lang.Long.MAX_VALUE, java.util.Spliterator.ORDERED) { + @java.lang.Override + @javax.annotation.processing.Generated( + value = "YoSQL", + comments = "DO NOT MODIFY - automatically generated by YoSQL" + ) + public final boolean tryAdvance( + final java.util.function.Consumer action) { + try { + if (state.next()) { + action.accept(resultRow.apply(state)); + return true; + } + return false; + } + catch (final java.sql.SQLException exception) { + throw new java.lang.RuntimeException(exception); + } } - try (final var resultSet = statement.executeQuery()) { - final var resultSetMetaData = resultSet.getMetaData(); - final var columnCount = resultSetMetaData.getColumnCount(); - final var state = new com.example.persistence.converter.ResultState(resultSet, resultSetMetaData, columnCount); - final var list = new java.util.ArrayList(); - while (state.next()) { - list.add(resultRow.apply(state)); + }, false).onClose(new java.lang.Runnable() { + @java.lang.Override + @javax.annotation.processing.Generated( + value = "YoSQL", + comments = "DO NOT MODIFY - automatically generated by YoSQL" + ) + public final void run() { + try { + resultSet.close(); + statement.close(); + connection.close(); + } + catch (final java.sql.SQLException exception) { + throw new java.lang.RuntimeException(exception); } - return io.smallrye.mutiny.Multi.createFrom().iterable(list); } - } + }); } catch (final java.sql.SQLException exception) { throw new java.lang.RuntimeException(exception); @@ -3708,7 +3708,7 @@ class JdbcGenericRepositoryGeneratorTest { comments = "DO NOT MODIFY - automatically generated by YoSQL" ) private static final java.lang.String QUERY_DATA_RAW = ""\" - SELECT raw FROM table WHERE test = ? AND id = ?;""\"; + SELECT raw FROM table WHERE test = ? AND id = ?;""\"; /** * Generated based on the following file: @@ -3721,7 +3721,7 @@ class JdbcGenericRepositoryGeneratorTest { comments = "DO NOT MODIFY - automatically generated by YoSQL" ) private static final java.lang.String QUERY_DATA = ""\" - SELECT raw FROM table WHERE test = ? AND id = ?;""\"; + SELECT raw FROM table WHERE test = ? AND id = ?;""\"; @javax.annotation.processing.Generated( value = "YoSQL", @@ -3820,7 +3820,7 @@ class JdbcGenericRepositoryGeneratorTest { *
    *
  • data/queryData.sql
  • *
- *

Disable generating this method by setting generateStreamEagerApi to false

+ *

Disable generating this method by setting generateMutinyApi to false

* * @see com.example.util.ResultRow */ @@ -3828,9 +3828,9 @@ class JdbcGenericRepositoryGeneratorTest { value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - public final java.util.stream.Stream queryDataStreamEager( + public final io.smallrye.mutiny.Multi queryDataMulti( final java.lang.Object test, final int id) { - LOG.entering("com.example.persistence.DataRepository", "queryDataStreamEager"); + LOG.entering("com.example.persistence.DataRepository", "queryDataMulti"); try (final var connection = dataSource.getConnection()) { final var query = QUERY_DATA; LOG.finer(() -> java.lang.String.format("Picked query [%s]", "QUERY_DATA")); @@ -3858,7 +3858,7 @@ class JdbcGenericRepositoryGeneratorTest { while (state.next()) { list.add(resultRow.apply(state)); } - return list.stream(); + return io.smallrye.mutiny.Multi.createFrom().iterable(list); } } } @@ -3876,7 +3876,7 @@ class JdbcGenericRepositoryGeneratorTest { *
    *
  • data/queryData.sql
  • *
- *

Disable generating this method by setting generateStreamLazyApi to false

+ *

Disable generating this method by setting generateRxJavaApi to false

* * @see com.example.util.ResultRow */ @@ -3884,69 +3884,39 @@ class JdbcGenericRepositoryGeneratorTest { value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - public final java.util.stream.Stream queryDataStreamLazy( + public final io.reactivex.Flowable queryDataFlow( final java.lang.Object test, final int id) { - LOG.entering("com.example.persistence.DataRepository", "queryDataStreamLazy"); - try { - final var connection = dataSource.getConnection(); + LOG.entering("com.example.persistence.DataRepository", "queryDataFlow"); + try (final var connection = dataSource.getConnection()) { final var query = QUERY_DATA; LOG.finer(() -> java.lang.String.format("Picked query [%s]", "QUERY_DATA")); final var rawQuery = QUERY_DATA_RAW; final var index = QUERY_DATA_INDEX; LOG.finer(() -> java.lang.String.format("Picked index [%s]", "QUERY_DATA_INDEX")); - final var statement = connection.prepareStatement(query); - for (final int jdbcIndex : index.get("test")) { - statement.setObject(jdbcIndex, test); - } - for (final int jdbcIndex : index.get("id")) { - statement.setObject(jdbcIndex, id); - } - if (LOG.isLoggable(java.util.logging.Level.FINE)) { - final var executedQuery = rawQuery - .replace(":test", test == null ? "null" : test.toString()) - .replace(":id", java.lang.String.valueOf(id)); - LOG.fine(() -> java.lang.String.format("Executing query [%s]", executedQuery)); - } - final var resultSet = statement.executeQuery(); - final var resultSetMetaData = resultSet.getMetaData(); - final var columnCount = resultSetMetaData.getColumnCount(); - final var state = new com.example.persistence.converter.ResultState(resultSet, resultSetMetaData, columnCount); - return java.util.stream.StreamSupport.stream(new java.util.Spliterators.AbstractSpliterator(java.lang.Long.MAX_VALUE, java.util.Spliterator.ORDERED) { - @java.lang.Override - @javax.annotation.processing.Generated( - value = "YoSQL", - comments = "DO NOT MODIFY - automatically generated by YoSQL" - ) - public final boolean tryAdvance( - final java.util.function.Consumer action) { - try { - if (state.next()) { - action.accept(resultRow.apply(state)); - return true; - } - return false; - } - catch (final java.sql.SQLException exception) { - throw new java.lang.RuntimeException(exception); - } + try (final var statement = connection.prepareStatement(query)) { + for (final int jdbcIndex : index.get("test")) { + statement.setObject(jdbcIndex, test); } - }, false).onClose(new java.lang.Runnable() { - @java.lang.Override - @javax.annotation.processing.Generated( - value = "YoSQL", - comments = "DO NOT MODIFY - automatically generated by YoSQL" - ) - public final void run() { - try { - resultSet.close(); - statement.close(); - connection.close(); - } - catch (final java.sql.SQLException exception) { - throw new java.lang.RuntimeException(exception); + for (final int jdbcIndex : index.get("id")) { + statement.setObject(jdbcIndex, id); + } + if (LOG.isLoggable(java.util.logging.Level.FINE)) { + final var executedQuery = rawQuery + .replace(":test", test == null ? "null" : test.toString()) + .replace(":id", java.lang.String.valueOf(id)); + LOG.fine(() -> java.lang.String.format("Executing query [%s]", executedQuery)); + } + try (final var resultSet = statement.executeQuery()) { + final var resultSetMetaData = resultSet.getMetaData(); + final var columnCount = resultSetMetaData.getColumnCount(); + final var state = new com.example.persistence.converter.ResultState(resultSet, resultSetMetaData, columnCount); + final var list = new java.util.ArrayList(); + while (state.next()) { + list.add(resultRow.apply(state)); } + return io.reactivex.Flowable.fromIterable(list); } - }); + } } catch (final java.sql.SQLException exception) { throw new java.lang.RuntimeException(exception); @@ -3962,7 +3932,7 @@ class JdbcGenericRepositoryGeneratorTest { *
    *
  • data/queryData.sql
  • *
- *

Disable generating this method by setting generateRxJavaApi to false

+ *

Disable generating this method by setting generateReactorApi to false

* * @see com.example.util.ResultRow */ @@ -3970,9 +3940,9 @@ class JdbcGenericRepositoryGeneratorTest { value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - public final io.reactivex.Flowable queryDataFlow( + public final reactor.core.publisher.Flux queryDataFlux( final java.lang.Object test, final int id) { - LOG.entering("com.example.persistence.DataRepository", "queryDataFlow"); + LOG.entering("com.example.persistence.DataRepository", "queryDataFlux"); try (final var connection = dataSource.getConnection()) { final var query = QUERY_DATA; LOG.finer(() -> java.lang.String.format("Picked query [%s]", "QUERY_DATA")); @@ -4000,7 +3970,7 @@ class JdbcGenericRepositoryGeneratorTest { while (state.next()) { list.add(resultRow.apply(state)); } - return io.reactivex.Flowable.fromIterable(list); + return reactor.core.publisher.Flux.fromIterable(list); } } } @@ -4018,7 +3988,7 @@ class JdbcGenericRepositoryGeneratorTest { *
    *
  • data/queryData.sql
  • *
- *

Disable generating this method by setting generateReactorApi to false

+ *

Disable generating this method by setting generateStreamEagerApi to false

* * @see com.example.util.ResultRow */ @@ -4026,9 +3996,9 @@ class JdbcGenericRepositoryGeneratorTest { value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - public final reactor.core.publisher.Flux queryDataFlux( + public final java.util.stream.Stream queryDataStreamEager( final java.lang.Object test, final int id) { - LOG.entering("com.example.persistence.DataRepository", "queryDataFlux"); + LOG.entering("com.example.persistence.DataRepository", "queryDataStreamEager"); try (final var connection = dataSource.getConnection()) { final var query = QUERY_DATA; LOG.finer(() -> java.lang.String.format("Picked query [%s]", "QUERY_DATA")); @@ -4056,7 +4026,7 @@ class JdbcGenericRepositoryGeneratorTest { while (state.next()) { list.add(resultRow.apply(state)); } - return reactor.core.publisher.Flux.fromIterable(list); + return list.stream(); } } } @@ -4074,7 +4044,7 @@ class JdbcGenericRepositoryGeneratorTest { *
    *
  • data/queryData.sql
  • *
- *

Disable generating this method by setting generateMutinyApi to false

+ *

Disable generating this method by setting generateStreamLazyApi to false

* * @see com.example.util.ResultRow */ @@ -4082,39 +4052,69 @@ class JdbcGenericRepositoryGeneratorTest { value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - public final io.smallrye.mutiny.Multi queryDataMulti( + public final java.util.stream.Stream queryDataStreamLazy( final java.lang.Object test, final int id) { - LOG.entering("com.example.persistence.DataRepository", "queryDataMulti"); - try (final var connection = dataSource.getConnection()) { + LOG.entering("com.example.persistence.DataRepository", "queryDataStreamLazy"); + try { + final var connection = dataSource.getConnection(); final var query = QUERY_DATA; LOG.finer(() -> java.lang.String.format("Picked query [%s]", "QUERY_DATA")); final var rawQuery = QUERY_DATA_RAW; final var index = QUERY_DATA_INDEX; LOG.finer(() -> java.lang.String.format("Picked index [%s]", "QUERY_DATA_INDEX")); - try (final var statement = connection.prepareStatement(query)) { - for (final int jdbcIndex : index.get("test")) { - statement.setObject(jdbcIndex, test); - } - for (final int jdbcIndex : index.get("id")) { - statement.setObject(jdbcIndex, id); - } - if (LOG.isLoggable(java.util.logging.Level.FINE)) { - final var executedQuery = rawQuery - .replace(":test", test == null ? "null" : test.toString()) - .replace(":id", java.lang.String.valueOf(id)); - LOG.fine(() -> java.lang.String.format("Executing query [%s]", executedQuery)); + final var statement = connection.prepareStatement(query); + for (final int jdbcIndex : index.get("test")) { + statement.setObject(jdbcIndex, test); + } + for (final int jdbcIndex : index.get("id")) { + statement.setObject(jdbcIndex, id); + } + if (LOG.isLoggable(java.util.logging.Level.FINE)) { + final var executedQuery = rawQuery + .replace(":test", test == null ? "null" : test.toString()) + .replace(":id", java.lang.String.valueOf(id)); + LOG.fine(() -> java.lang.String.format("Executing query [%s]", executedQuery)); + } + final var resultSet = statement.executeQuery(); + final var resultSetMetaData = resultSet.getMetaData(); + final var columnCount = resultSetMetaData.getColumnCount(); + final var state = new com.example.persistence.converter.ResultState(resultSet, resultSetMetaData, columnCount); + return java.util.stream.StreamSupport.stream(new java.util.Spliterators.AbstractSpliterator(java.lang.Long.MAX_VALUE, java.util.Spliterator.ORDERED) { + @java.lang.Override + @javax.annotation.processing.Generated( + value = "YoSQL", + comments = "DO NOT MODIFY - automatically generated by YoSQL" + ) + public final boolean tryAdvance( + final java.util.function.Consumer action) { + try { + if (state.next()) { + action.accept(resultRow.apply(state)); + return true; + } + return false; + } + catch (final java.sql.SQLException exception) { + throw new java.lang.RuntimeException(exception); + } } - try (final var resultSet = statement.executeQuery()) { - final var resultSetMetaData = resultSet.getMetaData(); - final var columnCount = resultSetMetaData.getColumnCount(); - final var state = new com.example.persistence.converter.ResultState(resultSet, resultSetMetaData, columnCount); - final var list = new java.util.ArrayList(); - while (state.next()) { - list.add(resultRow.apply(state)); + }, false).onClose(new java.lang.Runnable() { + @java.lang.Override + @javax.annotation.processing.Generated( + value = "YoSQL", + comments = "DO NOT MODIFY - automatically generated by YoSQL" + ) + public final void run() { + try { + resultSet.close(); + statement.close(); + connection.close(); + } + catch (final java.sql.SQLException exception) { + throw new java.lang.RuntimeException(exception); } - return io.smallrye.mutiny.Multi.createFrom().iterable(list); } - } + }); } catch (final java.sql.SQLException exception) { throw new java.lang.RuntimeException(exception); diff --git a/yosql-dao/yosql-dao-jdbc/src/test/java/wtf/metio/yosql/dao/jdbc/JdbcObjectMother.java b/yosql-dao/yosql-dao-jdbc/src/test/java/wtf/metio/yosql/dao/jdbc/JdbcObjectMother.java index 67fe4c89..6d0f80b7 100644 --- a/yosql-dao/yosql-dao-jdbc/src/test/java/wtf/metio/yosql/dao/jdbc/JdbcObjectMother.java +++ b/yosql-dao/yosql-dao-jdbc/src/test/java/wtf/metio/yosql/dao/jdbc/JdbcObjectMother.java @@ -43,12 +43,7 @@ public final class JdbcObjectMother { NamesConfigurations.defaults(), LoggingObjectMother.loggingGenerator(), Blocks.javadoc(), - Blocks.fields(java), - jdbcFields()); - } - - public static DefaultJdbcFields jdbcFields() { - return new DefaultJdbcFields(NamesConfigurations.defaults()); + Blocks.fields(java)); } public static ConstructorGenerator constructorGenerator(final JavaConfiguration java) { @@ -74,7 +69,7 @@ public final class JdbcObjectMother { Blocks.genericBlocks(), Blocks.controlFlows(java), Blocks.variables(java), - jdbcFields(), + Blocks.fields(java), jdbcMethods(), LoggingObjectMother.loggingGenerator()); } diff --git a/yosql-dao/yosql-dao-jdbi/src/main/java/wtf/metio/yosql/dao/jdbi/JdbiFieldsGenerator.java b/yosql-dao/yosql-dao-jdbi/src/main/java/wtf/metio/yosql/dao/jdbi/JdbiFieldsGenerator.java index 27858b24..29443693 100644 --- a/yosql-dao/yosql-dao-jdbi/src/main/java/wtf/metio/yosql/dao/jdbi/JdbiFieldsGenerator.java +++ b/yosql-dao/yosql-dao-jdbi/src/main/java/wtf/metio/yosql/dao/jdbi/JdbiFieldsGenerator.java @@ -16,6 +16,7 @@ import wtf.metio.yosql.logging.api.LoggingGenerator; import wtf.metio.yosql.models.immutables.SqlStatement; import java.util.List; +import java.util.Optional; public final class JdbiFieldsGenerator implements FieldsGenerator { @@ -33,8 +34,8 @@ public final class JdbiFieldsGenerator implements FieldsGenerator { } @Override - public CodeBlock staticInitializer(final List statements) { - return null; + public Optional staticInitializer(final List statements) { + return Optional.empty(); } @Override diff --git a/yosql-dao/yosql-dao-jdbi/src/main/java/wtf/metio/yosql/dao/jdbi/JdbiMutinyMethodGenerator.java b/yosql-dao/yosql-dao-jdbi/src/main/java/wtf/metio/yosql/dao/jdbi/JdbiMutinyMethodGenerator.java index a7f688c3..ed8be2ce 100644 --- a/yosql-dao/yosql-dao-jdbi/src/main/java/wtf/metio/yosql/dao/jdbi/JdbiMutinyMethodGenerator.java +++ b/yosql-dao/yosql-dao-jdbi/src/main/java/wtf/metio/yosql/dao/jdbi/JdbiMutinyMethodGenerator.java @@ -20,4 +20,14 @@ public final class JdbiMutinyMethodGenerator implements MutinyMethodGenerator { return null; } + @Override + public MethodSpec mutinyWriteMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + + @Override + public MethodSpec mutinyCallMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + } diff --git a/yosql-dao/yosql-dao-jdbi/src/main/java/wtf/metio/yosql/dao/jdbi/JdbiReactorMethodGenerator.java b/yosql-dao/yosql-dao-jdbi/src/main/java/wtf/metio/yosql/dao/jdbi/JdbiReactorMethodGenerator.java index be47cd1e..2fd1820b 100644 --- a/yosql-dao/yosql-dao-jdbi/src/main/java/wtf/metio/yosql/dao/jdbi/JdbiReactorMethodGenerator.java +++ b/yosql-dao/yosql-dao-jdbi/src/main/java/wtf/metio/yosql/dao/jdbi/JdbiReactorMethodGenerator.java @@ -16,8 +16,18 @@ import java.util.List; public final class JdbiReactorMethodGenerator implements ReactorMethodGenerator { @Override + public MethodSpec reactorCallMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + + @Override public MethodSpec reactorReadMethod(final SqlConfiguration configuration, final List vendorStatements) { return null; } + @Override + public MethodSpec reactorWriteMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + } diff --git a/yosql-dao/yosql-dao-jdbi/src/main/java/wtf/metio/yosql/dao/jdbi/JdbiRxJavaMethodGenerator.java b/yosql-dao/yosql-dao-jdbi/src/main/java/wtf/metio/yosql/dao/jdbi/JdbiRxJavaMethodGenerator.java index e21e1019..66f004b8 100644 --- a/yosql-dao/yosql-dao-jdbi/src/main/java/wtf/metio/yosql/dao/jdbi/JdbiRxJavaMethodGenerator.java +++ b/yosql-dao/yosql-dao-jdbi/src/main/java/wtf/metio/yosql/dao/jdbi/JdbiRxJavaMethodGenerator.java @@ -45,8 +45,18 @@ public final class JdbiRxJavaMethodGenerator implements RxJavaMethodGenerator { } @Override + public MethodSpec rxJavaCallMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + + @Override public MethodSpec rxJavaReadMethod(final SqlConfiguration configuration, final List vendorStatements) { return null; } + @Override + public MethodSpec rxJavaWriteMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + } diff --git a/yosql-dao/yosql-dao-jooq/src/main/java/wtf/metio/yosql/dao/jooq/JooqFieldsGenerator.java b/yosql-dao/yosql-dao-jooq/src/main/java/wtf/metio/yosql/dao/jooq/JooqFieldsGenerator.java index fc559fb5..5db4c0da 100644 --- a/yosql-dao/yosql-dao-jooq/src/main/java/wtf/metio/yosql/dao/jooq/JooqFieldsGenerator.java +++ b/yosql-dao/yosql-dao-jooq/src/main/java/wtf/metio/yosql/dao/jooq/JooqFieldsGenerator.java @@ -16,6 +16,7 @@ import wtf.metio.yosql.logging.api.LoggingGenerator; import wtf.metio.yosql.models.immutables.SqlStatement; import java.util.List; +import java.util.Optional; public final class JooqFieldsGenerator implements FieldsGenerator { @@ -33,8 +34,8 @@ public final class JooqFieldsGenerator implements FieldsGenerator { } @Override - public CodeBlock staticInitializer(final List statements) { - return null; + public Optional staticInitializer(final List statements) { + return Optional.empty(); } @Override diff --git a/yosql-dao/yosql-dao-jooq/src/main/java/wtf/metio/yosql/dao/jooq/JooqMutinyMethodGenerator.java b/yosql-dao/yosql-dao-jooq/src/main/java/wtf/metio/yosql/dao/jooq/JooqMutinyMethodGenerator.java index 89daeba9..37037464 100644 --- a/yosql-dao/yosql-dao-jooq/src/main/java/wtf/metio/yosql/dao/jooq/JooqMutinyMethodGenerator.java +++ b/yosql-dao/yosql-dao-jooq/src/main/java/wtf/metio/yosql/dao/jooq/JooqMutinyMethodGenerator.java @@ -20,4 +20,14 @@ public final class JooqMutinyMethodGenerator implements MutinyMethodGenerator { return null; } + @Override + public MethodSpec mutinyWriteMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + + @Override + public MethodSpec mutinyCallMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + } diff --git a/yosql-dao/yosql-dao-jooq/src/main/java/wtf/metio/yosql/dao/jooq/JooqReactorMethodGenerator.java b/yosql-dao/yosql-dao-jooq/src/main/java/wtf/metio/yosql/dao/jooq/JooqReactorMethodGenerator.java index eb706fbb..5181946e 100644 --- a/yosql-dao/yosql-dao-jooq/src/main/java/wtf/metio/yosql/dao/jooq/JooqReactorMethodGenerator.java +++ b/yosql-dao/yosql-dao-jooq/src/main/java/wtf/metio/yosql/dao/jooq/JooqReactorMethodGenerator.java @@ -16,8 +16,18 @@ import java.util.List; public final class JooqReactorMethodGenerator implements ReactorMethodGenerator { @Override + public MethodSpec reactorCallMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + + @Override public MethodSpec reactorReadMethod(final SqlConfiguration configuration, final List vendorStatements) { return null; } + @Override + public MethodSpec reactorWriteMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + } diff --git a/yosql-dao/yosql-dao-jooq/src/main/java/wtf/metio/yosql/dao/jooq/JooqRxJavaMethodGenerator.java b/yosql-dao/yosql-dao-jooq/src/main/java/wtf/metio/yosql/dao/jooq/JooqRxJavaMethodGenerator.java index ef524021..38c27c0a 100644 --- a/yosql-dao/yosql-dao-jooq/src/main/java/wtf/metio/yosql/dao/jooq/JooqRxJavaMethodGenerator.java +++ b/yosql-dao/yosql-dao-jooq/src/main/java/wtf/metio/yosql/dao/jooq/JooqRxJavaMethodGenerator.java @@ -45,8 +45,18 @@ public final class JooqRxJavaMethodGenerator implements RxJavaMethodGenerator { } @Override + public MethodSpec rxJavaCallMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + + @Override public MethodSpec rxJavaReadMethod(final SqlConfiguration configuration, final List vendorStatements) { return null; } + @Override + public MethodSpec rxJavaWriteMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + } diff --git a/yosql-dao/yosql-dao-jpa/src/main/java/wtf/metio/yosql/dao/jpa/JpaFieldsGenerator.java b/yosql-dao/yosql-dao-jpa/src/main/java/wtf/metio/yosql/dao/jpa/JpaFieldsGenerator.java index f10e16b1..6c35a286 100644 --- a/yosql-dao/yosql-dao-jpa/src/main/java/wtf/metio/yosql/dao/jpa/JpaFieldsGenerator.java +++ b/yosql-dao/yosql-dao-jpa/src/main/java/wtf/metio/yosql/dao/jpa/JpaFieldsGenerator.java @@ -16,6 +16,7 @@ import wtf.metio.yosql.logging.api.LoggingGenerator; import wtf.metio.yosql.models.immutables.SqlStatement; import java.util.List; +import java.util.Optional; public final class JpaFieldsGenerator implements FieldsGenerator { @@ -33,8 +34,8 @@ public final class JpaFieldsGenerator implements FieldsGenerator { } @Override - public CodeBlock staticInitializer(final List statements) { - return null; + public Optional staticInitializer(final List statements) { + return Optional.empty(); } @Override diff --git a/yosql-dao/yosql-dao-jpa/src/main/java/wtf/metio/yosql/dao/jpa/JpaMutinyMethodGenerator.java b/yosql-dao/yosql-dao-jpa/src/main/java/wtf/metio/yosql/dao/jpa/JpaMutinyMethodGenerator.java index e228c085..08398ee9 100644 --- a/yosql-dao/yosql-dao-jpa/src/main/java/wtf/metio/yosql/dao/jpa/JpaMutinyMethodGenerator.java +++ b/yosql-dao/yosql-dao-jpa/src/main/java/wtf/metio/yosql/dao/jpa/JpaMutinyMethodGenerator.java @@ -20,4 +20,14 @@ public final class JpaMutinyMethodGenerator implements MutinyMethodGenerator { return null; } + @Override + public MethodSpec mutinyWriteMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + + @Override + public MethodSpec mutinyCallMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + } diff --git a/yosql-dao/yosql-dao-jpa/src/main/java/wtf/metio/yosql/dao/jpa/JpaReactorMethodGenerator.java b/yosql-dao/yosql-dao-jpa/src/main/java/wtf/metio/yosql/dao/jpa/JpaReactorMethodGenerator.java index 2ef4fcfb..78faf34d 100644 --- a/yosql-dao/yosql-dao-jpa/src/main/java/wtf/metio/yosql/dao/jpa/JpaReactorMethodGenerator.java +++ b/yosql-dao/yosql-dao-jpa/src/main/java/wtf/metio/yosql/dao/jpa/JpaReactorMethodGenerator.java @@ -16,8 +16,18 @@ import java.util.List; public final class JpaReactorMethodGenerator implements ReactorMethodGenerator { @Override + public MethodSpec reactorCallMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + + @Override public MethodSpec reactorReadMethod(final SqlConfiguration configuration, final List vendorStatements) { return null; } + @Override + public MethodSpec reactorWriteMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + } diff --git a/yosql-dao/yosql-dao-jpa/src/main/java/wtf/metio/yosql/dao/jpa/JpaRxJavaMethodGenerator.java b/yosql-dao/yosql-dao-jpa/src/main/java/wtf/metio/yosql/dao/jpa/JpaRxJavaMethodGenerator.java index 695db791..1cc1479e 100644 --- a/yosql-dao/yosql-dao-jpa/src/main/java/wtf/metio/yosql/dao/jpa/JpaRxJavaMethodGenerator.java +++ b/yosql-dao/yosql-dao-jpa/src/main/java/wtf/metio/yosql/dao/jpa/JpaRxJavaMethodGenerator.java @@ -45,8 +45,18 @@ public final class JpaRxJavaMethodGenerator implements RxJavaMethodGenerator { } @Override + public MethodSpec rxJavaCallMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + + @Override public MethodSpec rxJavaReadMethod(final SqlConfiguration configuration, final List vendorStatements) { return null; } + @Override + public MethodSpec rxJavaWriteMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + } diff --git a/yosql-dao/yosql-dao-mybatis/src/main/java/wtf/metio/yosql/dao/mybatis/MyBatisFieldsGenerator.java b/yosql-dao/yosql-dao-mybatis/src/main/java/wtf/metio/yosql/dao/mybatis/MyBatisFieldsGenerator.java index b5dc048d..1c6a904f 100644 --- a/yosql-dao/yosql-dao-mybatis/src/main/java/wtf/metio/yosql/dao/mybatis/MyBatisFieldsGenerator.java +++ b/yosql-dao/yosql-dao-mybatis/src/main/java/wtf/metio/yosql/dao/mybatis/MyBatisFieldsGenerator.java @@ -16,6 +16,7 @@ import wtf.metio.yosql.logging.api.LoggingGenerator; import wtf.metio.yosql.models.immutables.SqlStatement; import java.util.List; +import java.util.Optional; public final class MyBatisFieldsGenerator implements FieldsGenerator { @@ -33,8 +34,8 @@ public final class MyBatisFieldsGenerator implements FieldsGenerator { } @Override - public CodeBlock staticInitializer(final List statements) { - return null; + public Optional staticInitializer(final List statements) { + return Optional.empty(); } @Override diff --git a/yosql-dao/yosql-dao-mybatis/src/main/java/wtf/metio/yosql/dao/mybatis/MyBatisMutinyMethodGenerator.java b/yosql-dao/yosql-dao-mybatis/src/main/java/wtf/metio/yosql/dao/mybatis/MyBatisMutinyMethodGenerator.java index 83bacd60..87fd372b 100644 --- a/yosql-dao/yosql-dao-mybatis/src/main/java/wtf/metio/yosql/dao/mybatis/MyBatisMutinyMethodGenerator.java +++ b/yosql-dao/yosql-dao-mybatis/src/main/java/wtf/metio/yosql/dao/mybatis/MyBatisMutinyMethodGenerator.java @@ -20,4 +20,14 @@ public final class MyBatisMutinyMethodGenerator implements MutinyMethodGenerator return null; } + @Override + public MethodSpec mutinyWriteMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + + @Override + public MethodSpec mutinyCallMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + } diff --git a/yosql-dao/yosql-dao-mybatis/src/main/java/wtf/metio/yosql/dao/mybatis/MyBatisReactorMethodGenerator.java b/yosql-dao/yosql-dao-mybatis/src/main/java/wtf/metio/yosql/dao/mybatis/MyBatisReactorMethodGenerator.java index e02cecb8..58d29af0 100644 --- a/yosql-dao/yosql-dao-mybatis/src/main/java/wtf/metio/yosql/dao/mybatis/MyBatisReactorMethodGenerator.java +++ b/yosql-dao/yosql-dao-mybatis/src/main/java/wtf/metio/yosql/dao/mybatis/MyBatisReactorMethodGenerator.java @@ -16,8 +16,18 @@ import java.util.List; public final class MyBatisReactorMethodGenerator implements ReactorMethodGenerator { @Override + public MethodSpec reactorCallMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + + @Override public MethodSpec reactorReadMethod(final SqlConfiguration configuration, final List vendorStatements) { return null; } + @Override + public MethodSpec reactorWriteMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + } diff --git a/yosql-dao/yosql-dao-mybatis/src/main/java/wtf/metio/yosql/dao/mybatis/MyBatisRxJavaMethodGenerator.java b/yosql-dao/yosql-dao-mybatis/src/main/java/wtf/metio/yosql/dao/mybatis/MyBatisRxJavaMethodGenerator.java index ea0f5e6d..7847eb8c 100644 --- a/yosql-dao/yosql-dao-mybatis/src/main/java/wtf/metio/yosql/dao/mybatis/MyBatisRxJavaMethodGenerator.java +++ b/yosql-dao/yosql-dao-mybatis/src/main/java/wtf/metio/yosql/dao/mybatis/MyBatisRxJavaMethodGenerator.java @@ -45,8 +45,18 @@ public final class MyBatisRxJavaMethodGenerator implements RxJavaMethodGenerator } @Override + public MethodSpec rxJavaCallMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + + @Override public MethodSpec rxJavaReadMethod(final SqlConfiguration configuration, final List vendorStatements) { return null; } + @Override + public MethodSpec rxJavaWriteMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + } diff --git a/yosql-dao/yosql-dao-pyranid/src/main/java/wtf/metio/yosql/dao/pyranid/PyranidFieldsGenerator.java b/yosql-dao/yosql-dao-pyranid/src/main/java/wtf/metio/yosql/dao/pyranid/PyranidFieldsGenerator.java index d28c281d..e27df0c2 100644 --- a/yosql-dao/yosql-dao-pyranid/src/main/java/wtf/metio/yosql/dao/pyranid/PyranidFieldsGenerator.java +++ b/yosql-dao/yosql-dao-pyranid/src/main/java/wtf/metio/yosql/dao/pyranid/PyranidFieldsGenerator.java @@ -16,6 +16,7 @@ import wtf.metio.yosql.logging.api.LoggingGenerator; import wtf.metio.yosql.models.immutables.SqlStatement; import java.util.List; +import java.util.Optional; public final class PyranidFieldsGenerator implements FieldsGenerator { @@ -33,8 +34,8 @@ public final class PyranidFieldsGenerator implements FieldsGenerator { } @Override - public CodeBlock staticInitializer(final List statements) { - return null; + public Optional staticInitializer(final List statements) { + return Optional.empty(); } @Override diff --git a/yosql-dao/yosql-dao-pyranid/src/main/java/wtf/metio/yosql/dao/pyranid/PyranidMutinyMethodGenerator.java b/yosql-dao/yosql-dao-pyranid/src/main/java/wtf/metio/yosql/dao/pyranid/PyranidMutinyMethodGenerator.java index 158e68d9..b365e6dd 100644 --- a/yosql-dao/yosql-dao-pyranid/src/main/java/wtf/metio/yosql/dao/pyranid/PyranidMutinyMethodGenerator.java +++ b/yosql-dao/yosql-dao-pyranid/src/main/java/wtf/metio/yosql/dao/pyranid/PyranidMutinyMethodGenerator.java @@ -20,4 +20,14 @@ public final class PyranidMutinyMethodGenerator implements MutinyMethodGenerator return null; } + @Override + public MethodSpec mutinyWriteMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + + @Override + public MethodSpec mutinyCallMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + } diff --git a/yosql-dao/yosql-dao-pyranid/src/main/java/wtf/metio/yosql/dao/pyranid/PyranidReactorMethodGenerator.java b/yosql-dao/yosql-dao-pyranid/src/main/java/wtf/metio/yosql/dao/pyranid/PyranidReactorMethodGenerator.java index ed9d7114..634a24cc 100644 --- a/yosql-dao/yosql-dao-pyranid/src/main/java/wtf/metio/yosql/dao/pyranid/PyranidReactorMethodGenerator.java +++ b/yosql-dao/yosql-dao-pyranid/src/main/java/wtf/metio/yosql/dao/pyranid/PyranidReactorMethodGenerator.java @@ -16,8 +16,18 @@ import java.util.List; public final class PyranidReactorMethodGenerator implements ReactorMethodGenerator { @Override + public MethodSpec reactorCallMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + + @Override public MethodSpec reactorReadMethod(final SqlConfiguration configuration, final List vendorStatements) { return null; } + @Override + public MethodSpec reactorWriteMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + } diff --git a/yosql-dao/yosql-dao-pyranid/src/main/java/wtf/metio/yosql/dao/pyranid/PyranidRxJavaMethodGenerator.java b/yosql-dao/yosql-dao-pyranid/src/main/java/wtf/metio/yosql/dao/pyranid/PyranidRxJavaMethodGenerator.java index c04bf8c1..09635562 100644 --- a/yosql-dao/yosql-dao-pyranid/src/main/java/wtf/metio/yosql/dao/pyranid/PyranidRxJavaMethodGenerator.java +++ b/yosql-dao/yosql-dao-pyranid/src/main/java/wtf/metio/yosql/dao/pyranid/PyranidRxJavaMethodGenerator.java @@ -45,8 +45,18 @@ public final class PyranidRxJavaMethodGenerator implements RxJavaMethodGenerator } @Override + public MethodSpec rxJavaCallMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + + @Override public MethodSpec rxJavaReadMethod(final SqlConfiguration configuration, final List vendorStatements) { return null; } + @Override + public MethodSpec rxJavaWriteMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + } diff --git a/yosql-dao/yosql-dao-r2dbc/src/main/java/wtf/metio/yosql/dao/r2dbc/R2dbcFieldsGenerator.java b/yosql-dao/yosql-dao-r2dbc/src/main/java/wtf/metio/yosql/dao/r2dbc/R2dbcFieldsGenerator.java index 3b39a1d1..8c82d571 100644 --- a/yosql-dao/yosql-dao-r2dbc/src/main/java/wtf/metio/yosql/dao/r2dbc/R2dbcFieldsGenerator.java +++ b/yosql-dao/yosql-dao-r2dbc/src/main/java/wtf/metio/yosql/dao/r2dbc/R2dbcFieldsGenerator.java @@ -16,6 +16,7 @@ import wtf.metio.yosql.logging.api.LoggingGenerator; import wtf.metio.yosql.models.immutables.SqlStatement; import java.util.List; +import java.util.Optional; public final class R2dbcFieldsGenerator implements FieldsGenerator { @@ -33,8 +34,8 @@ public final class R2dbcFieldsGenerator implements FieldsGenerator { } @Override - public CodeBlock staticInitializer(final List statements) { - return null; + public Optional staticInitializer(final List statements) { + return Optional.empty(); } @Override diff --git a/yosql-dao/yosql-dao-r2dbc/src/main/java/wtf/metio/yosql/dao/r2dbc/R2dbcMutinyMethodGenerator.java b/yosql-dao/yosql-dao-r2dbc/src/main/java/wtf/metio/yosql/dao/r2dbc/R2dbcMutinyMethodGenerator.java index 4aba6d76..97f662da 100644 --- a/yosql-dao/yosql-dao-r2dbc/src/main/java/wtf/metio/yosql/dao/r2dbc/R2dbcMutinyMethodGenerator.java +++ b/yosql-dao/yosql-dao-r2dbc/src/main/java/wtf/metio/yosql/dao/r2dbc/R2dbcMutinyMethodGenerator.java @@ -20,4 +20,14 @@ public final class R2dbcMutinyMethodGenerator implements MutinyMethodGenerator { return null; } + @Override + public MethodSpec mutinyWriteMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + + @Override + public MethodSpec mutinyCallMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + } diff --git a/yosql-dao/yosql-dao-r2dbc/src/main/java/wtf/metio/yosql/dao/r2dbc/R2dbcReactorMethodGenerator.java b/yosql-dao/yosql-dao-r2dbc/src/main/java/wtf/metio/yosql/dao/r2dbc/R2dbcReactorMethodGenerator.java index 8432aa7e..88d99069 100644 --- a/yosql-dao/yosql-dao-r2dbc/src/main/java/wtf/metio/yosql/dao/r2dbc/R2dbcReactorMethodGenerator.java +++ b/yosql-dao/yosql-dao-r2dbc/src/main/java/wtf/metio/yosql/dao/r2dbc/R2dbcReactorMethodGenerator.java @@ -16,8 +16,18 @@ import java.util.List; public final class R2dbcReactorMethodGenerator implements ReactorMethodGenerator { @Override + public MethodSpec reactorCallMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + + @Override public MethodSpec reactorReadMethod(final SqlConfiguration configuration, final List vendorStatements) { return null; } + @Override + public MethodSpec reactorWriteMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + } diff --git a/yosql-dao/yosql-dao-r2dbc/src/main/java/wtf/metio/yosql/dao/r2dbc/R2dbcRxJavaMethodGenerator.java b/yosql-dao/yosql-dao-r2dbc/src/main/java/wtf/metio/yosql/dao/r2dbc/R2dbcRxJavaMethodGenerator.java index 5a04540d..457310f1 100644 --- a/yosql-dao/yosql-dao-r2dbc/src/main/java/wtf/metio/yosql/dao/r2dbc/R2dbcRxJavaMethodGenerator.java +++ b/yosql-dao/yosql-dao-r2dbc/src/main/java/wtf/metio/yosql/dao/r2dbc/R2dbcRxJavaMethodGenerator.java @@ -45,8 +45,18 @@ public final class R2dbcRxJavaMethodGenerator implements RxJavaMethodGenerator { } @Override + public MethodSpec rxJavaCallMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + + @Override public MethodSpec rxJavaReadMethod(final SqlConfiguration configuration, final List vendorStatements) { return null; } + @Override + public MethodSpec rxJavaWriteMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + } diff --git a/yosql-dao/yosql-dao-sansorm/src/main/java/wtf/metio/yosql/dao/sansorm/SansOrmFieldsGenerator.java b/yosql-dao/yosql-dao-sansorm/src/main/java/wtf/metio/yosql/dao/sansorm/SansOrmFieldsGenerator.java index a3983f0e..5a96c7ca 100644 --- a/yosql-dao/yosql-dao-sansorm/src/main/java/wtf/metio/yosql/dao/sansorm/SansOrmFieldsGenerator.java +++ b/yosql-dao/yosql-dao-sansorm/src/main/java/wtf/metio/yosql/dao/sansorm/SansOrmFieldsGenerator.java @@ -16,6 +16,7 @@ import wtf.metio.yosql.logging.api.LoggingGenerator; import wtf.metio.yosql.models.immutables.SqlStatement; import java.util.List; +import java.util.Optional; public final class SansOrmFieldsGenerator implements FieldsGenerator { @@ -33,8 +34,8 @@ public final class SansOrmFieldsGenerator implements FieldsGenerator { } @Override - public CodeBlock staticInitializer(final List statements) { - return null; + public Optional staticInitializer(final List statements) { + return Optional.empty(); } @Override diff --git a/yosql-dao/yosql-dao-sansorm/src/main/java/wtf/metio/yosql/dao/sansorm/SansOrmMutinyMethodGenerator.java b/yosql-dao/yosql-dao-sansorm/src/main/java/wtf/metio/yosql/dao/sansorm/SansOrmMutinyMethodGenerator.java index a14db559..e4e4e2b0 100644 --- a/yosql-dao/yosql-dao-sansorm/src/main/java/wtf/metio/yosql/dao/sansorm/SansOrmMutinyMethodGenerator.java +++ b/yosql-dao/yosql-dao-sansorm/src/main/java/wtf/metio/yosql/dao/sansorm/SansOrmMutinyMethodGenerator.java @@ -20,4 +20,14 @@ public final class SansOrmMutinyMethodGenerator implements MutinyMethodGenerator return null; } + @Override + public MethodSpec mutinyWriteMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + + @Override + public MethodSpec mutinyCallMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + } diff --git a/yosql-dao/yosql-dao-sansorm/src/main/java/wtf/metio/yosql/dao/sansorm/SansOrmReactorMethodGenerator.java b/yosql-dao/yosql-dao-sansorm/src/main/java/wtf/metio/yosql/dao/sansorm/SansOrmReactorMethodGenerator.java index 775aaabb..f3a3aea0 100644 --- a/yosql-dao/yosql-dao-sansorm/src/main/java/wtf/metio/yosql/dao/sansorm/SansOrmReactorMethodGenerator.java +++ b/yosql-dao/yosql-dao-sansorm/src/main/java/wtf/metio/yosql/dao/sansorm/SansOrmReactorMethodGenerator.java @@ -16,8 +16,18 @@ import java.util.List; public final class SansOrmReactorMethodGenerator implements ReactorMethodGenerator { @Override + public MethodSpec reactorCallMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + + @Override public MethodSpec reactorReadMethod(final SqlConfiguration configuration, final List vendorStatements) { return null; } + @Override + public MethodSpec reactorWriteMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + } diff --git a/yosql-dao/yosql-dao-sansorm/src/main/java/wtf/metio/yosql/dao/sansorm/SansOrmRxJavaMethodGenerator.java b/yosql-dao/yosql-dao-sansorm/src/main/java/wtf/metio/yosql/dao/sansorm/SansOrmRxJavaMethodGenerator.java index a4715231..8acda076 100644 --- a/yosql-dao/yosql-dao-sansorm/src/main/java/wtf/metio/yosql/dao/sansorm/SansOrmRxJavaMethodGenerator.java +++ b/yosql-dao/yosql-dao-sansorm/src/main/java/wtf/metio/yosql/dao/sansorm/SansOrmRxJavaMethodGenerator.java @@ -45,8 +45,18 @@ public final class SansOrmRxJavaMethodGenerator implements RxJavaMethodGenerator } @Override + public MethodSpec rxJavaCallMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + + @Override public MethodSpec rxJavaReadMethod(final SqlConfiguration configuration, final List vendorStatements) { return null; } + @Override + public MethodSpec rxJavaWriteMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + } diff --git a/yosql-dao/yosql-dao-spring-data-jdbc/src/main/java/wtf/metio/yosql/dao/spring/data/jdbc/SpringDataJdbcFieldsGenerator.java b/yosql-dao/yosql-dao-spring-data-jdbc/src/main/java/wtf/metio/yosql/dao/spring/data/jdbc/SpringDataJdbcFieldsGenerator.java index 10680126..b3034b4c 100644 --- a/yosql-dao/yosql-dao-spring-data-jdbc/src/main/java/wtf/metio/yosql/dao/spring/data/jdbc/SpringDataJdbcFieldsGenerator.java +++ b/yosql-dao/yosql-dao-spring-data-jdbc/src/main/java/wtf/metio/yosql/dao/spring/data/jdbc/SpringDataJdbcFieldsGenerator.java @@ -16,6 +16,7 @@ import wtf.metio.yosql.logging.api.LoggingGenerator; import wtf.metio.yosql.models.immutables.SqlStatement; import java.util.List; +import java.util.Optional; public final class SpringDataJdbcFieldsGenerator implements FieldsGenerator { @@ -33,8 +34,8 @@ public final class SpringDataJdbcFieldsGenerator implements FieldsGenerator { } @Override - public CodeBlock staticInitializer(final List statements) { - return null; + public Optional staticInitializer(final List statements) { + return Optional.empty(); } @Override diff --git a/yosql-dao/yosql-dao-spring-data-jdbc/src/main/java/wtf/metio/yosql/dao/spring/data/jdbc/SpringDataJdbcMutinyMethodGenerator.java b/yosql-dao/yosql-dao-spring-data-jdbc/src/main/java/wtf/metio/yosql/dao/spring/data/jdbc/SpringDataJdbcMutinyMethodGenerator.java index 255fe886..6d49d992 100644 --- a/yosql-dao/yosql-dao-spring-data-jdbc/src/main/java/wtf/metio/yosql/dao/spring/data/jdbc/SpringDataJdbcMutinyMethodGenerator.java +++ b/yosql-dao/yosql-dao-spring-data-jdbc/src/main/java/wtf/metio/yosql/dao/spring/data/jdbc/SpringDataJdbcMutinyMethodGenerator.java @@ -20,4 +20,14 @@ public final class SpringDataJdbcMutinyMethodGenerator implements MutinyMethodGe return null; } + @Override + public MethodSpec mutinyWriteMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + + @Override + public MethodSpec mutinyCallMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + } diff --git a/yosql-dao/yosql-dao-spring-data-jdbc/src/main/java/wtf/metio/yosql/dao/spring/data/jdbc/SpringDataJdbcReactorMethodGenerator.java b/yosql-dao/yosql-dao-spring-data-jdbc/src/main/java/wtf/metio/yosql/dao/spring/data/jdbc/SpringDataJdbcReactorMethodGenerator.java index 9fb7c279..be2a184c 100644 --- a/yosql-dao/yosql-dao-spring-data-jdbc/src/main/java/wtf/metio/yosql/dao/spring/data/jdbc/SpringDataJdbcReactorMethodGenerator.java +++ b/yosql-dao/yosql-dao-spring-data-jdbc/src/main/java/wtf/metio/yosql/dao/spring/data/jdbc/SpringDataJdbcReactorMethodGenerator.java @@ -16,8 +16,18 @@ import java.util.List; public final class SpringDataJdbcReactorMethodGenerator implements ReactorMethodGenerator { @Override + public MethodSpec reactorCallMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + + @Override public MethodSpec reactorReadMethod(final SqlConfiguration configuration, final List vendorStatements) { return null; } + @Override + public MethodSpec reactorWriteMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + } diff --git a/yosql-dao/yosql-dao-spring-data-jdbc/src/main/java/wtf/metio/yosql/dao/spring/data/jdbc/SpringDataJdbcRxJavaMethodGenerator.java b/yosql-dao/yosql-dao-spring-data-jdbc/src/main/java/wtf/metio/yosql/dao/spring/data/jdbc/SpringDataJdbcRxJavaMethodGenerator.java index ca662bd7..ad127272 100644 --- a/yosql-dao/yosql-dao-spring-data-jdbc/src/main/java/wtf/metio/yosql/dao/spring/data/jdbc/SpringDataJdbcRxJavaMethodGenerator.java +++ b/yosql-dao/yosql-dao-spring-data-jdbc/src/main/java/wtf/metio/yosql/dao/spring/data/jdbc/SpringDataJdbcRxJavaMethodGenerator.java @@ -45,7 +45,17 @@ public final class SpringDataJdbcRxJavaMethodGenerator implements RxJavaMethodGe } @Override + public MethodSpec rxJavaCallMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + + @Override public MethodSpec rxJavaReadMethod(final SqlConfiguration configuration, final List vendorStatements) { return null; } + + @Override + public MethodSpec rxJavaWriteMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } } diff --git a/yosql-dao/yosql-dao-spring-data-jpa/src/main/java/wtf/metio/yosql/dao/spring/data/jpa/SpringDataJpaFieldsGenerator.java b/yosql-dao/yosql-dao-spring-data-jpa/src/main/java/wtf/metio/yosql/dao/spring/data/jpa/SpringDataJpaFieldsGenerator.java index e815a564..bb6ea704 100644 --- a/yosql-dao/yosql-dao-spring-data-jpa/src/main/java/wtf/metio/yosql/dao/spring/data/jpa/SpringDataJpaFieldsGenerator.java +++ b/yosql-dao/yosql-dao-spring-data-jpa/src/main/java/wtf/metio/yosql/dao/spring/data/jpa/SpringDataJpaFieldsGenerator.java @@ -16,6 +16,7 @@ import wtf.metio.yosql.logging.api.LoggingGenerator; import wtf.metio.yosql.models.immutables.SqlStatement; import java.util.List; +import java.util.Optional; public final class SpringDataJpaFieldsGenerator implements FieldsGenerator { @@ -33,8 +34,8 @@ public final class SpringDataJpaFieldsGenerator implements FieldsGenerator { } @Override - public CodeBlock staticInitializer(final List statements) { - return null; + public Optional staticInitializer(final List statements) { + return Optional.empty(); } @Override diff --git a/yosql-dao/yosql-dao-spring-data-jpa/src/main/java/wtf/metio/yosql/dao/spring/data/jpa/SpringDataJpaMutinyMethodGenerator.java b/yosql-dao/yosql-dao-spring-data-jpa/src/main/java/wtf/metio/yosql/dao/spring/data/jpa/SpringDataJpaMutinyMethodGenerator.java index b1871b49..a63d1a63 100644 --- a/yosql-dao/yosql-dao-spring-data-jpa/src/main/java/wtf/metio/yosql/dao/spring/data/jpa/SpringDataJpaMutinyMethodGenerator.java +++ b/yosql-dao/yosql-dao-spring-data-jpa/src/main/java/wtf/metio/yosql/dao/spring/data/jpa/SpringDataJpaMutinyMethodGenerator.java @@ -20,4 +20,14 @@ public final class SpringDataJpaMutinyMethodGenerator implements MutinyMethodGen return null; } + @Override + public MethodSpec mutinyWriteMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + + @Override + public MethodSpec mutinyCallMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + } diff --git a/yosql-dao/yosql-dao-spring-data-jpa/src/main/java/wtf/metio/yosql/dao/spring/data/jpa/SpringDataJpaReactorMethodGenerator.java b/yosql-dao/yosql-dao-spring-data-jpa/src/main/java/wtf/metio/yosql/dao/spring/data/jpa/SpringDataJpaReactorMethodGenerator.java index 9a3731cf..1fc4fad4 100644 --- a/yosql-dao/yosql-dao-spring-data-jpa/src/main/java/wtf/metio/yosql/dao/spring/data/jpa/SpringDataJpaReactorMethodGenerator.java +++ b/yosql-dao/yosql-dao-spring-data-jpa/src/main/java/wtf/metio/yosql/dao/spring/data/jpa/SpringDataJpaReactorMethodGenerator.java @@ -16,8 +16,18 @@ import java.util.List; public final class SpringDataJpaReactorMethodGenerator implements ReactorMethodGenerator { @Override + public MethodSpec reactorCallMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + + @Override public MethodSpec reactorReadMethod(final SqlConfiguration configuration, final List vendorStatements) { return null; } + @Override + public MethodSpec reactorWriteMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + } diff --git a/yosql-dao/yosql-dao-spring-data-jpa/src/main/java/wtf/metio/yosql/dao/spring/data/jpa/SpringDataJpaRxJavaMethodGenerator.java b/yosql-dao/yosql-dao-spring-data-jpa/src/main/java/wtf/metio/yosql/dao/spring/data/jpa/SpringDataJpaRxJavaMethodGenerator.java index c2b67b0b..45d1fd84 100644 --- a/yosql-dao/yosql-dao-spring-data-jpa/src/main/java/wtf/metio/yosql/dao/spring/data/jpa/SpringDataJpaRxJavaMethodGenerator.java +++ b/yosql-dao/yosql-dao-spring-data-jpa/src/main/java/wtf/metio/yosql/dao/spring/data/jpa/SpringDataJpaRxJavaMethodGenerator.java @@ -45,7 +45,17 @@ public final class SpringDataJpaRxJavaMethodGenerator implements RxJavaMethodGen } @Override + public MethodSpec rxJavaCallMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + + @Override public MethodSpec rxJavaReadMethod(final SqlConfiguration configuration, final List vendorStatements) { return null; } + + @Override + public MethodSpec rxJavaWriteMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } } diff --git a/yosql-dao/yosql-dao-spring-data-r2dbc/src/main/java/wtf/metio/yosql/dao/spring/data/r2dbc/SpringDataR2dbcFieldsGenerator.java b/yosql-dao/yosql-dao-spring-data-r2dbc/src/main/java/wtf/metio/yosql/dao/spring/data/r2dbc/SpringDataR2dbcFieldsGenerator.java index 599a2c72..4ac87941 100644 --- a/yosql-dao/yosql-dao-spring-data-r2dbc/src/main/java/wtf/metio/yosql/dao/spring/data/r2dbc/SpringDataR2dbcFieldsGenerator.java +++ b/yosql-dao/yosql-dao-spring-data-r2dbc/src/main/java/wtf/metio/yosql/dao/spring/data/r2dbc/SpringDataR2dbcFieldsGenerator.java @@ -16,6 +16,7 @@ import wtf.metio.yosql.logging.api.LoggingGenerator; import wtf.metio.yosql.models.immutables.SqlStatement; import java.util.List; +import java.util.Optional; public final class SpringDataR2dbcFieldsGenerator implements FieldsGenerator { @@ -33,8 +34,8 @@ public final class SpringDataR2dbcFieldsGenerator implements FieldsGenerator { } @Override - public CodeBlock staticInitializer(final List statements) { - return null; + public Optional staticInitializer(final List statements) { + return Optional.empty(); } @Override diff --git a/yosql-dao/yosql-dao-spring-data-r2dbc/src/main/java/wtf/metio/yosql/dao/spring/data/r2dbc/SpringDataR2dbcMutinyMethodGenerator.java b/yosql-dao/yosql-dao-spring-data-r2dbc/src/main/java/wtf/metio/yosql/dao/spring/data/r2dbc/SpringDataR2dbcMutinyMethodGenerator.java index 29fdb16b..565ffe8c 100644 --- a/yosql-dao/yosql-dao-spring-data-r2dbc/src/main/java/wtf/metio/yosql/dao/spring/data/r2dbc/SpringDataR2dbcMutinyMethodGenerator.java +++ b/yosql-dao/yosql-dao-spring-data-r2dbc/src/main/java/wtf/metio/yosql/dao/spring/data/r2dbc/SpringDataR2dbcMutinyMethodGenerator.java @@ -20,4 +20,14 @@ public final class SpringDataR2dbcMutinyMethodGenerator implements MutinyMethodG return null; } + @Override + public MethodSpec mutinyWriteMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + + @Override + public MethodSpec mutinyCallMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + } diff --git a/yosql-dao/yosql-dao-spring-data-r2dbc/src/main/java/wtf/metio/yosql/dao/spring/data/r2dbc/SpringDataR2dbcReactorMethodGenerator.java b/yosql-dao/yosql-dao-spring-data-r2dbc/src/main/java/wtf/metio/yosql/dao/spring/data/r2dbc/SpringDataR2dbcReactorMethodGenerator.java index 51d743de..810a304a 100644 --- a/yosql-dao/yosql-dao-spring-data-r2dbc/src/main/java/wtf/metio/yosql/dao/spring/data/r2dbc/SpringDataR2dbcReactorMethodGenerator.java +++ b/yosql-dao/yosql-dao-spring-data-r2dbc/src/main/java/wtf/metio/yosql/dao/spring/data/r2dbc/SpringDataR2dbcReactorMethodGenerator.java @@ -16,8 +16,18 @@ import java.util.List; public final class SpringDataR2dbcReactorMethodGenerator implements ReactorMethodGenerator { @Override + public MethodSpec reactorCallMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + + @Override public MethodSpec reactorReadMethod(final SqlConfiguration configuration, final List vendorStatements) { return null; } + @Override + public MethodSpec reactorWriteMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + } diff --git a/yosql-dao/yosql-dao-spring-data-r2dbc/src/main/java/wtf/metio/yosql/dao/spring/data/r2dbc/SpringDataR2dbcRxJavaMethodGenerator.java b/yosql-dao/yosql-dao-spring-data-r2dbc/src/main/java/wtf/metio/yosql/dao/spring/data/r2dbc/SpringDataR2dbcRxJavaMethodGenerator.java index a60c2037..b286a57f 100644 --- a/yosql-dao/yosql-dao-spring-data-r2dbc/src/main/java/wtf/metio/yosql/dao/spring/data/r2dbc/SpringDataR2dbcRxJavaMethodGenerator.java +++ b/yosql-dao/yosql-dao-spring-data-r2dbc/src/main/java/wtf/metio/yosql/dao/spring/data/r2dbc/SpringDataR2dbcRxJavaMethodGenerator.java @@ -45,7 +45,17 @@ public final class SpringDataR2dbcRxJavaMethodGenerator implements RxJavaMethodG } @Override + public MethodSpec rxJavaCallMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + + @Override public MethodSpec rxJavaReadMethod(final SqlConfiguration configuration, final List vendorStatements) { return null; } + + @Override + public MethodSpec rxJavaWriteMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } } diff --git a/yosql-dao/yosql-dao-spring-jdbc/pom.xml b/yosql-dao/yosql-dao-spring-jdbc/pom.xml index 85d910a8..ae5f4fb0 100644 --- a/yosql-dao/yosql-dao-spring-jdbc/pom.xml +++ b/yosql-dao/yosql-dao-spring-jdbc/pom.xml @@ -86,5 +86,9 @@ io.reactivex.rxjava2 rxjava + + org.springframework + spring-jdbc + \ No newline at end of file diff --git a/yosql-dao/yosql-dao-spring-jdbc/src/main/java/wtf/metio/yosql/dao/spring/jdbc/DefaultSpringJdbcBlocks.java b/yosql-dao/yosql-dao-spring-jdbc/src/main/java/wtf/metio/yosql/dao/spring/jdbc/DefaultSpringJdbcBlocks.java index 7a26582a..14ba1cde 100644 --- a/yosql-dao/yosql-dao-spring-jdbc/src/main/java/wtf/metio/yosql/dao/spring/jdbc/DefaultSpringJdbcBlocks.java +++ b/yosql-dao/yosql-dao-spring-jdbc/src/main/java/wtf/metio/yosql/dao/spring/jdbc/DefaultSpringJdbcBlocks.java @@ -11,21 +11,29 @@ import com.squareup.javapoet.CodeBlock; import com.squareup.javapoet.ParameterizedTypeName; import com.squareup.javapoet.TypeName; +import java.util.List; + public class DefaultSpringJdbcBlocks implements SpringJdbcBlocks { @Override public CodeBlock returnAsList(final ParameterizedTypeName listOfResults, final String converterAlias) { - return CodeBlock.builder().build(); + return CodeBlock.builder() + .addStatement("return $T.of()", List.class) + .build(); } @Override public CodeBlock returnAsFirst(final TypeName resultType, final String converterAlias) { - return CodeBlock.builder().build(); + return CodeBlock.builder() + .addStatement("return null") + .build(); } @Override public CodeBlock returnAsOne(final TypeName resultType, final String converterAlias) { - return CodeBlock.builder().build(); + return CodeBlock.builder() + .addStatement("return null") + .build(); } } diff --git a/yosql-dao/yosql-dao-spring-jdbc/src/main/java/wtf/metio/yosql/dao/spring/jdbc/DefaultSpringJdbcParameters.java b/yosql-dao/yosql-dao-spring-jdbc/src/main/java/wtf/metio/yosql/dao/spring/jdbc/DefaultSpringJdbcParameters.java new file mode 100644 index 00000000..641f3b18 --- /dev/null +++ b/yosql-dao/yosql-dao-spring-jdbc/src/main/java/wtf/metio/yosql/dao/spring/jdbc/DefaultSpringJdbcParameters.java @@ -0,0 +1,37 @@ +/* + * This file is part of yosql. It is subject to the license terms in the LICENSE file found in the top-level + * directory of this distribution and at https://creativecommons.org/publicdomain/zero/1.0/. No part of yosql, + * including this file, may be copied, modified, propagated, or distributed except according to the terms contained + * in the LICENSE file. + */ + +package wtf.metio.yosql.dao.spring.jdbc; + +import com.squareup.javapoet.ClassName; +import com.squareup.javapoet.ParameterSpec; +import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; +import wtf.metio.yosql.codegen.api.Parameters; +import wtf.metio.yosql.models.immutables.NamesConfiguration; +import wtf.metio.yosql.models.sql.ResultRowConverter; + +public final class DefaultSpringJdbcParameters implements SpringJdbcParameters { + + private final Parameters parameters; + private final NamesConfiguration names; + + public DefaultSpringJdbcParameters(final Parameters parameters, final NamesConfiguration names) { + this.parameters = parameters; + this.names = names; + } + + @Override + public ParameterSpec namedParameterJdbcTemplate() { + return parameters.parameter(NamedParameterJdbcTemplate.class, names.jdbcTemplate()); + } + + @Override + public ParameterSpec converter(final ResultRowConverter converter) { + return parameters.parameter(ClassName.bestGuess(converter.converterType()), converter.alias()); + } + +} diff --git a/yosql-dao/yosql-dao-spring-jdbc/src/main/java/wtf/metio/yosql/dao/spring/jdbc/SpringJdbcBlockingMethodGenerator.java b/yosql-dao/yosql-dao-spring-jdbc/src/main/java/wtf/metio/yosql/dao/spring/jdbc/SpringJdbcBlockingMethodGenerator.java index b31a38cd..d6b216d1 100644 --- a/yosql-dao/yosql-dao-spring-jdbc/src/main/java/wtf/metio/yosql/dao/spring/jdbc/SpringJdbcBlockingMethodGenerator.java +++ b/yosql-dao/yosql-dao-spring-jdbc/src/main/java/wtf/metio/yosql/dao/spring/jdbc/SpringJdbcBlockingMethodGenerator.java @@ -84,12 +84,16 @@ public final class SpringJdbcBlockingMethodGenerator implements BlockingMethodGe @Override public MethodSpec blockingWriteMethod(final SqlConfiguration configuration, final List statements) { - return methods.blockingMethod(configuration.blockingName(), statements).build(); + return methods.blockingMethod(configuration.blockingName(), statements) + .addParameters(parameters.asParameterSpecs(configuration.parameters())) + .build(); } @Override public MethodSpec blockingCallMethod(final SqlConfiguration configuration, final List statements) { - return methods.blockingMethod(configuration.blockingName(), statements).build(); + return methods.blockingMethod(configuration.blockingName(), statements) + .addParameters(parameters.asParameterSpecs(configuration.parameters())) + .build(); } } diff --git a/yosql-dao/yosql-dao-spring-jdbc/src/main/java/wtf/metio/yosql/dao/spring/jdbc/SpringJdbcConstructorGenerator.java b/yosql-dao/yosql-dao-spring-jdbc/src/main/java/wtf/metio/yosql/dao/spring/jdbc/SpringJdbcConstructorGenerator.java index 2f7b6cc8..a4a40214 100644 --- a/yosql-dao/yosql-dao-spring-jdbc/src/main/java/wtf/metio/yosql/dao/spring/jdbc/SpringJdbcConstructorGenerator.java +++ b/yosql-dao/yosql-dao-spring-jdbc/src/main/java/wtf/metio/yosql/dao/spring/jdbc/SpringJdbcConstructorGenerator.java @@ -7,29 +7,71 @@ package wtf.metio.yosql.dao.spring.jdbc; +import com.squareup.javapoet.CodeBlock; import com.squareup.javapoet.MethodSpec; import wtf.metio.yosql.codegen.api.ConstructorGenerator; import wtf.metio.yosql.codegen.api.Methods; import wtf.metio.yosql.codegen.blocks.GenericBlocks; +import wtf.metio.yosql.models.constants.sql.SqlType; +import wtf.metio.yosql.models.immutables.NamesConfiguration; +import wtf.metio.yosql.models.immutables.RepositoriesConfiguration; import wtf.metio.yosql.models.immutables.SqlStatement; +import wtf.metio.yosql.models.sql.ResultRowConverter; import java.util.List; +import java.util.Objects; +import java.util.stream.Stream; public final class SpringJdbcConstructorGenerator implements ConstructorGenerator { private final GenericBlocks blocks; private final Methods methods; + private final RepositoriesConfiguration repositories; + private final SpringJdbcParameters parameters; + private final NamesConfiguration names; public SpringJdbcConstructorGenerator( final GenericBlocks blocks, - final Methods methods) { + final Methods methods, + final RepositoriesConfiguration repositories, + final SpringJdbcParameters parameters, + final NamesConfiguration names) { this.blocks = blocks; this.methods = methods; + this.repositories = repositories; + this.parameters = parameters; + this.names = names; } @Override public MethodSpec forRepository(final List statements) { - return methods.constructor().build(); + final var builder = CodeBlock.builder(); + if (repositories.injectConverters()) { + final var constructor = methods.constructor().addParameter(parameters.namedParameterJdbcTemplate()); + resultConverters(statements).forEach(converter -> { + constructor.addParameter(parameters.converter(converter)); + builder.add(blocks.initializeFieldToSelf(converter.alias())); + }); + return constructor + .addCode(blocks.initializeFieldToSelf(names.dataSource())) + .addCode(builder.build()) + .build(); + } + resultConverters(statements).forEach(converter -> builder.add(blocks.initializeConverter(converter))); + return methods.constructor() + .addParameter(parameters.namedParameterJdbcTemplate()) + .addCode(blocks.initializeFieldToSelf(names.jdbcTemplate())) + .addCode(builder.build()) + .build(); + } + + private static Stream resultConverters(final List statements) { + return statements.stream() + .map(SqlStatement::getConfiguration) + .filter(config -> SqlType.READING == config.type() || SqlType.CALLING == config.type()) + .flatMap(config -> config.resultRowConverter().stream()) + .filter(Objects::nonNull) + .distinct(); } } diff --git a/yosql-dao/yosql-dao-jdbc/src/main/java/wtf/metio/yosql/dao/jdbc/JdbcFieldsGenerator.java b/yosql-dao/yosql-dao-spring-jdbc/src/main/java/wtf/metio/yosql/dao/spring/jdbc/SpringJdbcFieldsGenerator.java similarity index 55% copy from yosql-dao/yosql-dao-jdbc/src/main/java/wtf/metio/yosql/dao/jdbc/JdbcFieldsGenerator.java copy to yosql-dao/yosql-dao-spring-jdbc/src/main/java/wtf/metio/yosql/dao/spring/jdbc/SpringJdbcFieldsGenerator.java index 5da2defe..008750d9 100644 --- a/yosql-dao/yosql-dao-jdbc/src/main/java/wtf/metio/yosql/dao/jdbc/JdbcFieldsGenerator.java +++ b/yosql-dao/yosql-dao-spring-jdbc/src/main/java/wtf/metio/yosql/dao/spring/jdbc/SpringJdbcFieldsGenerator.java @@ -4,96 +4,63 @@ * including this file, may be copied, modified, propagated, or distributed except according to the terms contained * in the LICENSE file. */ -package wtf.metio.yosql.dao.jdbc; + +package wtf.metio.yosql.dao.spring.jdbc; import com.squareup.javapoet.ClassName; import com.squareup.javapoet.CodeBlock; import com.squareup.javapoet.FieldSpec; import de.xn__ho_hia.javapoet.TypeGuesser; +import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; import wtf.metio.yosql.codegen.api.Fields; import wtf.metio.yosql.codegen.api.FieldsGenerator; import wtf.metio.yosql.codegen.api.Javadoc; -import wtf.metio.yosql.codegen.files.SqlStatementParser; -import wtf.metio.yosql.internals.javapoet.TypicalTypes; -import wtf.metio.yosql.internals.jdk.Buckets; import wtf.metio.yosql.logging.api.LoggingGenerator; import wtf.metio.yosql.models.constants.sql.SqlType; import wtf.metio.yosql.models.immutables.ConverterConfiguration; import wtf.metio.yosql.models.immutables.NamesConfiguration; -import wtf.metio.yosql.models.immutables.SqlConfiguration; import wtf.metio.yosql.models.immutables.SqlStatement; import wtf.metio.yosql.models.sql.ResultRowConverter; -import wtf.metio.yosql.models.sql.SqlParameter; -import javax.sql.DataSource; -import java.util.*; -import java.util.stream.Collectors; -import java.util.stream.IntStream; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.Optional; import java.util.stream.Stream; import static java.util.function.Predicate.not; -/** - * JDBC implementation of the {@link FieldsGenerator} interface. - */ -public final class JdbcFieldsGenerator implements FieldsGenerator { +public final class SpringJdbcFieldsGenerator implements FieldsGenerator { - private final ConverterConfiguration converters; - private final NamesConfiguration names; + private final Fields fields; private final LoggingGenerator logging; private final Javadoc javadoc; - private final Fields fields; - private final JdbcFields jdbcFields; + private final ConverterConfiguration converters; + private final NamesConfiguration names; - public JdbcFieldsGenerator( - final ConverterConfiguration converters, - final NamesConfiguration names, + public SpringJdbcFieldsGenerator( + final Fields fields, final LoggingGenerator logging, final Javadoc javadoc, - final Fields fields, - final JdbcFields jdbcFields) { - this.converters = converters; - this.names = names; + final ConverterConfiguration converters, + final NamesConfiguration names) { + this.fields = fields; this.logging = logging; this.javadoc = javadoc; - this.fields = fields; - this.jdbcFields = jdbcFields; + this.converters = converters; + this.names = names; } @Override - public CodeBlock staticInitializer(final List statements) { - final var builder = CodeBlock.builder(); - statements.stream() - .map(SqlStatement::getConfiguration) - .filter(config -> Buckets.hasEntries(config.parameters())) - .forEach(config -> config.parameters().stream() - .filter(SqlParameter::hasIndices) - .forEach(parameter -> addIndexArray(builder, parameter, config))); - return builder.build(); - } - - private void addIndexArray( - final CodeBlock.Builder builder, - final SqlParameter parameter, - final SqlConfiguration config) { - builder.addStatement("$N.put($S, $L)", - jdbcFields.constantSqlStatementParameterIndexFieldName(config), - parameter.name(), - indexArray(parameter)); - } - - private static String indexArray(final SqlParameter param) { - return IntStream.of(param.indices()) - .boxed() - .map(Object::toString) - .collect(Collectors.joining(", ", "new int[] { ", " }")); + public Optional staticInitializer(final List statements) { + return Optional.empty(); } @Override public Iterable asFields(final List statements) { final var repositoryFields = new ArrayList(statements.size() * 2 + 2); - repositoryFields.add(asDataSourceField()); + repositoryFields.add(jdbcTemplateField()); if (logging.isEnabled() && !statements.isEmpty()) { // doesn't matter which statement we pick since they all end up in the same repository anyway final var firstStatement = statements.get(0); @@ -101,15 +68,12 @@ public final class JdbcFieldsGenerator implements FieldsGenerator { } for (final var statement : statements) { if (logging.isEnabled()) { - repositoryFields.add(asConstantRawSqlField(statement)); - } - repositoryFields.add(asConstantSqlField(statement)); - if (Buckets.hasEntries(statement.getConfiguration().parameters())) { - repositoryFields.add(asConstantSqlParameterIndexField(statement)); + repositoryFields.add(constantRawSqlField(statement)); } + repositoryFields.add(constantSqlField(statement)); } resultConverters(statements) - .map(this::asConverterField) + .map(this::converterField) .forEach(repositoryFields::add); return repositoryFields; @@ -119,44 +83,40 @@ public final class JdbcFieldsGenerator implements FieldsGenerator { return logging.logger(ClassName.bestGuess(sqlStatement.getRepository())); } - private FieldSpec asConstantRawSqlField(final SqlStatement sqlStatement) { + private FieldSpec jdbcTemplateField() { + return fields.field(NamedParameterJdbcTemplate.class, names.jdbcTemplate()); + } + + private FieldSpec constantRawSqlField(final SqlStatement sqlStatement) { final var configuration = sqlStatement.getConfiguration(); final var rawStatement = sqlStatement.getRawStatement(); return fields.prepareConstant(String.class, - jdbcFields.constantRawSqlStatementFieldName(configuration)) + fields.constantRawSqlStatementFieldName(configuration)) .initializer(fields.initialize(rawStatement)) .addJavadoc(javadoc.fieldJavaDoc(sqlStatement)) .build(); } - private FieldSpec asConstantSqlField(final SqlStatement sqlStatement) { + private FieldSpec constantSqlField(final SqlStatement sqlStatement) { final var configuration = sqlStatement.getConfiguration(); final var rawStatement = sqlStatement.getRawStatement(); - final var statement = replaceNamedParameters(rawStatement); return fields.prepareConstant(String.class, - jdbcFields.constantSqlStatementFieldName(configuration)) - .initializer(fields.initialize(statement)) + fields.constantSqlStatementFieldName(configuration)) + .initializer(fields.initialize(rawStatement)) .addJavadoc(javadoc.fieldJavaDoc(sqlStatement)) .build(); } - private static String replaceNamedParameters(final String rawSqlStatement) { - return rawSqlStatement.replaceAll(SqlStatementParser.NAMED_PARAMETER_PATTERN.pattern(), "?"); - } - - private FieldSpec asConstantSqlParameterIndexField(final SqlStatement sqlStatement) { - final var configuration = sqlStatement.getConfiguration(); - return fields.prepareConstant(TypicalTypes.MAP_OF_STRING_AND_ARRAY_OF_INTS, - jdbcFields.constantSqlStatementParameterIndexFieldName(configuration)) - .initializer("new $T<>($L)", HashMap.class, sqlStatement.getConfiguration().parameters().size()) - .build(); - } - - private FieldSpec asDataSourceField() { - return fields.field(DataSource.class, names.dataSource()); + private static Stream resultConverters(final List statements) { + return statements.stream() + .map(SqlStatement::getConfiguration) + .filter(config -> SqlType.READING == config.type() || SqlType.CALLING == config.type()) + .flatMap(config -> config.resultRowConverter().stream()) + .filter(Objects::nonNull) + .distinct(); } - private FieldSpec asConverterField(final ResultRowConverter converter) { + private FieldSpec converterField(final ResultRowConverter converter) { return converters.rowConverters().stream() .filter(rowConverter -> rowConverter.alias().equals(converter.alias())) .map(rowConverter -> TypeGuesser.guessTypeName(rowConverter.converterType())) @@ -176,13 +136,4 @@ public final class JdbcFieldsGenerator implements FieldsGenerator { converter.alias())); } - private static Stream resultConverters(final List statements) { - return statements.stream() - .map(SqlStatement::getConfiguration) - .filter(config -> SqlType.READING == config.type() || SqlType.CALLING == config.type()) - .flatMap(config -> config.resultRowConverter().stream()) - .filter(Objects::nonNull) - .distinct(); - } - } diff --git a/yosql-dao/yosql-dao-spring-jdbc/src/main/java/wtf/metio/yosql/dao/spring/jdbc/SpringJdbcMutinyMethodGenerator.java b/yosql-dao/yosql-dao-spring-jdbc/src/main/java/wtf/metio/yosql/dao/spring/jdbc/SpringJdbcMutinyMethodGenerator.java index 10da9b90..7e9fb7b9 100644 --- a/yosql-dao/yosql-dao-spring-jdbc/src/main/java/wtf/metio/yosql/dao/spring/jdbc/SpringJdbcMutinyMethodGenerator.java +++ b/yosql-dao/yosql-dao-spring-jdbc/src/main/java/wtf/metio/yosql/dao/spring/jdbc/SpringJdbcMutinyMethodGenerator.java @@ -20,4 +20,14 @@ public final class SpringJdbcMutinyMethodGenerator implements MutinyMethodGenera return null; } + @Override + public MethodSpec mutinyWriteMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + + @Override + public MethodSpec mutinyCallMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + } diff --git a/yosql-dao/yosql-dao-spring-jdbc/src/main/java/wtf/metio/yosql/dao/spring/jdbc/SpringJdbcParameters.java b/yosql-dao/yosql-dao-spring-jdbc/src/main/java/wtf/metio/yosql/dao/spring/jdbc/SpringJdbcParameters.java new file mode 100644 index 00000000..dc20d2c9 --- /dev/null +++ b/yosql-dao/yosql-dao-spring-jdbc/src/main/java/wtf/metio/yosql/dao/spring/jdbc/SpringJdbcParameters.java @@ -0,0 +1,32 @@ +/* + * This file is part of yosql. It is subject to the license terms in the LICENSE file found in the top-level + * directory of this distribution and at https://creativecommons.org/publicdomain/zero/1.0/. No part of yosql, + * including this file, may be copied, modified, propagated, or distributed except according to the terms contained + * in the LICENSE file. + */ + +package wtf.metio.yosql.dao.spring.jdbc; + +import com.squareup.javapoet.ParameterSpec; +import wtf.metio.yosql.models.sql.ResultRowConverter; + +public interface SpringJdbcParameters { + + ParameterSpec namedParameterJdbcTemplate(); + +// ParameterSpec connection(); +// +// ParameterSpec preparedStatement(); +// +// ParameterSpec resultSet(); +// +// ParameterSpec metaData(); +// +// ParameterSpec columnCount(); +// +// ParameterSpec index(); +// +// ParameterSpec columnLabel(); + + ParameterSpec converter(ResultRowConverter converter); +} diff --git a/yosql-dao/yosql-dao-spring-jdbc/src/main/java/wtf/metio/yosql/dao/spring/jdbc/SpringJdbcReactorMethodGenerator.java b/yosql-dao/yosql-dao-spring-jdbc/src/main/java/wtf/metio/yosql/dao/spring/jdbc/SpringJdbcReactorMethodGenerator.java index 7f8584f3..4f6cdf85 100644 --- a/yosql-dao/yosql-dao-spring-jdbc/src/main/java/wtf/metio/yosql/dao/spring/jdbc/SpringJdbcReactorMethodGenerator.java +++ b/yosql-dao/yosql-dao-spring-jdbc/src/main/java/wtf/metio/yosql/dao/spring/jdbc/SpringJdbcReactorMethodGenerator.java @@ -16,8 +16,18 @@ import java.util.List; public final class SpringJdbcReactorMethodGenerator implements ReactorMethodGenerator { @Override + public MethodSpec reactorCallMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + + @Override public MethodSpec reactorReadMethod(final SqlConfiguration configuration, final List vendorStatements) { return null; } + @Override + public MethodSpec reactorWriteMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + } diff --git a/yosql-dao/yosql-dao-spring-jdbc/src/main/java/wtf/metio/yosql/dao/spring/jdbc/SpringJdbcRxJavaMethodGenerator.java b/yosql-dao/yosql-dao-spring-jdbc/src/main/java/wtf/metio/yosql/dao/spring/jdbc/SpringJdbcRxJavaMethodGenerator.java index 558d1655..b34e06e0 100644 --- a/yosql-dao/yosql-dao-spring-jdbc/src/main/java/wtf/metio/yosql/dao/spring/jdbc/SpringJdbcRxJavaMethodGenerator.java +++ b/yosql-dao/yosql-dao-spring-jdbc/src/main/java/wtf/metio/yosql/dao/spring/jdbc/SpringJdbcRxJavaMethodGenerator.java @@ -45,8 +45,18 @@ public final class SpringJdbcRxJavaMethodGenerator implements RxJavaMethodGenera } @Override + public MethodSpec rxJavaCallMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + + @Override public MethodSpec rxJavaReadMethod(final SqlConfiguration configuration, final List vendorStatements) { return null; } + @Override + public MethodSpec rxJavaWriteMethod(final SqlConfiguration configuration, final List vendorStatements) { + return null; + } + } diff --git a/yosql-dao/yosql-dao-jdbc/src/test/java/wtf/metio/yosql/dao/jdbc/JdbcFieldsGeneratorTest.java b/yosql-dao/yosql-dao-spring-jdbc/src/test/java/wtf/metio/yosql/dao/spring/jdbc/SpringJdbcFieldsGeneratorTest.java similarity index 79% copy from yosql-dao/yosql-dao-jdbc/src/test/java/wtf/metio/yosql/dao/jdbc/JdbcFieldsGeneratorTest.java copy to yosql-dao/yosql-dao-spring-jdbc/src/test/java/wtf/metio/yosql/dao/spring/jdbc/SpringJdbcFieldsGeneratorTest.java index 02e0c872..a419656f 100644 --- a/yosql-dao/yosql-dao-jdbc/src/test/java/wtf/metio/yosql/dao/jdbc/JdbcFieldsGeneratorTest.java +++ b/yosql-dao/yosql-dao-spring-jdbc/src/test/java/wtf/metio/yosql/dao/spring/jdbc/SpringJdbcFieldsGeneratorTest.java @@ -5,7 +5,7 @@ * in the LICENSE file. */ -package wtf.metio.yosql.dao.jdbc; +package wtf.metio.yosql.dao.spring.jdbc; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; @@ -13,8 +13,8 @@ import wtf.metio.yosql.codegen.api.FieldsGenerator; import wtf.metio.yosql.codegen.tck.FieldsGeneratorTCK; import wtf.metio.yosql.testing.configs.JavaConfigurations; -@DisplayName("JdbcFieldsGenerator") -final class JdbcFieldsGeneratorTest { +@DisplayName("SpringJdbcFieldsGenerator") +class SpringJdbcFieldsGeneratorTest { @Nested @DisplayName("using default configuration") @@ -22,15 +22,12 @@ final class JdbcFieldsGeneratorTest { @Override public FieldsGenerator generator() { - return JdbcObjectMother.fieldsGenerator(JavaConfigurations.defaults()); + return SpringJdbcObjectMother.fieldsGenerator(JavaConfigurations.defaults()); } @Override public String staticInitializerExpectation() { - return """ - QUERY_DATA_INDEX.put("test", new int[] { 0 }); - QUERY_DATA_INDEX.put("id", new int[] { 1 }); - """; + return null; } @Override @@ -41,7 +38,7 @@ final class JdbcFieldsGeneratorTest { value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - private final javax.sql.DataSource dataSource; + private final org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate jdbcTemplate; """, """ @javax.annotation.processing.Generated( @@ -62,7 +59,7 @@ final class JdbcFieldsGeneratorTest { comments = "DO NOT MODIFY - automatically generated by YoSQL" ) private static final java.lang.String QUERY_DATA_RAW = ""\" - SELECT raw FROM table WHERE test = ? AND id = ?;""\"; + SELECT raw FROM table WHERE test = ? AND id = ?;""\"; """, """ /** @@ -76,14 +73,7 @@ final class JdbcFieldsGeneratorTest { comments = "DO NOT MODIFY - automatically generated by YoSQL" ) private static final java.lang.String QUERY_DATA = ""\" - SELECT raw FROM table WHERE test = ? AND id = ?;""\"; - """, - """ - @javax.annotation.processing.Generated( - value = "YoSQL", - comments = "DO NOT MODIFY - automatically generated by YoSQL" - ) - private static final java.util.Map QUERY_DATA_INDEX = new java.util.HashMap<>(2); + SELECT raw FROM table WHERE test = ? AND id = ?;""\"; """, """ @javax.annotation.processing.Generated( @@ -98,20 +88,17 @@ final class JdbcFieldsGeneratorTest { } @Nested - @DisplayName("using java 4 configuration") + @DisplayName("using Java 4 configuration") class Java4 implements FieldsGeneratorTCK { @Override public FieldsGenerator generator() { - return JdbcObjectMother.fieldsGenerator(JavaConfigurations.java4()); + return SpringJdbcObjectMother.fieldsGenerator(JavaConfigurations.java4()); } @Override public String staticInitializerExpectation() { - return """ - QUERY_DATA_INDEX.put("test", new int[] { 0 }); - QUERY_DATA_INDEX.put("id", new int[] { 1 }); - """; + return null; } @Override @@ -122,7 +109,7 @@ final class JdbcFieldsGeneratorTest { value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - private final javax.sql.DataSource dataSource; + private final org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate jdbcTemplate; """, """ @javax.annotation.processing.Generated( @@ -162,7 +149,7 @@ final class JdbcFieldsGeneratorTest { value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - private static final java.util.Map QUERY_DATA_INDEX = new java.util.HashMap<>(2); + private final com.example.persistence.converter.ToResultRowConverter resultRow; """ }; } @@ -170,20 +157,17 @@ final class JdbcFieldsGeneratorTest { } @Nested - @DisplayName("using java 5 configuration") + @DisplayName("using Java 5 configuration") class Java5 implements FieldsGeneratorTCK { @Override public FieldsGenerator generator() { - return JdbcObjectMother.fieldsGenerator(JavaConfigurations.java5()); + return SpringJdbcObjectMother.fieldsGenerator(JavaConfigurations.java5()); } @Override public String staticInitializerExpectation() { - return """ - QUERY_DATA_INDEX.put("test", new int[] { 0 }); - QUERY_DATA_INDEX.put("id", new int[] { 1 }); - """; + return null; } @Override @@ -194,7 +178,7 @@ final class JdbcFieldsGeneratorTest { value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - private final javax.sql.DataSource dataSource; + private final org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate jdbcTemplate; """, """ @javax.annotation.processing.Generated( @@ -204,17 +188,17 @@ final class JdbcFieldsGeneratorTest { private static final java.util.logging.Logger LOG = java.util.logging.Logger.getLogger(com.example.persistence.DataRepository.class.getName()); """, """ - /** - * Generated based on the following file: - *
    - *
  • data/queryData.sql
  • - *
- */ - @javax.annotation.processing.Generated( - value = "YoSQL", - comments = "DO NOT MODIFY - automatically generated by YoSQL" - ) - private static final java.lang.String QUERY_DATA_RAW = "SELECT raw FROM table WHERE test = ? AND id = ?;"; + /** + * Generated based on the following file: + *
    + *
  • data/queryData.sql
  • + *
+ */ + @javax.annotation.processing.Generated( + value = "YoSQL", + comments = "DO NOT MODIFY - automatically generated by YoSQL" + ) + private static final java.lang.String QUERY_DATA_RAW = "SELECT raw FROM table WHERE test = ? AND id = ?;"; """, """ /** @@ -234,7 +218,7 @@ final class JdbcFieldsGeneratorTest { value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - private static final java.util.Map QUERY_DATA_INDEX = new java.util.HashMap<>(2); + private final com.example.persistence.converter.ToResultRowConverter resultRow; """ }; } @@ -242,20 +226,17 @@ final class JdbcFieldsGeneratorTest { } @Nested - @DisplayName("using java 7 configuration") + @DisplayName("using Java 7 configuration") class Java7 implements FieldsGeneratorTCK { @Override public FieldsGenerator generator() { - return JdbcObjectMother.fieldsGenerator(JavaConfigurations.java7()); + return SpringJdbcObjectMother.fieldsGenerator(JavaConfigurations.java7()); } @Override public String staticInitializerExpectation() { - return """ - QUERY_DATA_INDEX.put("test", new int[] { 0 }); - QUERY_DATA_INDEX.put("id", new int[] { 1 }); - """; + return null; } @Override @@ -266,7 +247,7 @@ final class JdbcFieldsGeneratorTest { value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - private final javax.sql.DataSource dataSource; + private final org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate jdbcTemplate; """, """ @javax.annotation.processing.Generated( @@ -306,7 +287,7 @@ final class JdbcFieldsGeneratorTest { value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - private static final java.util.Map QUERY_DATA_INDEX = new java.util.HashMap<>(2); + private final com.example.persistence.converter.ToResultRowConverter resultRow; """ }; } @@ -314,20 +295,17 @@ final class JdbcFieldsGeneratorTest { } @Nested - @DisplayName("using java 8 configuration") + @DisplayName("using Java 8 configuration") class Java8 implements FieldsGeneratorTCK { @Override public FieldsGenerator generator() { - return JdbcObjectMother.fieldsGenerator(JavaConfigurations.java8()); + return SpringJdbcObjectMother.fieldsGenerator(JavaConfigurations.java8()); } @Override public String staticInitializerExpectation() { - return """ - QUERY_DATA_INDEX.put("test", new int[] { 0 }); - QUERY_DATA_INDEX.put("id", new int[] { 1 }); - """; + return null; } @Override @@ -338,7 +316,7 @@ final class JdbcFieldsGeneratorTest { value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - private final javax.sql.DataSource dataSource; + private final org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate jdbcTemplate; """, """ @javax.annotation.processing.Generated( @@ -378,7 +356,7 @@ final class JdbcFieldsGeneratorTest { value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - private static final java.util.Map QUERY_DATA_INDEX = new java.util.HashMap<>(2); + private final com.example.persistence.converter.ToResultRowConverter resultRow; """ }; } @@ -386,20 +364,17 @@ final class JdbcFieldsGeneratorTest { } @Nested - @DisplayName("using java 9 configuration") + @DisplayName("using Java 9 configuration") class Java9 implements FieldsGeneratorTCK { @Override public FieldsGenerator generator() { - return JdbcObjectMother.fieldsGenerator(JavaConfigurations.java9()); + return SpringJdbcObjectMother.fieldsGenerator(JavaConfigurations.java9()); } @Override public String staticInitializerExpectation() { - return """ - QUERY_DATA_INDEX.put("test", new int[] { 0 }); - QUERY_DATA_INDEX.put("id", new int[] { 1 }); - """; + return null; } @Override @@ -410,7 +385,7 @@ final class JdbcFieldsGeneratorTest { value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - private final javax.sql.DataSource dataSource; + private final org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate jdbcTemplate; """, """ @javax.annotation.processing.Generated( @@ -450,7 +425,7 @@ final class JdbcFieldsGeneratorTest { value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - private static final java.util.Map QUERY_DATA_INDEX = new java.util.HashMap<>(2); + private final com.example.persistence.converter.ToResultRowConverter resultRow; """ }; } @@ -458,20 +433,17 @@ final class JdbcFieldsGeneratorTest { } @Nested - @DisplayName("using java 11 configuration") + @DisplayName("using Java 11 configuration") class Java11 implements FieldsGeneratorTCK { @Override public FieldsGenerator generator() { - return JdbcObjectMother.fieldsGenerator(JavaConfigurations.java11()); + return SpringJdbcObjectMother.fieldsGenerator(JavaConfigurations.java11()); } @Override public String staticInitializerExpectation() { - return """ - QUERY_DATA_INDEX.put("test", new int[] { 0 }); - QUERY_DATA_INDEX.put("id", new int[] { 1 }); - """; + return null; } @Override @@ -482,7 +454,7 @@ final class JdbcFieldsGeneratorTest { value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - private final javax.sql.DataSource dataSource; + private final org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate jdbcTemplate; """, """ @javax.annotation.processing.Generated( @@ -492,17 +464,17 @@ final class JdbcFieldsGeneratorTest { private static final java.util.logging.Logger LOG = java.util.logging.Logger.getLogger(com.example.persistence.DataRepository.class.getName()); """, """ - /** - * Generated based on the following file: - *
    - *
  • data/queryData.sql
  • - *
- */ - @javax.annotation.processing.Generated( - value = "YoSQL", - comments = "DO NOT MODIFY - automatically generated by YoSQL" - ) - private static final java.lang.String QUERY_DATA_RAW = "SELECT raw FROM table WHERE test = ? AND id = ?;"; + /** + * Generated based on the following file: + *
    + *
  • data/queryData.sql
  • + *
+ */ + @javax.annotation.processing.Generated( + value = "YoSQL", + comments = "DO NOT MODIFY - automatically generated by YoSQL" + ) + private static final java.lang.String QUERY_DATA_RAW = "SELECT raw FROM table WHERE test = ? AND id = ?;"; """, """ /** @@ -522,7 +494,7 @@ final class JdbcFieldsGeneratorTest { value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - private static final java.util.Map QUERY_DATA_INDEX = new java.util.HashMap<>(2); + private final com.example.persistence.converter.ToResultRowConverter resultRow; """ }; } @@ -530,20 +502,17 @@ final class JdbcFieldsGeneratorTest { } @Nested - @DisplayName("using java 14 configuration") + @DisplayName("using Java 14 configuration") class Java14 implements FieldsGeneratorTCK { @Override public FieldsGenerator generator() { - return JdbcObjectMother.fieldsGenerator(JavaConfigurations.java14()); + return SpringJdbcObjectMother.fieldsGenerator(JavaConfigurations.java14()); } @Override public String staticInitializerExpectation() { - return """ - QUERY_DATA_INDEX.put("test", new int[] { 0 }); - QUERY_DATA_INDEX.put("id", new int[] { 1 }); - """; + return null; } @Override @@ -554,7 +523,7 @@ final class JdbcFieldsGeneratorTest { value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - private final javax.sql.DataSource dataSource; + private final org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate jdbcTemplate; """, """ @javax.annotation.processing.Generated( @@ -575,7 +544,7 @@ final class JdbcFieldsGeneratorTest { comments = "DO NOT MODIFY - automatically generated by YoSQL" ) private static final java.lang.String QUERY_DATA_RAW = ""\" - SELECT raw FROM table WHERE test = ? AND id = ?;""\"; + SELECT raw FROM table WHERE test = ? AND id = ?;""\"; """, """ /** @@ -589,14 +558,14 @@ final class JdbcFieldsGeneratorTest { comments = "DO NOT MODIFY - automatically generated by YoSQL" ) private static final java.lang.String QUERY_DATA = ""\" - SELECT raw FROM table WHERE test = ? AND id = ?;""\"; + SELECT raw FROM table WHERE test = ? AND id = ?;""\"; """, """ @javax.annotation.processing.Generated( value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - private static final java.util.Map QUERY_DATA_INDEX = new java.util.HashMap<>(2); + private final com.example.persistence.converter.ToResultRowConverter resultRow; """ }; } @@ -604,20 +573,17 @@ final class JdbcFieldsGeneratorTest { } @Nested - @DisplayName("using java 16 configuration") + @DisplayName("using Java 16 configuration") class Java16 implements FieldsGeneratorTCK { @Override public FieldsGenerator generator() { - return JdbcObjectMother.fieldsGenerator(JavaConfigurations.java16()); + return SpringJdbcObjectMother.fieldsGenerator(JavaConfigurations.java16()); } @Override public String staticInitializerExpectation() { - return """ - QUERY_DATA_INDEX.put("test", new int[] { 0 }); - QUERY_DATA_INDEX.put("id", new int[] { 1 }); - """; + return null; } @Override @@ -628,7 +594,7 @@ final class JdbcFieldsGeneratorTest { value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - private final javax.sql.DataSource dataSource; + private final org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate jdbcTemplate; """, """ @javax.annotation.processing.Generated( @@ -649,7 +615,7 @@ final class JdbcFieldsGeneratorTest { comments = "DO NOT MODIFY - automatically generated by YoSQL" ) private static final java.lang.String QUERY_DATA_RAW = ""\" - SELECT raw FROM table WHERE test = ? AND id = ?;""\"; + SELECT raw FROM table WHERE test = ? AND id = ?;""\"; """, """ /** @@ -663,14 +629,14 @@ final class JdbcFieldsGeneratorTest { comments = "DO NOT MODIFY - automatically generated by YoSQL" ) private static final java.lang.String QUERY_DATA = ""\" - SELECT raw FROM table WHERE test = ? AND id = ?;""\"; + SELECT raw FROM table WHERE test = ? AND id = ?;""\"; """, """ @javax.annotation.processing.Generated( value = "YoSQL", comments = "DO NOT MODIFY - automatically generated by YoSQL" ) - private static final java.util.Map QUERY_DATA_INDEX = new java.util.HashMap<>(2); + private final com.example.persistence.converter.ToResultRowConverter resultRow; """ }; } diff --git a/yosql-dao/yosql-dao-spring-jdbc/src/test/java/wtf/metio/yosql/dao/spring/jdbc/SpringJdbcObjectMother.java b/yosql-dao/yosql-dao-spring-jdbc/src/test/java/wtf/metio/yosql/dao/spring/jdbc/SpringJdbcObjectMother.java index a5c852d4..9e7324f2 100644 --- a/yosql-dao/yosql-dao-spring-jdbc/src/test/java/wtf/metio/yosql/dao/spring/jdbc/SpringJdbcObjectMother.java +++ b/yosql-dao/yosql-dao-spring-jdbc/src/test/java/wtf/metio/yosql/dao/spring/jdbc/SpringJdbcObjectMother.java @@ -8,9 +8,11 @@ package wtf.metio.yosql.dao.spring.jdbc; import wtf.metio.yosql.codegen.api.BlockingMethodGenerator; +import wtf.metio.yosql.codegen.api.FieldsGenerator; import wtf.metio.yosql.models.immutables.JavaConfiguration; import wtf.metio.yosql.testing.codegen.Blocks; import wtf.metio.yosql.testing.configs.ConverterConfigurations; +import wtf.metio.yosql.testing.configs.NamesConfigurations; import wtf.metio.yosql.testing.logging.LoggingObjectMother; /** @@ -34,6 +36,14 @@ public class SpringJdbcObjectMother { ConverterConfigurations.withResultRowConverter()); } + public static FieldsGenerator fieldsGenerator(final JavaConfiguration java) { + return new SpringJdbcFieldsGenerator( + Blocks.fields(java), + LoggingObjectMother.loggingGenerator(),Blocks.javadoc(), + ConverterConfigurations.withResultRowConverter(), + NamesConfigurations.defaults()); + } + private SpringJdbcObjectMother() { // factory class } diff --git a/yosql-examples/yosql-examples-maven/yosql-examples-maven-spring-jdbc-java16/pom.xml b/yosql-examples/yosql-examples-maven/yosql-examples-maven-spring-jdbc-java16/pom.xml index 5e21f438..0b04a5a8 100644 --- a/yosql-examples/yosql-examples-maven/yosql-examples-maven-spring-jdbc-java16/pom.xml +++ b/yosql-examples/yosql-examples-maven/yosql-examples-maven-spring-jdbc-java16/pom.xml @@ -33,6 +33,16 @@ YoSQL :: Examples :: Maven :: Spring-JDBC/Java16 + + + + + + + org.springframework + spring-jdbc + + diff --git a/yosql-examples/yosql-examples-maven/yosql-examples-maven-spring-jdbc-java16/src/main/java/wtf/metio/yosql/example/maven/springjdbc/java16/ExampleApp.java b/yosql-examples/yosql-examples-maven/yosql-examples-maven-spring-jdbc-java16/src/main/java/wtf/metio/yosql/example/maven/springjdbc/java16/ExampleApp.java index 734f7ea2..beeef507 100644 --- a/yosql-examples/yosql-examples-maven/yosql-examples-maven-spring-jdbc-java16/src/main/java/wtf/metio/yosql/example/maven/springjdbc/java16/ExampleApp.java +++ b/yosql-examples/yosql-examples-maven/yosql-examples-maven-spring-jdbc-java16/src/main/java/wtf/metio/yosql/example/maven/springjdbc/java16/ExampleApp.java @@ -7,10 +7,10 @@ package wtf.metio.yosql.example.maven.springjdbc.java16; import com.zaxxer.hikari.HikariDataSource; +import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; import wtf.metio.yosql.example.maven.springjdbc.java16.persistence.CompanyRepository; import wtf.metio.yosql.example.maven.springjdbc.java16.persistence.PersonRepository; import wtf.metio.yosql.example.maven.springjdbc.java16.persistence.SchemaRepository; -import wtf.metio.yosql.example.maven.springjdbc.java16.persistence.converter.ToResultRowConverter; import javax.sql.DataSource; import java.util.Arrays; @@ -42,10 +42,10 @@ public class ExampleApp { } private static void runTests(final String[] arguments, final DataSource dataSource) { - final var schemaRepository = new SchemaRepository(dataSource); - final var resultRow = new ToResultRowConverter(); - final var companyRepository = new CompanyRepository(dataSource, resultRow); - final var personRepository = new PersonRepository(dataSource, resultRow); + final var template = new NamedParameterJdbcTemplate(dataSource); + final var schemaRepository = new SchemaRepository(template); + final var companyRepository = new CompanyRepository(template); + final var personRepository = new PersonRepository(template); if (match(arguments, "generic", "stream", "rxjava")) { initializeDatabase(schemaRepository, companyRepository, personRepository); diff --git a/yosql-models/yosql-models-immutables/src/main/java/wtf/metio/yosql/models/immutables/SqlStatement.java b/yosql-models/yosql-models-immutables/src/main/java/wtf/metio/yosql/models/immutables/SqlStatement.java index 5c38f771..4fdbd8b3 100644 --- a/yosql-models/yosql-models-immutables/src/main/java/wtf/metio/yosql/models/immutables/SqlStatement.java +++ b/yosql-models/yosql-models-immutables/src/main/java/wtf/metio/yosql/models/immutables/SqlStatement.java @@ -66,6 +66,13 @@ public interface SqlStatement { } @Value.Lazy + default boolean shouldGenerateBatchWriteAPI() { + return isWriting() && + getConfiguration().generateBatchApi().orElse(Boolean.FALSE) && + Buckets.hasEntries(getConfiguration().parameters()); + } + + @Value.Lazy default boolean shouldGenerateBlockingReadAPI() { return isReading() && getConfiguration().generateBlockingApi().orElse(Boolean.FALSE); } @@ -81,18 +88,23 @@ public interface SqlStatement { } @Value.Lazy - default boolean shouldGenerateStreamEagerReadAPI() { - return isReading() && getConfiguration().generateStreamEagerApi().orElse(Boolean.FALSE); + default boolean shouldGenerateMutinyCallAPI() { + return isCalling() && getConfiguration().generateMutinyApi().orElse(Boolean.FALSE); } @Value.Lazy - default boolean shouldGenerateStreamLazyReadAPI() { - return isReading() && getConfiguration().generateStreamLazyApi().orElse(Boolean.FALSE); + default boolean shouldGenerateMutinyReadAPI() { + return isReading() && getConfiguration().generateMutinyApi().orElse(Boolean.FALSE); } @Value.Lazy - default boolean shouldGenerateRxJavaReadAPI() { - return isReading() && getConfiguration().generateRxJavaApi().orElse(Boolean.FALSE); + default boolean shouldGenerateMutinyWriteAPI() { + return isWriting() && getConfiguration().generateMutinyApi().orElse(Boolean.FALSE); + } + + @Value.Lazy + default boolean shouldGenerateReactorCallAPI() { + return isCalling() && getConfiguration().generateReactorApi().orElse(Boolean.FALSE); } @Value.Lazy @@ -101,15 +113,33 @@ public interface SqlStatement { } @Value.Lazy - default boolean shouldGenerateMutinyReadAPI() { - return isReading() && getConfiguration().generateMutinyApi().orElse(Boolean.FALSE); + default boolean shouldGenerateReactorWriteAPI() { + return isWriting() && getConfiguration().generateReactorApi().orElse(Boolean.FALSE); } @Value.Lazy - default boolean shouldGenerateBatchWriteAPI() { - return isWriting() && - getConfiguration().generateBatchApi().orElse(Boolean.FALSE) && - Buckets.hasEntries(getConfiguration().parameters()); + default boolean shouldGenerateRxJavaCallAPI() { + return isCalling() && getConfiguration().generateRxJavaApi().orElse(Boolean.FALSE); + } + + @Value.Lazy + default boolean shouldGenerateRxJavaReadAPI() { + return isReading() && getConfiguration().generateRxJavaApi().orElse(Boolean.FALSE); + } + + @Value.Lazy + default boolean shouldGenerateRxJavaWriteAPI() { + return isWriting() && getConfiguration().generateRxJavaApi().orElse(Boolean.FALSE); + } + + @Value.Lazy + default boolean shouldGenerateStreamEagerReadAPI() { + return isReading() && getConfiguration().generateStreamEagerApi().orElse(Boolean.FALSE); + } + + @Value.Lazy + default boolean shouldGenerateStreamLazyReadAPI() { + return isReading() && getConfiguration().generateStreamLazyApi().orElse(Boolean.FALSE); } } diff --git a/yosql-models/yosql-models-meta/src/main/java/wtf/metio/yosql/models/meta/data/Names.java b/yosql-models/yosql-models-meta/src/main/java/wtf/metio/yosql/models/meta/data/Names.java index 1c371529..05e5f6e7 100644 --- a/yosql-models/yosql-models-meta/src/main/java/wtf/metio/yosql/models/meta/data/Names.java +++ b/yosql-models/yosql-models-meta/src/main/java/wtf/metio/yosql/models/meta/data/Names.java @@ -44,6 +44,7 @@ public final class Names { .addSettings(jdbcIndexVariable()) .addSettings(indexVariable()) .addSettings(row()) + .addSettings(jdbcTemplate()) .build(); } @@ -290,6 +291,15 @@ public final class Names { .build(); } + private static ConfigurationSetting jdbcTemplate() { + return ConfigurationSetting.builder() + .setName("jdbcTemplate") + .setDescription("The name for a JdbcTemplate or NamedParameterJdbcTemplate variable.") + .setType(TypicalTypes.STRING) + .setValue("jdbcTemplate") + .build(); + } + private Names() { // data class } diff --git a/yosql-testing/yosql-testing-codegen/src/main/java/wtf/metio/yosql/testing/codegen/Blocks.java b/yosql-testing/yosql-testing-codegen/src/main/java/wtf/metio/yosql/testing/codegen/Blocks.java index 54048eee..0fbed2de 100644 --- a/yosql-testing/yosql-testing-codegen/src/main/java/wtf/metio/yosql/testing/codegen/Blocks.java +++ b/yosql-testing/yosql-testing-codegen/src/main/java/wtf/metio/yosql/testing/codegen/Blocks.java @@ -49,7 +49,7 @@ public final class Blocks { } public static Fields fields(final JavaConfiguration java) { - return new DefaultFields(annotationGenerator(), java); + return new DefaultFields(annotationGenerator(), java, NamesConfigurations.defaults()); } public static Variables variables() { diff --git a/yosql-tooling/yosql-tooling-dagger/src/main/java/wtf/metio/yosql/tooling/dagger/codegen/DefaultCodeGeneratorModule.java b/yosql-tooling/yosql-tooling-dagger/src/main/java/wtf/metio/yosql/tooling/dagger/codegen/DefaultCodeGeneratorModule.java index e6a39c1a..e2e40a8d 100644 --- a/yosql-tooling/yosql-tooling-dagger/src/main/java/wtf/metio/yosql/tooling/dagger/codegen/DefaultCodeGeneratorModule.java +++ b/yosql-tooling/yosql-tooling-dagger/src/main/java/wtf/metio/yosql/tooling/dagger/codegen/DefaultCodeGeneratorModule.java @@ -11,8 +11,8 @@ import dagger.Module; import dagger.Provides; import wtf.metio.yosql.codegen.annotations.Delegating; import wtf.metio.yosql.codegen.api.CodeGenerator; +import wtf.metio.yosql.codegen.api.ConverterGenerator; import wtf.metio.yosql.codegen.api.RepositoryGenerator; -import wtf.metio.yosql.codegen.api.UtilitiesGenerator; import wtf.metio.yosql.codegen.blocks.DefaultCodeGenerator; import wtf.metio.yosql.tooling.dagger.codegen.blocks.DefaultGenericBlocksModule; import wtf.metio.yosql.tooling.dagger.codegen.dao.DefaultDaoModule; @@ -34,8 +34,8 @@ public class DefaultCodeGeneratorModule { @Singleton CodeGenerator provideCodeGenerator( final @Delegating RepositoryGenerator repositoryGenerator, - final UtilitiesGenerator utilitiesGenerator) { - return new DefaultCodeGenerator(repositoryGenerator, utilitiesGenerator); + final ConverterGenerator converterGenerator) { + return new DefaultCodeGenerator(repositoryGenerator, converterGenerator); } } diff --git a/yosql-tooling/yosql-tooling-dagger/src/main/java/wtf/metio/yosql/tooling/dagger/codegen/blocks/DefaultGenericBlocksModule.java b/yosql-tooling/yosql-tooling-dagger/src/main/java/wtf/metio/yosql/tooling/dagger/codegen/blocks/DefaultGenericBlocksModule.java index 9672b756..4a4fc08c 100644 --- a/yosql-tooling/yosql-tooling-dagger/src/main/java/wtf/metio/yosql/tooling/dagger/codegen/blocks/DefaultGenericBlocksModule.java +++ b/yosql-tooling/yosql-tooling-dagger/src/main/java/wtf/metio/yosql/tooling/dagger/codegen/blocks/DefaultGenericBlocksModule.java @@ -41,7 +41,7 @@ public class DefaultGenericBlocksModule { @Provides public Fields provideFields(final AnnotationGenerator annotations, final RuntimeConfiguration runtimeConfiguration) { - return new DefaultFields(annotations, runtimeConfiguration.java()); + return new DefaultFields(annotations, runtimeConfiguration.java(), runtimeConfiguration.names()); } @Provides diff --git a/yosql-tooling/yosql-tooling-dagger/src/main/java/wtf/metio/yosql/tooling/dagger/codegen/blocks/DefaultJdbcBlocksModule.java b/yosql-tooling/yosql-tooling-dagger/src/main/java/wtf/metio/yosql/tooling/dagger/codegen/blocks/DefaultJdbcBlocksModule.java index 764616e6..b80eb4bf 100644 --- a/yosql-tooling/yosql-tooling-dagger/src/main/java/wtf/metio/yosql/tooling/dagger/codegen/blocks/DefaultJdbcBlocksModule.java +++ b/yosql-tooling/yosql-tooling-dagger/src/main/java/wtf/metio/yosql/tooling/dagger/codegen/blocks/DefaultJdbcBlocksModule.java @@ -11,6 +11,7 @@ import dagger.Module; import dagger.Provides; import wtf.metio.yosql.codegen.annotations.Delegating; import wtf.metio.yosql.codegen.api.ControlFlows; +import wtf.metio.yosql.codegen.api.Fields; import wtf.metio.yosql.codegen.api.Parameters; import wtf.metio.yosql.codegen.api.Variables; import wtf.metio.yosql.codegen.blocks.GenericBlocks; @@ -33,11 +34,6 @@ public class DefaultJdbcBlocksModule { } @Provides - public JdbcFields provideJdbcFields(final RuntimeConfiguration runtimeConfiguration) { - return new DefaultJdbcFields(runtimeConfiguration.names()); - } - - @Provides public JdbcParameters provideJdbcParameters( final RuntimeConfiguration runtimeConfiguration, final Parameters parameters) { @@ -91,7 +87,7 @@ public class DefaultJdbcBlocksModule { final GenericBlocks blocks, final ControlFlows controlFlows, final Variables variables, - final JdbcFields jdbcFields, + final Fields fields, final JdbcMethods jdbcMethods, @Delegating final LoggingGenerator logging) { return new DefaultJdbcBlocks( @@ -99,7 +95,7 @@ public class DefaultJdbcBlocksModule { blocks, controlFlows, variables, - jdbcFields, + fields, jdbcMethods, logging); } diff --git a/yosql-tooling/yosql-tooling-dagger/src/main/java/wtf/metio/yosql/tooling/dagger/codegen/blocks/DefaultSpringJdbcBlocksModule.java b/yosql-tooling/yosql-tooling-dagger/src/main/java/wtf/metio/yosql/tooling/dagger/codegen/blocks/DefaultSpringJdbcBlocksModule.java index 492fb89e..77deb6f4 100644 --- a/yosql-tooling/yosql-tooling-dagger/src/main/java/wtf/metio/yosql/tooling/dagger/codegen/blocks/DefaultSpringJdbcBlocksModule.java +++ b/yosql-tooling/yosql-tooling-dagger/src/main/java/wtf/metio/yosql/tooling/dagger/codegen/blocks/DefaultSpringJdbcBlocksModule.java @@ -9,8 +9,12 @@ package wtf.metio.yosql.tooling.dagger.codegen.blocks; import dagger.Module; import dagger.Provides; +import wtf.metio.yosql.codegen.api.Parameters; import wtf.metio.yosql.dao.spring.jdbc.DefaultSpringJdbcBlocks; +import wtf.metio.yosql.dao.spring.jdbc.DefaultSpringJdbcParameters; import wtf.metio.yosql.dao.spring.jdbc.SpringJdbcBlocks; +import wtf.metio.yosql.dao.spring.jdbc.SpringJdbcParameters; +import wtf.metio.yosql.models.immutables.RuntimeConfiguration; @Module public class DefaultSpringJdbcBlocksModule { @@ -20,4 +24,11 @@ public class DefaultSpringJdbcBlocksModule { return new DefaultSpringJdbcBlocks(); } + @Provides + public SpringJdbcParameters provideSpringJdbcParameters( + final RuntimeConfiguration runtimeConfiguration, + final Parameters parameters) { + return new DefaultSpringJdbcParameters(parameters, runtimeConfiguration.names()); + } + } diff --git a/yosql-tooling/yosql-tooling-dagger/src/main/java/wtf/metio/yosql/tooling/dagger/codegen/dao/JdbcDaoModule.java b/yosql-tooling/yosql-tooling-dagger/src/main/java/wtf/metio/yosql/tooling/dagger/codegen/dao/JdbcDaoModule.java index e3ca9952..05f8c021 100644 --- a/yosql-tooling/yosql-tooling-dagger/src/main/java/wtf/metio/yosql/tooling/dagger/codegen/dao/JdbcDaoModule.java +++ b/yosql-tooling/yosql-tooling-dagger/src/main/java/wtf/metio/yosql/tooling/dagger/codegen/dao/JdbcDaoModule.java @@ -87,7 +87,6 @@ public class JdbcDaoModule { public FieldsGenerator provideFieldsGenerator( final Fields fields, @Delegating final LoggingGenerator logging, - final JdbcFields jdbcFields, final Javadoc javadoc, final RuntimeConfiguration runtimeConfiguration) { return new JdbcFieldsGenerator( @@ -95,8 +94,7 @@ public class JdbcDaoModule { runtimeConfiguration.names(), logging, javadoc, - fields, - jdbcFields); + fields); } @JDBC @@ -222,13 +220,13 @@ public class JdbcDaoModule { } @Provides - UtilitiesGenerator provideUtilitiesGenerator( + ConverterGenerator provideUtilitiesGenerator( final RuntimeConfiguration runtimeConfiguration, final FlowStateGenerator flowStateGenerator, final ResultStateGenerator resultStateGenerator, final ToResultRowConverterGenerator toResultRowConverterGenerator, final ResultRowGenerator resultRowGenerator) { - return new JdbcUtilitiesGenerator( + return new JdbcConverterGenerator( flowStateGenerator, resultStateGenerator, toResultRowConverterGenerator, diff --git a/yosql-tooling/yosql-tooling-dagger/src/main/java/wtf/metio/yosql/tooling/dagger/codegen/dao/SpringJdbcDaoModule.java b/yosql-tooling/yosql-tooling-dagger/src/main/java/wtf/metio/yosql/tooling/dagger/codegen/dao/SpringJdbcDaoModule.java index 2b9a2faa..5f301c02 100644 --- a/yosql-tooling/yosql-tooling-dagger/src/main/java/wtf/metio/yosql/tooling/dagger/codegen/dao/SpringJdbcDaoModule.java +++ b/yosql-tooling/yosql-tooling-dagger/src/main/java/wtf/metio/yosql/tooling/dagger/codegen/dao/SpringJdbcDaoModule.java @@ -70,17 +70,30 @@ public class SpringJdbcDaoModule { @SpringJDBC ConstructorGenerator provideConstructorGenerator( final GenericBlocks blocks, - final Methods methods) { - return new SpringJdbcConstructorGenerator(blocks, methods); + final Methods methods, + final RuntimeConfiguration runtimeConfiguration, + final SpringJdbcParameters parameters) { + return new SpringJdbcConstructorGenerator( + blocks, + methods, + runtimeConfiguration.repositories(), + parameters, + runtimeConfiguration.names()); } @Provides @SpringJDBC FieldsGenerator provideFieldsGenerator( + final RuntimeConfiguration runtimeConfiguration, final Fields fields, @Delegating final LoggingGenerator logging, final Javadoc javadoc) { - return new SpringJdbcFieldsGenerator(fields, logging, javadoc); + return new SpringJdbcFieldsGenerator( + fields, + logging, + javadoc, + runtimeConfiguration.converter(), + runtimeConfiguration.names()); } @Provides -- 2.11.4.GIT