}
private IndexKeyRange range(boolean loInclusive, Integer aLo, Integer bLo, Integer cLo, Integer idLo,
boolean hiInclusive, Integer aHi, Integer bHi, Integer cHi, Integer idHi)
{
IndexBound lo;
if (aLo == UNSPECIFIED) {
lo = null;
fail();
} else if (bLo == UNSPECIFIED) {
lo = new IndexBound(row(idxRowType, aLo), new SetColumnSelector(0));
} else if (cLo == UNSPECIFIED) {
lo = new IndexBound(row(idxRowType, aLo, bLo), new SetColumnSelector(0, 1));
} else if (idLo == UNSPECIFIED) {
lo = new IndexBound(row(idxRowType, aLo, bLo, cLo), new SetColumnSelector(0, 1, 2));
} else {
lo = new IndexBound(row(idxRowType, aLo, bLo, cLo, idLo), new SetColumnSelector(0, 1, 2, 3));
}
IndexBound hi;
if (aHi == UNSPECIFIED) {
hi = null;
fail();
} else if (bHi == UNSPECIFIED) {
hi = new IndexBound(row(idxRowType, aHi), new SetColumnSelector(0));
} else if (cHi == UNSPECIFIED) {
hi = new IndexBound(row(idxRowType, aHi, bHi), new SetColumnSelector(0, 1));
} else if (idHi == UNSPECIFIED) {
hi = new IndexBound(row(idxRowType, aHi, bHi, cHi), new SetColumnSelector(0, 1, 2));
} else {
hi = new IndexBound(row(idxRowType, aHi, bHi, cHi, idHi), new SetColumnSelector(0, 1, 2, 3));
}
return IndexKeyRange.bounded(idxRowType, lo, loInclusive, hi, hiInclusive);
}