final Triple keyMinimum, final Triple keyMaximum) {
if (keyMinimum == null) {
if (keyMaximum == null) {
switch (collationOrder) {
case SPO:
return sixIndices.SPO.prefixSearch(new TripleKey(key,
CollationOrder.SPO));
case SOP:
return sixIndices.SOP.prefixSearch(new TripleKey(key,
CollationOrder.SOP));
case PSO:
return sixIndices.PSO.prefixSearch(new TripleKey(key,
CollationOrder.PSO));
case POS:
return sixIndices.POS.prefixSearch(new TripleKey(key,
CollationOrder.POS));
case OSP:
return sixIndices.OSP.prefixSearch(new TripleKey(key,
CollationOrder.OSP));
default:
case OPS:
return sixIndices.OPS.prefixSearch(new TripleKey(key,
CollationOrder.OPS));
}
} else {
switch (collationOrder) {
case SPO:
return sixIndices.SPO.prefixSearchMax(new TripleKey(key,
CollationOrder.SPO),
new TripleKey(keyMaximum,
CollationOrder.SPO));
case SOP:
return sixIndices.SOP.prefixSearchMax(new TripleKey(key,
CollationOrder.SOP),
new TripleKey(keyMaximum,
CollationOrder.SOP));
case PSO:
return sixIndices.PSO.prefixSearchMax(new TripleKey(key,
CollationOrder.PSO),
new TripleKey(keyMaximum,
CollationOrder.PSO));
case POS:
return sixIndices.POS.prefixSearchMax(new TripleKey(key,
CollationOrder.POS),
new TripleKey(keyMaximum,
CollationOrder.POS));
case OSP:
return sixIndices.OSP.prefixSearchMax(new TripleKey(key,
CollationOrder.OSP),
new TripleKey(keyMaximum,
CollationOrder.OSP));
default:
case OPS:
return sixIndices.OPS.prefixSearchMax(new TripleKey(key,
CollationOrder.OPS),
new TripleKey(keyMaximum,
CollationOrder.OPS));
}
}
} else {
if (keyMaximum == null) {
switch (collationOrder) {
case SPO:
return sixIndices.SPO.prefixSearch(new TripleKey(key,
CollationOrder.SPO),
new TripleKey(keyMinimum,
CollationOrder.SPO));
case SOP:
return sixIndices.SOP.prefixSearch(new TripleKey(key,
CollationOrder.SOP),
new TripleKey(keyMinimum,
CollationOrder.SOP));
case PSO:
return sixIndices.PSO.prefixSearch(new TripleKey(key,
CollationOrder.PSO),
new TripleKey(keyMinimum,
CollationOrder.PSO));
case POS:
return sixIndices.POS.prefixSearch(new TripleKey(key,
CollationOrder.POS),
new TripleKey(keyMinimum,
CollationOrder.POS));
case OSP:
return sixIndices.OSP.prefixSearch(new TripleKey(key,
CollationOrder.OSP),
new TripleKey(keyMinimum,
CollationOrder.OSP));
default:
case OPS:
return sixIndices.OPS.prefixSearch(new TripleKey(key,
CollationOrder.OPS),
new TripleKey(keyMinimum,
CollationOrder.OPS));
}
} else {
switch (collationOrder) {
case SPO:
return sixIndices.SPO.prefixSearch(new TripleKey(key,
CollationOrder.SPO),
new TripleKey(keyMinimum,
CollationOrder.SPO),
new TripleKey(keyMaximum,
CollationOrder.SPO));
case SOP:
return sixIndices.SOP.prefixSearch(new TripleKey(key,
CollationOrder.SOP),
new TripleKey(keyMinimum,
CollationOrder.SOP),
new TripleKey(keyMaximum,
CollationOrder.SOP));
case PSO:
return sixIndices.PSO.prefixSearch(new TripleKey(key,
CollationOrder.PSO),
new TripleKey(keyMinimum,
CollationOrder.PSO),
new TripleKey(keyMaximum,
CollationOrder.PSO));
case POS:
return sixIndices.POS.prefixSearch(new TripleKey(key,
CollationOrder.POS),
new TripleKey(keyMinimum,
CollationOrder.POS),
new TripleKey(keyMaximum,
CollationOrder.POS));
case OSP:
return sixIndices.OSP.prefixSearch(new TripleKey(key,
CollationOrder.OSP),
new TripleKey(keyMinimum,
CollationOrder.OSP),
new TripleKey(keyMaximum,
CollationOrder.OSP));
default:
case OPS:
return sixIndices.OPS.prefixSearch(new TripleKey(key,
CollationOrder.OPS),
new TripleKey(keyMinimum,
CollationOrder.OPS),
new TripleKey(keyMaximum,
CollationOrder.OPS));
}
}
}
}