static Cl findConceptsWhere(Class c, O... params) {
ret findConceptsWhere(db_mainConcepts(), c, params);
}
static Cl findConceptsWhere(S c, O... params) {
ret findConceptsWhere(db_mainConcepts(), c, params);
}
static Cl findConceptsWhere(Concepts concepts, Class c, O... params) {
ping();
params = expandParams(c, params);
// indexed
if (concepts.fieldIndices != null)
for (int i = 0; i < l(params); i += 2) {
IFieldIndex index = concepts.getFieldIndex(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 (checkConceptFields(x, params)) l.add(x);
ret l;
}
}
// table scan
ret filterConcepts(concepts.list(c), params);
}
static Cl findConceptsWhere(Concepts concepts, S c, O... params) {
ret filterConcepts(concepts.list(c), params);
}