resolveEntityAlias method
Implementation
String resolveEntityAlias(String entityName) {
var alias = tableAliases[entityName];
if (alias != null) {
return alias;
}
var allAliases = tableAliases.values.toSet();
if (entityName.isEmpty) {
return _resolveEntityAliasDefault(entityName, allAliases);
}
var entityNameLC = entityName.toLowerCase().trim();
var length = entityNameLC.length;
List<String>? entityNameParts;
for (var sz = 2; sz <= length; ++sz) {
alias = entityNameLC.substring(0, sz);
if (!allAliases.contains(alias) && isValidAlias(alias)) {
tableAliases[entityName] = alias;
return alias;
}
if (sz == 2) {
entityNameParts ??= entityNameLC.split(_regExpTableNameDelimiter);
if (entityNameParts.length > 1) {
for (var partSz = 1; partSz < 3; ++partSz) {
var aliasFromParts = entityNameParts
.map((w) => w.substring(0, math.min(partSz, w.length)))
.join('_');
if (!allAliases.contains(aliasFromParts) &&
isValidAlias(aliasFromParts)) {
alias = aliasFromParts;
tableAliases[entityName] = alias;
return alias;
}
}
}
}
}
var c0 = entityName.substring(0, 1);
alias = _resolveEntityAliasByPrefix(entityName, allAliases, c0, 9);
if (alias != null) return alias;
alias = _resolveEntityAliasByPrefix(entityName, allAliases, 't', 9);
if (alias != null) return alias;
return _resolveEntityAliasDefault(entityName, allAliases);
}