package io.mycat.route.parser.druid; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; /** * druid parser result * @author wang.dw * */ public class DruidShardingParseInfo { /** * 一个sql中可能有多个WhereUnit(如子查询中的where可能导致多个) */ private List<WhereUnit> whereUnits = new ArrayList<WhereUnit>(); private List<RouteCalculateUnit> routeCalculateUnits = new ArrayList<RouteCalculateUnit>(); /** * (共享属性) */ private String sql = ""; //tables为路由计算共享属性,多组RouteCalculateUnit使用同样的tables private List<String> tables = new ArrayList<String>(); // private RouteCalculateUnit routeCalculateUnit = new RouteCalculateUnit(this); /** * key table alias, value talbe realname; */ private Map<String, String> tableAliasMap = new LinkedHashMap<String, String>(); public Map<String, String> getTableAliasMap() { return tableAliasMap; } public void setTableAliasMap(Map<String, String> tableAliasMap) { this.tableAliasMap = tableAliasMap; } public String getSql() { return sql; } public void setSql(String sql) { this.sql = sql; } public List<String> getTables() { return tables; } public void addTable(String tableName) { this.tables.add(tableName); } public RouteCalculateUnit getRouteCalculateUnit() { return routeCalculateUnits.get(0); } public List<RouteCalculateUnit> getRouteCalculateUnits() { return routeCalculateUnits; } public void setRouteCalculateUnits(List<RouteCalculateUnit> routeCalculateUnits) { this.routeCalculateUnits = routeCalculateUnits; } public void addRouteCalculateUnit(RouteCalculateUnit routeCalculateUnit) { this.routeCalculateUnits.add(routeCalculateUnit); } public void clear() { for(RouteCalculateUnit unit : routeCalculateUnits ) { unit.clear(); } } }