getIndexDefs method
Implementation
TIndexDefs getIndexDefs(TIndexDefs indexDefs, TIndexOptions indexTypes) {
indexDefs.updateDefs();
final result = TIndexDefs(this);
result.assign(indexDefs);
var i = 0;
while (i < result.count) {
final opts = result[i].options;
final intersection = indexTypes.intersection(opts);
if (!(indexTypes.isEmpty && opts.isEmpty) && intersection.isEmpty) {
result.delete(i);
i--;
} else {
// ExtractStrings([';'],[' '],...): splits on ; and trims whitespace
final indexFields = result[i]
.fields
.split(";")
.map((s) => s.trim())
.where((s) => s.isNotEmpty)
.toList();
for (final f in indexFields) {
if (findField(f) == null) {
result.delete(i);
i--;
break;
}
}
}
i++;
}
return result;
}