//package net.jplugin.core.das.route.impl.sqlhandler;
//
//import net.jplugin.common.kits.StringKit;
//import net.jplugin.core.das.route.api.TablesplitException;
//import net.jplugin.core.das.route.impl.parser.SqlWordsWalker;
//
//public class InsertHandler extends AbstractCommandHandler{
//
//	@Override
//	String walkTableName(SqlWordsWalker walker) {
//		if (!walker.nextUntilIgnoreCase("INTO")) 
//			throw new TablesplitException("Can't find INTO word in insert sql."+walker.sql);
//		if (!walker.next())
//			throw new TablesplitException("Can't find TableName in insert sql."+walker.sql);
//		if (StringKit.isNull(walker.word)) 
//			throw new TablesplitException("Found null TableName in insert sql."+walker.sql);
//		String tableName = walker.word;
//		return tableName;
//	}
//
//	@Override
//	KeyResult walkToGetKeyColumnInfo(SqlWordsWalker walker, String tableName,String keyField) {
//		//碰到 ) 就停止
//		if (!walker.nextUntil("(")) throw new TablesplitException("Can't found fields segment in sql."+walker.sql); 
//		
//		boolean success = false;
//		int index=0;
//		while(walker.next()){
//			if (")".equals(walker.word))
//				break;
//			if (",".equals(walker.word))
//				index++;
//			if (keyField.equalsIgnoreCase(walker.word)){
//				success = true;
//				break;
//			}
//		}
//		if (!success)
//			throw new TablesplitException("Can't find the key field in sql."+walker.sql); 
//		int keyFieldIndex = index;
//		
//		if (!walker.nextUntilIgnoreCase("values"))
//			throw new TablesplitException("Can't find values sql."+walker.sql); 
//		if (!walker.nextUntilIgnoreCase("("))
//			throw new TablesplitException("Can't find '(' after values. sql "+walker.sql); 
//		
//		index = 0;
//		int paramIndex = 0;
//		while (walker.next()){
//			if (index == keyFieldIndex){
//				break;//此时刚好walker到这个field的值了！
//			}
//			if ("?".equals(walker.word)){
//				paramIndex ++;
//			}
//			if (",".equals(walker.word)){
//				index ++;
//			}
//			if ("(".equals(walker.word)){
//				walker.nextUntilMatchingBracket();
//			}
//		}
//		
//		KeyResult result= new KeyResult();
//		if (walker.word.equals("?")){
//			result.isParamedKey = true;//此时 paramIndex表示问号的次序，0表示第一个
//			result.keyParamIndex = paramIndex;
//		}else{
//			result.isParamedKey = false;
//			if (!(",".equals(walker.getNextWord())))
//				throw new TablesplitException("key value value only support a Const value or a Parameter."+walker.sql); 
//			result.keyConstValue = getConstKeyValueFromSql(walker.word);
//		}
//		
//		return result;
//	}
//
//	@Override
//	String getFinalSql(SqlWordsWalker walker, String sourceSql, String finalTableName) {
//		String finalSql = StringKit.repaceFirst(walker.sql,sourceSql,finalTableName);;
//		return finalSql;
//	}
//
//
//}
