package com.taobao.tddl.optimizer.parse.hint; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; public class DirectlyRouteCondition extends ExtraCmdRouteCondition implements RouteCondition { protected String dbId; // 目标库的id protected Set<String> tables = new HashSet<String>(2); // 目标表的id public Set<String> getTables() { return tables; } public void setTables(Set<String> tables) { this.tables = tables; } public void addTable(String table) { tables.add(table); } public String getDbId() { return dbId; } public void setDBId(String dbId) { this.dbId = dbId; } /** * @return 两级的MAP , 顺序为:db index key , original table , targetTable */ public Map<String, List<Map<String, String>>> getShardTableMap() { List<Map<String/* original table */, String/* targetTable */>> tableList = new ArrayList<Map<String, String>>(1); for (String targetTable : tables) { Map<String/* original table */, String/* target table */> table = new HashMap<String, String>(tables.size()); table.put(virtualTableName, targetTable); if (!table.isEmpty()) { tableList.add(table); } } Map<String/* key */, List<Map<String/* original table */, String/* targetTable */>>> shardTableMap = new HashMap<String, List<Map<String, String>>>(2); shardTableMap.put(dbId, tableList); return shardTableMap; } }