Skip to content

Commit

Permalink
[#101] Make SQLQueryExecutor, SQLBatchExecutor, SQLDDLExecutor is abl…
Browse files Browse the repository at this point in the history
…e to generate to avoid re-declares methods in subclasses
  • Loading branch information
zero88 committed Apr 9, 2022
1 parent 020bc44 commit 21d8032
Show file tree
Hide file tree
Showing 8 changed files with 39 additions and 307 deletions.
99 changes: 1 addition & 98 deletions core/src/main/java/io/zero88/jooqx/Jooqx.java
Original file line number Diff line number Diff line change
@@ -1,22 +1,13 @@
package io.zero88.jooqx;

import java.util.function.Function;

import org.jetbrains.annotations.NotNull;
import org.jooq.DDLQuery;
import org.jooq.DSLContext;
import org.jooq.Query;

import io.vertx.codegen.annotations.GenIgnore;
import io.vertx.codegen.annotations.Nullable;
import io.vertx.codegen.annotations.VertxGen;
import io.vertx.core.AsyncResult;
import io.vertx.core.Future;
import io.vertx.core.Handler;
import io.vertx.core.Vertx;
import io.vertx.sqlclient.Pool;
import io.zero88.jooqx.JooqxSQLImpl.JooqxBuilderImpl;
import io.zero88.jooqx.adapter.SQLResultAdapter;
import io.zero88.jooqx.datatype.DataTypeMapperRegistry;

/**
Expand All @@ -26,7 +17,7 @@
* @since 1.1.0
*/
@VertxGen
public interface Jooqx extends JooqxBase<Pool> {
public interface Jooqx extends JooqxBase<Pool>, SQLQueryExecutor, SQLBatchExecutor, SQLDDLExecutor {

/**
* Create a builder
Expand All @@ -47,7 +38,6 @@ public interface Jooqx extends JooqxBase<Pool> {
@NotNull Pool sqlClient();

@Override
@GenIgnore(GenIgnore.PERMITTED_TYPE)
@NotNull JooqxPreparedQuery preparedQuery();

@Override
Expand All @@ -65,91 +55,4 @@ public interface Jooqx extends JooqxBase<Pool> {
@Override
@NotNull JooqxTx transaction();

@Override
@GenIgnore(GenIgnore.PERMITTED_TYPE)
default void batch(@NotNull Function<DSLContext, Query> queryFunction, @NotNull BindBatchValues bindBatchValues,
@NotNull Handler<AsyncResult<BatchResult>> handler) {
JooqxBase.super.batch(queryFunction, bindBatchValues, handler);
}

@Override
@GenIgnore(GenIgnore.PERMITTED_TYPE)
default Future<BatchResult> batch(@NotNull Function<DSLContext, Query> queryFunction,
@NotNull BindBatchValues bindBatchValues) {
return JooqxBase.super.batch(queryFunction, bindBatchValues);
}

@Override
@GenIgnore(GenIgnore.PERMITTED_TYPE)
default <T, R> void execute(@NotNull Function<DSLContext, Query> queryFunction,
@NotNull SQLResultAdapter<T, R> resultAdapter,
@NotNull Handler<AsyncResult<@Nullable R>> handler) {
JooqxBase.super.execute(queryFunction, resultAdapter, handler);
}

@Override
@GenIgnore(GenIgnore.PERMITTED_TYPE)
default <T, R> Future<@Nullable R> execute(@NotNull Function<DSLContext, Query> queryFunction,
@NotNull SQLResultAdapter<T, R> resultAdapter) {
return JooqxBase.super.execute(queryFunction, resultAdapter);
}

@Override
@GenIgnore(GenIgnore.PERMITTED_TYPE)
<T, R> Future<R> execute(@NotNull Query query, @NotNull SQLResultAdapter<T, R> adapter);

@Override
@GenIgnore(GenIgnore.PERMITTED_TYPE)
default <T, R> void execute(@NotNull Query query, @NotNull SQLResultAdapter<T, R> adapter,
@NotNull Handler<AsyncResult<@Nullable R>> handler) {
JooqxBase.super.execute(query, adapter, handler);
}

@Override
@GenIgnore(GenIgnore.PERMITTED_TYPE)
default void batch(@NotNull Query query, @NotNull BindBatchValues bindBatchValues,
@NotNull Handler<AsyncResult<BatchResult>> handler) {
JooqxBase.super.batch(query, bindBatchValues, handler);
}

@Override
@GenIgnore(GenIgnore.PERMITTED_TYPE)
Future<BatchResult> batch(@NotNull Query query, @NotNull BindBatchValues bindBatchValues);

@Override
@GenIgnore(GenIgnore.PERMITTED_TYPE)
<T, R> Future<BatchReturningResult<R>> batch(@NotNull Query query, @NotNull BindBatchValues bindBatchValues,
@NotNull SQLResultAdapter.SQLResultListAdapter<T, R> adapter);

@Override
@GenIgnore(GenIgnore.PERMITTED_TYPE)
default <T, R> void batch(@NotNull Query query, @NotNull BindBatchValues bindBatchValues,
@NotNull SQLResultAdapter.SQLResultListAdapter<T, R> adapter,
@NotNull Handler<AsyncResult<BatchReturningResult<R>>> handler) {
JooqxBase.super.batch(query, bindBatchValues, adapter, handler);
}

@Override
@GenIgnore(GenIgnore.PERMITTED_TYPE)
default void ddl(@NotNull Function<DSLContext, DDLQuery> ddlFunction,
@NotNull Handler<AsyncResult<Integer>> handler) {
JooqxBase.super.ddl(ddlFunction, handler);
}

@Override
@GenIgnore(GenIgnore.PERMITTED_TYPE)
default Future<Integer> ddl(@NotNull Function<DSLContext, DDLQuery> ddlFunction) {
return JooqxBase.super.ddl(ddlFunction);
}

@Override
@GenIgnore(GenIgnore.PERMITTED_TYPE)
default void ddl(@NotNull DDLQuery query, @NotNull Handler<AsyncResult<Integer>> handler) {
JooqxBase.super.ddl(query, handler);
}

@Override
@GenIgnore(GenIgnore.PERMITTED_TYPE)
Future<Integer> ddl(@NotNull DDLQuery query);

}
111 changes: 1 addition & 110 deletions core/src/main/java/io/zero88/jooqx/JooqxConn.java
Original file line number Diff line number Diff line change
@@ -1,23 +1,13 @@
package io.zero88.jooqx;

import java.util.function.Function;

import org.jetbrains.annotations.NotNull;
import org.jooq.DDLQuery;
import org.jooq.DSLContext;
import org.jooq.Query;

import io.vertx.codegen.annotations.GenIgnore;
import io.vertx.codegen.annotations.Nullable;
import io.vertx.codegen.annotations.VertxGen;
import io.vertx.core.AsyncResult;
import io.vertx.core.Future;
import io.vertx.core.Handler;
import io.vertx.core.Vertx;
import io.vertx.sqlclient.SqlConnection;
import io.zero88.jooqx.JooqxSQLImpl.JooqxConnBuilderImpl;
import io.zero88.jooqx.adapter.SQLResultAdapter;
import io.zero88.jooqx.datatype.DataTypeMapperRegistry;

/**
* Represents for an executor that executes {@code jOOQ query} on {@code Vertx reactive SQL client} connection
Expand All @@ -26,7 +16,7 @@
* @since 1.1.0
*/
@VertxGen
public interface JooqxConn extends JooqxBase<SqlConnection> {
public interface JooqxConn extends JooqxBase<SqlConnection>, SQLQueryExecutor, SQLBatchExecutor, SQLDDLExecutor {

/**
* Create a builder
Expand All @@ -52,103 +42,4 @@ public interface JooqxConn extends JooqxBase<SqlConnection> {
@Override
@NotNull JooqxResultCollector resultCollector();

@Override
@GenIgnore(GenIgnore.PERMITTED_TYPE)
default void batch(@NotNull Function<DSLContext, Query> queryFunction, @NotNull BindBatchValues bindBatchValues,
@NotNull Handler<AsyncResult<BatchResult>> handler) {
JooqxBase.super.batch(queryFunction, bindBatchValues, handler);
}

@Override
@GenIgnore(GenIgnore.PERMITTED_TYPE)
default Future<BatchResult> batch(@NotNull Function<DSLContext, Query> queryFunction,
@NotNull BindBatchValues bindBatchValues) {
return JooqxBase.super.batch(queryFunction, bindBatchValues);
}

@Override
@GenIgnore(GenIgnore.PERMITTED_TYPE)
default <T, R> void execute(@NotNull Function<DSLContext, Query> queryFunction,
@NotNull SQLResultAdapter<T, R> resultAdapter,
@NotNull Handler<AsyncResult<@Nullable R>> handler) {
JooqxBase.super.execute(queryFunction, resultAdapter, handler);
}

@Override
@GenIgnore(GenIgnore.PERMITTED_TYPE)
default <T, R> Future<@Nullable R> execute(@NotNull Function<DSLContext, Query> queryFunction,
@NotNull SQLResultAdapter<T, R> resultAdapter) {
return JooqxBase.super.execute(queryFunction, resultAdapter);
}

@Override
@GenIgnore(GenIgnore.PERMITTED_TYPE)
@NotNull SQLErrorConverter errorConverter();

@Override
@GenIgnore(GenIgnore.PERMITTED_TYPE)
@NotNull DataTypeMapperRegistry typeMapperRegistry();

@SuppressWarnings("unchecked")
@Override
@NotNull JooqxTx transaction();

@Override
@GenIgnore(GenIgnore.PERMITTED_TYPE)
<T, R> Future<R> execute(@NotNull Query query, @NotNull SQLResultAdapter<T, R> adapter);

@Override
@GenIgnore(GenIgnore.PERMITTED_TYPE)
default <T, R> void execute(@NotNull Query query, @NotNull SQLResultAdapter<T, R> adapter,
@NotNull Handler<AsyncResult<@Nullable R>> handler) {
JooqxBase.super.execute(query, adapter, handler);
}

@Override
@GenIgnore(GenIgnore.PERMITTED_TYPE)
default void batch(@NotNull Query query, @NotNull BindBatchValues bindBatchValues,
@NotNull Handler<AsyncResult<BatchResult>> handler) {
JooqxBase.super.batch(query, bindBatchValues, handler);
}

@Override
@GenIgnore(GenIgnore.PERMITTED_TYPE)
Future<BatchResult> batch(@NotNull Query query, @NotNull BindBatchValues bindBatchValues);

@Override
@GenIgnore(GenIgnore.PERMITTED_TYPE)
<T, R> Future<BatchReturningResult<R>> batch(@NotNull Query query, @NotNull BindBatchValues bindBatchValues,
@NotNull SQLResultAdapter.SQLResultListAdapter<T, R> adapter);

@Override
@GenIgnore(GenIgnore.PERMITTED_TYPE)
default <T, R> void batch(@NotNull Query query, @NotNull BindBatchValues bindBatchValues,
@NotNull SQLResultAdapter.SQLResultListAdapter<T, R> adapter,
@NotNull Handler<AsyncResult<BatchReturningResult<R>>> handler) {
JooqxBase.super.batch(query, bindBatchValues, adapter, handler);
}

@Override
@GenIgnore(GenIgnore.PERMITTED_TYPE)
default void ddl(@NotNull Function<DSLContext, DDLQuery> ddlFunction,
@NotNull Handler<AsyncResult<Integer>> handler) {
JooqxBase.super.ddl(ddlFunction, handler);
}

@Override
@GenIgnore(GenIgnore.PERMITTED_TYPE)
default Future<Integer> ddl(@NotNull Function<DSLContext, DDLQuery> ddlFunction) {
return JooqxBase.super.ddl(ddlFunction);
}

@Override
@GenIgnore(GenIgnore.PERMITTED_TYPE)
default void ddl(@NotNull DDLQuery query, @NotNull Handler<AsyncResult<Integer>> handler) {
JooqxBase.super.ddl(query, handler);
}

@Override
@GenIgnore(GenIgnore.PERMITTED_TYPE)
Future<Integer> ddl(@NotNull DDLQuery query);

}
4 changes: 2 additions & 2 deletions core/src/main/java/io/zero88/jooqx/JooqxSQLImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -258,8 +258,8 @@ public <T, R> Future<BatchReturningResult<R>> batch(@NotNull Query query,
}

@Override
public Future<Integer> ddl(@NotNull DDLQuery query) {
return sqlClient().query(preparedQuery().sql(dsl().configuration(), query))
public Future<Integer> ddl(@NotNull DDLQuery statement) {
return sqlClient().query(preparedQuery().sql(dsl().configuration(), statement))
.execute()
.map(SqlResult::size)
.otherwise(errorConverter()::reThrowError);
Expand Down
Loading

0 comments on commit 21d8032

Please sign in to comment.