com.github.davidmoten.rx.jdbc.tuple.Tuples Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of rxjava-jdbc Show documentation
Show all versions of rxjava-jdbc Show documentation
rx-java Observables for jdbc
package com.github.davidmoten.rx.jdbc.tuple;
import static com.github.davidmoten.rx.jdbc.Util.mapObject;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import rx.functions.Func1;
/**
* Utility methods for tuples.
*/
public final class Tuples {
/**
* Private constructor to prevent instantiation.
*/
private Tuples() {
// prevent instantiation.
}
public static final Func1 single(final Class cls) {
return new Func1() {
@SuppressWarnings("unchecked")
@Override
public T call(ResultSet rs) {
return (T) mapObject(rs, cls, 1);
}
};
}
public static final Func1> tuple(
final Class cls1, final Class cls2) {
return new Func1>() {
@SuppressWarnings("unchecked")
@Override
public Tuple2 call(ResultSet rs) {
return new Tuple2((T1) mapObject(rs, cls1, 1),
(T2) mapObject(rs, cls2, 2));
}
};
}
public static final Func1> tuple(
final Class cls1, final Class cls2, final Class cls3) {
return new Func1>() {
@SuppressWarnings("unchecked")
@Override
public Tuple3 call(ResultSet rs) {
return new Tuple3((T1) mapObject(rs, cls1, 1),
(T2) mapObject(rs, cls2, 2),
(T3) mapObject(rs, cls3, 3));
}
};
}
public static final Func1> tuple(
final Class cls1, final Class cls2, final Class cls3,
final Class cls4) {
return new Func1>() {
@SuppressWarnings("unchecked")
@Override
public Tuple4 call(ResultSet rs) {
return new Tuple4((T1) mapObject(rs, cls1, 1),
(T2) mapObject(rs, cls2, 2),
(T3) mapObject(rs, cls3, 3),
(T4) mapObject(rs, cls4, 4));
}
};
}
public static final Func1> tuple(
final Class cls1, final Class cls2, final Class cls3,
final Class cls4, final Class cls5) {
return new Func1>() {
@SuppressWarnings("unchecked")
@Override
public Tuple5 call(ResultSet rs) {
return new Tuple5((T1) mapObject(rs, cls1,
1), (T2) mapObject(rs, cls2, 2), (T3) mapObject(rs,
cls3, 3), (T4) mapObject(rs, cls4, 4), (T5) mapObject(
rs, cls5, 5));
}
};
}
public static final Func1> tuple(
final Class cls1, final Class cls2, final Class cls3,
final Class cls4, final Class cls5, final Class cls6) {
return new Func1>() {
@SuppressWarnings("unchecked")
@Override
public Tuple6 call(ResultSet rs) {
return new Tuple6((T1) mapObject(rs,
cls1, 1), (T2) mapObject(rs, cls2, 2), (T3) mapObject(
rs, cls3, 3), (T4) mapObject(rs, cls4, 4),
(T5) mapObject(rs, cls5, 5),
(T6) mapObject(rs, cls6, 6));
}
};
}
public static final Func1> tuple(
final Class cls1, final Class cls2, final Class cls3,
final Class cls4, final Class cls5, final Class cls6,
final Class cls7) {
return new Func1>() {
@SuppressWarnings("unchecked")
@Override
public Tuple7 call(ResultSet rs) {
return new Tuple7((T1) mapObject(
rs, cls1, 1), (T2) mapObject(rs, cls2, 2),
(T3) mapObject(rs, cls3, 3),
(T4) mapObject(rs, cls4, 4),
(T5) mapObject(rs, cls5, 5),
(T6) mapObject(rs, cls6, 6),
(T7) mapObject(rs, cls7, 7));
}
};
}
public static final Func1> tupleN(
final Class cls) {
return new Func1>() {
@Override
public TupleN call(ResultSet rs) {
return toTupleN(cls, rs);
}
};
}
@SuppressWarnings("unchecked")
private static TupleN toTupleN(final Class cls, ResultSet rs) {
try {
int n = rs.getMetaData().getColumnCount();
List list = new ArrayList();
for (int i = 1; i <= n; i++) {
list.add((T) mapObject(rs, cls, i));
}
return new TupleN(list);
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy