
io.vertx.up.uca.jooq.JoinEngine Maven / Gradle / Ivy
The newest version!
package io.vertx.up.uca.jooq;
import io.vertx.core.Future;
import io.vertx.core.json.JsonArray;
import io.vertx.core.json.JsonObject;
import io.vertx.up.atom.pojo.Mojo;
import io.vertx.up.atom.query.engine.Qr;
import io.vertx.up.unity.Ux;
import java.util.Set;
/*
* Join Operation Complex JqTool Component
*/
@SuppressWarnings("all")
class JoinEngine {
private final transient JoinStore store;
private final transient JoinSearch search;
private final transient JoinUnique unique;
private final transient JoinWriter writer;
JoinEngine() {
this.store = new JoinStore();
this.search = new JoinSearch(store);
this.unique = new JoinUnique(store);
this.writer = new JoinWriter(store);
}
JoinEngine add(final Class daoCls, final String field) {
this.store.add(daoCls, field);
return this;
}
JoinEngine alias(final Class> daoCls, final String field, final String alias) {
this.store.alias(daoCls, field, alias);
return this;
}
JoinEngine join(final Class> daoCls, final String field) {
this.store.join(daoCls, field);
return this;
}
JoinEngine pojo(final Class> daoCls, final String pojo) {
this.store.pojo(daoCls, pojo);
return this;
}
// -------------------- Meta Data Processing
Set fieldFirst() {
return this.store.metaFirstField();
}
// -------------------- Single Processing -----------
Future fetchById(final String key, final boolean isASub, final String field) {
return this.unique.fetchById(key, isASub, field);
}
Future deleteById(final String key) {
return this.writer.deleteById(key);
}
Future insert(final JsonObject data, final String field) {
return this.writer.insert(data, field);
}
Future update(final String key, final JsonObject data, final String field) {
return this.writer.update(key, data, field);
}
// -------------------- Search Operation -----------
/*
* Pagination Searching
*/
Future searchAsync(final Qr qr, final Mojo mojo) {
final JsonObject response = new JsonObject();
final JsonArray data = this.search.searchA(qr, mojo);
response.put("list", data);
final Long counter = this.search.count(qr);
response.put("count", counter);
return Ux.future(response);
}
JsonArray searchArray(final Qr qr, final Mojo mojo) {
return this.search.searchA(qr, mojo);
}
Future countAsync(final Qr qr) {
return Future.succeededFuture(this.search.count(qr));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy