/** * Alipay.com Inc. * Copyright (c) 2004-2013 All Rights Reserved. */ package com.alipay.zdal.client.controller; import java.util.List; import java.util.Map; import java.util.Set; import com.alipay.zdal.common.DBType; import com.alipay.zdal.common.SqlType; import com.alipay.zdal.common.exception.checked.ZdalCheckedExcption; import com.alipay.zdal.common.sqljep.function.Comparative; public interface RuleController { /** * ����sql��ȡ�ֿ�ֱ���Ϣ������������ruleUrl�Ժ������ȷʹ�� * @param sql * @param args * @return * @throws ZdalCheckedExcption */ public abstract TargetDBMeta getDBAndTables(String sql, List<Object> args) throws ZdalCheckedExcption; public TargetDBMeta getDBAndTables(String sql, List<Object> args, boolean isMysqlSQL) throws ZdalCheckedExcption; public DBType getDBType(); // public abstract List<Integer> getSplitDbArgsPositions(String sql, // boolean isPK); /** * ֱ��ָ���ֿ�ֱ��еķ�ʽ���߹������� * @param virtualTableName * @param map * @param sqlType * @return * @throws ZdalCheckedExcption */ public abstract TargetDBMeta getTargetDB(String virtualTableName, Map<String, Comparative> map, SqlType sqlType) throws ZdalCheckedExcption; /** * ֱ��ָ���ֿ�ֱ� * @param virtualTableName * @param ruleID * @param tables * @param sqlType * @return * @throws ZdalCheckedExcption */ public TargetDBMeta getTargetDB(String virtualTableName, String ruleID, Set<String> tables, SqlType sqlType) throws ZdalCheckedExcption; public abstract String getGeneratorUrl(); public abstract void setGeneratorUrl(String generatorUrl); public abstract String getRuleUrl(); public abstract void setRuleUrl(String ruleUrl); }