static Cl nuLike findConceptsWhereCI(Class c, O... params) {
ret findConceptsWhereCI(db_mainConcepts(), c, params);
}
static L findConceptsWhereCI(S c, O... params) {
ret findConceptsWhereCI(db_mainConcepts(), c, params);
}
static Cl findConceptsWhereCI(Concepts concepts, Class c, O... params) {
Cl l = findConceptsWhereCI_noParent(concepts, c, params);
if (concepts.parent == null) ret l;
ret concatCollections_conservative(l, findConceptsWhereCI(concepts.parent, c, params));
}
static Cl findConceptsWhereCI_noParent(Concepts concepts, Class c, O... params) {
params = expandParams(c, params);
// indexed
if (concepts.ciFieldIndices != null)
for (int i = 0; i < l(params); i += 2) {
IFieldIndex index = concepts.getCIFieldIndex(c, (S) params[i]);
if (index != null) {
Cl rawList = index.getAll(params[i+1]);
params = dropEntryFromParams(params, i);
if (params == null) ret rawList;
new L l;
for (A x : rawList)
if (checkConceptFieldsIC(x, params)) l.add(x);
ret l;
}
}
// table scan
ret filterConceptsIC(concepts.list(c), params);
}
static L findConceptsWhereCI(Concepts concepts, S c, O... params) {
ret filterConceptsIC(concepts.list(c), params);
}