All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.zero88.jooqx.ReactiveJooqx Maven / Gradle / Ivy

The newest version!
package io.zero88.jooqx;

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.ReactiveSQLImpl.JooqxPoolImpl;
import io.zero88.jooqx.adapter.SQLResultAdapter;
import io.zero88.jooqx.datatype.DataTypeMapperRegistry;

import lombok.NonNull;

/**
 * Represents for an executor that executes {@code jOOQ query} on {@code Vertx reactive SQL pool}
 *
 * @see Pool
 * @since 1.0.0
 */
@VertxGen
public interface ReactiveJooqx extends ReactiveJooqxBase {

    @GenIgnore
    static ReactiveJooqxBuilder builder() {
        return new ReactiveJooqxBuilder();
    }

    @Override
    @NonNull Vertx vertx();

    @Override
    @GenIgnore(GenIgnore.PERMITTED_TYPE)
    @NonNull DSLContext dsl();

    @Override
    @NonNull Pool sqlClient();

    @Override
    @GenIgnore(GenIgnore.PERMITTED_TYPE)
    @NonNull ReactiveSQLPreparedQuery preparedQuery();

    @Override
    @NonNull ReactiveSQLResultCollector resultCollector();

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

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

    @Override
    @NonNull
    @SuppressWarnings("unchecked")
    ReactiveJooqxTx transaction();

    @Override
    @GenIgnore(GenIgnore.PERMITTED_TYPE)
     Future execute(@NonNull Query query, @NonNull SQLResultAdapter adapter);

    @Override
    @GenIgnore(GenIgnore.PERMITTED_TYPE)
    default  void execute(@NonNull Query query, @NonNull SQLResultAdapter adapter,
                                @NonNull Handler> handler) {
        ReactiveJooqxBase.super.execute(query, adapter, handler);
    }

    @Override
    @GenIgnore(GenIgnore.PERMITTED_TYPE)
    default void batch(@NonNull Query query, @NonNull BindBatchValues bindBatchValues,
                       @NonNull Handler> handler) {
        ReactiveJooqxBase.super.batch(query, bindBatchValues, handler);
    }

    @Override
    @GenIgnore(GenIgnore.PERMITTED_TYPE)
    Future batch(@NonNull Query query, @NonNull BindBatchValues bindBatchValues);

    @Override
    @GenIgnore(GenIgnore.PERMITTED_TYPE)
     Future> batch(@NonNull Query query, @NonNull BindBatchValues bindBatchValues,
                                                 @NonNull SQLResultAdapter.SQLResultListAdapter adapter);

    @Override
    @GenIgnore(GenIgnore.PERMITTED_TYPE)
    default  void batch(@NonNull Query query, @NonNull BindBatchValues bindBatchValues,
                              @NonNull SQLResultAdapter.SQLResultListAdapter adapter,
                              @NonNull Handler>> handler) {
        ReactiveJooqxBase.super.batch(query, bindBatchValues, adapter, handler);
    }

    @GenIgnore
    class ReactiveJooqxBuilder extends ReAJooqxBBuilder {

        @Override
        public ReactiveJooqx build() {
            return new JooqxPoolImpl(vertx(), dsl(), sqlClient(), preparedQuery(), resultCollector(), errorConverter(),
                                     typeMapperRegistry());
        }

    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy