resolveEntityAlias method

String resolveEntityAlias(
  1. String entityName
)

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);
}