org.babyfish.jimmer.sql.runtime.Reader Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jimmer-sql Show documentation
Show all versions of jimmer-sql Show documentation
A revolutionary ORM framework for both java and kotlin
package org.babyfish.jimmer.sql.runtime;
import org.babyfish.jimmer.runtime.DraftContext;
import org.babyfish.jimmer.runtime.DraftSpi;
import org.babyfish.jimmer.sql.ast.tuple.*;
import org.babyfish.jimmer.sql.dialect.Dialect;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.time.ZoneId;
public interface Reader {
T read(ResultSet rs, Context ctx) throws SQLException;
final class Context {
private DraftContext draftContext;
private final Dialect dialect;
private final ZoneId zoneId;
private int col;
public Context(@Nullable DraftContext draftContext, JSqlClientImplementor sqlClient) {
this.draftContext = draftContext;
this.dialect = sqlClient.getDialect();
this.zoneId = sqlClient.getZoneId();
}
@NotNull
public DraftContext draftContext() {
DraftContext dc = draftContext;
if (dc == null) {
draftContext = dc = new DraftContext(null);
}
return dc;
}
public Dialect getDialect() {
return dialect;
}
public ZoneId getZoneId() {
return zoneId;
}
public int col() {
return ++col;
}
public void addCol(int delta) {
col += delta;
}
public void resetCol() {
col = 0;
}
public Object resolve(DraftSpi spi) {
return draftContext().resolveObject(spi);
}
}
static Reader> tuple(Reader reader1, Reader reader2) {
return new Reader>() {
@Override
public Tuple2 read(ResultSet rs, Context ctx) throws SQLException {
return new Tuple2<>(
reader1.read(rs, ctx),
reader2.read(rs, ctx)
);
}
};
}
static Reader> tuple(
Reader reader1,
Reader reader2,
Reader reader3
) {
return new Reader>() {
@Override
public Tuple3 read(ResultSet rs, Context ctx) throws SQLException {
return new Tuple3<>(
reader1.read(rs, ctx),
reader2.read(rs, ctx),
reader3.read(rs, ctx)
);
}
};
}
static Reader> tuple(
Reader reader1,
Reader reader2,
Reader reader3,
Reader reader4
) {
return new Reader>() {
@Override
public Tuple4 read(ResultSet rs, Context ctx) throws SQLException {
return new Tuple4<>(
reader1.read(rs, ctx),
reader2.read(rs, ctx),
reader3.read(rs, ctx),
reader4.read(rs, ctx)
);
}
};
}
static Reader> tuple(
Reader reader1,
Reader reader2,
Reader reader3,
Reader reader4,
Reader reader5
) {
return new Reader>() {
@Override
public Tuple5 read(ResultSet rs, Context ctx) throws SQLException {
return new Tuple5<>(
reader1.read(rs, ctx),
reader2.read(rs, ctx),
reader3.read(rs, ctx),
reader4.read(rs, ctx),
reader5.read(rs, ctx)
);
}
};
}
static Reader> tuple(
Reader reader1,
Reader reader2,
Reader reader3,
Reader reader4,
Reader reader5,
Reader reader6
) {
return new Reader>() {
@Override
public Tuple6 read(ResultSet rs, Context ctx) throws SQLException {
return new Tuple6<>(
reader1.read(rs, ctx),
reader2.read(rs, ctx),
reader3.read(rs, ctx),
reader4.read(rs, ctx),
reader5.read(rs, ctx),
reader6.read(rs, ctx)
);
}
};
}
static Reader> tuple(
Reader reader1,
Reader reader2,
Reader reader3,
Reader reader4,
Reader reader5,
Reader reader6,
Reader reader7
) {
return new Reader>() {
@Override
public Tuple7 read(ResultSet rs, Context ctx) throws SQLException {
return new Tuple7<>(
reader1.read(rs, ctx),
reader2.read(rs, ctx),
reader3.read(rs, ctx),
reader4.read(rs, ctx),
reader5.read(rs, ctx),
reader6.read(rs, ctx),
reader7.read(rs, ctx)
);
}
};
}
static Reader> tuple(
Reader reader1,
Reader reader2,
Reader reader3,
Reader reader4,
Reader reader5,
Reader reader6,
Reader reader7,
Reader reader8
) {
return new Reader>() {
@Override
public Tuple8 read(ResultSet rs, Context ctx) throws SQLException {
return new Tuple8<>(
reader1.read(rs, ctx),
reader2.read(rs, ctx),
reader3.read(rs, ctx),
reader4.read(rs, ctx),
reader5.read(rs, ctx),
reader6.read(rs, ctx),
reader7.read(rs, ctx),
reader8.read(rs, ctx)
);
}
};
}
static Reader> tuple(
Reader reader1,
Reader reader2,
Reader reader3,
Reader reader4,
Reader reader5,
Reader reader6,
Reader reader7,
Reader reader8,
Reader reader9
) {
return new Reader>() {
@Override
public Tuple9 read(ResultSet rs, Context ctx) throws SQLException {
return new Tuple9<>(
reader1.read(rs, ctx),
reader2.read(rs, ctx),
reader3.read(rs, ctx),
reader4.read(rs, ctx),
reader5.read(rs, ctx),
reader6.read(rs, ctx),
reader7.read(rs, ctx),
reader8.read(rs, ctx),
reader9.read(rs, ctx)
);
}
};
}
}