getTablesSorted static method

Map<String, List<String>> getTablesSorted(
  1. List<TableName> allTableNames,
  2. bool doSort
)

Sorts all supplied table names by type.

Supported types are:

  • {@value ISpatialTableNames#INTERNALDATA}
  • {@value ISpatialTableNames#SYSTEM}

@param allTableNames list of all tables. @param doSort if true, table names are alphabetically sorted. @return the {@link LinkedHashMap}.

Implementation

static Map<String, List<String>> getTablesSorted(
    List<TableName> allTableNames, bool doSort) {
  Map<String, List<String>> tablesMap = {};
  tablesMap[USERDATA] = [];
  tablesMap[SYSTEM] = [];

  for (TableName name in allTableNames) {
    var tableName = name.name.toLowerCase();
    if (tableName.startsWith(startsWithIndexTables) ||
        metadataTables.contains(tableName) ||
        internalDataTables.contains(tableName)) {
      List<String> list = tablesMap[SYSTEM]!;
      list.add(tableName);
      continue;
    }
    List<String> list = tablesMap[USERDATA]!;
    list.add(tableName);
  }

  if (doSort) {
    for (List<String> values in tablesMap.values) {
      values.sort();
    }
  }

  return tablesMap;
}