public static TableName valueOf()

in adb3client/src/main/java/com/alibaba/cloud/analyticdb/adb3client/model/TableName.java [140:176]


	public static TableName valueOf(String name) throws InvalidIdentifierException {
		TableName tableName = tableCache2.get(name);
		if (tableName == null) {
			synchronized (LOCK) {
				tableName = tableCache2.get(name);
				if (tableName == null) {
					List<String> schemaAndTableName = parseMultiIdentifier(name);
					String parsedSchemaName;
					String parsedTableName;
					if (schemaAndTableName.size() == 1) {
						parsedSchemaName = "";
						parsedTableName = schemaAndTableName.get(0);
					} else if (schemaAndTableName.size() == 2) {
						parsedSchemaName = schemaAndTableName.get(0);
						parsedTableName = schemaAndTableName.get(1);
					} else {
						throw new InvalidIdentifierException(name);
					}
					StringBuilder sb = new StringBuilder();
					if (parsedSchemaName != null && !parsedSchemaName.isEmpty()) {
						sb.append("`").append(parsedSchemaName).append("`.");
					}
					sb.append("`").append(parsedTableName).append("`");
					String parsedFullName = sb.toString();
					Map<String, TableName> temp = new HashMap<>(tableCache2);
					tableName = tableCache2.get(parsedFullName);
					if (tableName == null) {
						tableName = new TableName(parsedSchemaName, parsedTableName, parsedFullName);
						temp.put(parsedFullName, tableName);
					}
					temp.put(name, tableName);
					tableCache2 = temp;
				}
			}
		}
		return tableName;
	}