/** * Alipay.com Inc. * Copyright (c) 2004-2012 All Rights Reserved. */ package com.alipay.zdal.parser.result; import com.alipay.zdal.common.DBType; import com.alipay.zdal.parser.exceptions.SqlParserException; import com.alipay.zdal.parser.visitor.ZdalDB2SchemaStatVisitor; import com.alipay.zdal.parser.visitor.ZdalMySqlSchemaStatVisitor; import com.alipay.zdal.parser.visitor.ZdalOracleSchemaStatVisitor; import com.alipay.zdal.parser.visitor.ZdalSchemaStatVisitor; /** * ����sqlparserresult������. * @author xiaoqing.zhouxq * @version $Id: SqlParserResultFactory.java, v 0.1 2012-5-21 ����03:18:34 xiaoqing.zhouxq Exp $ */ public class SqlParserResultFactory { public static SqlParserResult createSqlParserResult(ZdalSchemaStatVisitor visitor, DBType dbType) { if (dbType.isMysql()) { if (!(visitor instanceof ZdalMySqlSchemaStatVisitor)) { throw new SqlParserException( "ERROR ## the visitor is not ZdalMySqlSchemaStatVisitor"); } return new MysqlSqlParserResult(visitor); } else if (dbType.isOracle()) { if (!(visitor instanceof ZdalOracleSchemaStatVisitor)) { throw new SqlParserException( "ERROR ## the visitor is not ZdalOracleSchemaStatVisitor"); } return new OracleSqlParserResult(visitor); } else if (dbType.isDB2()) { if (!(visitor instanceof ZdalDB2SchemaStatVisitor)) { throw new SqlParserException("ERROR ## the visitor is not ZdalDB2SchemaStatVisitor"); } return new DB2SqlParserResult(visitor); } else { throw new IllegalArgumentException("ERROR ## dbType = " + dbType + " is not support"); } } }