【Java开源代码栏目提醒】:网学会员--在 Java开源代码编辑为广大网友搜集整理了:BaseMethodTranslator.java绩等信息,祝愿广大网友取得需要的信息,参考学习。
package com.cownew.CowNewSQL.dialect.method;
import java.util.List;
import com.cownew.CowNewSQL.IMethodTranslator;
import com.cownew.CowNewSQL.ISQLTranslator;
import com.cownew.CowNewSQL.common.TranslateException;
import com.cownew.SQLParser.ast.node.expr.SqlExprAST;
import com.cownew.SQLParser.ast.node.expr.SqlMethodExprAST;
public abstract class BaseMethodTranslator implements IMethodTranslator
{
private ISQLTranslator sqlTranslator;
public BaseMethodTranslator(ISQLTranslator sqlTranslator)
{
super();
this.sqlTranslator = sqlTranslator;
}
public ISQLTranslator getSqlTranslator()
{
return sqlTranslator;
}
protected void checkParamCount(SqlMethodExprAST exprAST,int expectedCount)
throws TranslateException
{
if(exprAST.getParameters().size()!=expectedCount)
{
throw new TranslateException("count of parameter must be"+expectedCount);
}
}
protected String translateDefault(SqlMethodExprAST exprAST) throws TranslateException
{
return translateDefault(exprAST.getParameters(),exprAST.getMethodName());
}
protected String translateDefault(List<SqlExprAST> paramList,String methodName) throws TranslateException
{
ISQLTranslator translator = getSqlTranslator();
StringBuffer sb = new StringBuffer();
sb.append(" ").append(methodName).append("(");
for (int i = 0, n = paramList.size(); i < n; i++)
{
if (i > 0)
{
sb.append(",");
}
sb.append(translator.translateExpr(paramList.get(i)));
}
sb.append(") ");
return sb.toString();
}
protected final String translateExpr(SqlExprAST exprAST) throws TranslateException
{
return getSqlTranslator().translateExpr(exprAST);
}
public String translate(SqlMethodExprAST exprAST) throws TranslateException
{
String supName = exprAST.getMethodName().toUpperCase();
if(supName.equals("ABS"))
{
return translateABS(exprAST);
}
else if(supName.equals("ACOS"))
{
return translateACOS(exprAST);
}
else if(supName.equals("ASIN"))
{
return translateASIN(exprAST);
}
else if(supName.equals("ATAN"))
{
return translateATAN(exprAST);
}
else if(supName.equals("ATN2")||supName.equals("ATAN2"))
{
return translateATN2(exprAST);
}
else if(supName.equals("CEILING"))
{
return translateCEILING(exprAST);
}
else if(supName.equals("COS"))
{
return translateCOS(exprAST);
}
else if(supName.equals("COS"))
{
return translateCOT(exprAST);
}
else if(supName.equals("DEGREE")||supName.equals("DEGREES"))
{
return translateDEGREE(exprAST);
}
else if(supName.equals("EXP"))
{
return translateEXP(exprAST);
}
else if(supName.equals("FLOOR"))
{
return translateFLOOR(exprAST);
}
else if(supName.equals("MOD"))
{
return translateMOD(exprAST);
}
else if(supName.equals("LOG"))
{
return translateLOG(exprAST);
}
else if(supName.equals("LOG10"))
{
return translateLOG10(exprAST);
}
else if(supName.equals("PI"))
{
return translatePI(exprAST);
}
else if(supName.equals("POWER")||supName.equals("POW"))
{
return translatePOWER(exprAST);
}
else if(supName.equals("RADIANS"))
{
return translateRADIANS(exprAST);
}
else if(supName.equals("RAND"))
{
return translateRAND(exprAST);
}
else if(supName.equals("ROUND"))
{
return translateROUND(exprAST);
}
else if(supName.equals("SIGN"))
{
return translateSIGN(exprAST);
}
else if(supName.equals("SIN"))
{
return translateSIN(exprAST);
}
else if(supName.equals("SQRT"))
{
return translateSQRT(exprAST);
}
else if(supName.equals("CONVERT"))
{
return translateCONVERT(exprAST);
}
else if(supName.equals("NUBER"))
{
return translateNUBER(exprAST);
}
else if(supName.equals("BLOB"))
{
return translateBLOB(exprAST);
}
else if(supName.equals("CLOB"))
{
return translateCLOB(exprAST);
}
else if(supName.equals("NCLOB"))
{
return translateNCLOB(exprAST);
}
else if(supName.equals("CURDATE"))
{
return translateCURDATE(exprAST);
}
else if(supName.equals("CURTIME"))
{
return translateCURTIME(exprAST);
}
else if(supName.equals("DATEADD"))
{
return translateDATEADD(exprAST);
}
else if(supName.equals("DATEDIFF"))
{
return translateDATEDIFF(exprAST);
}
else if(supName.equals("DAYNAME"))
{
return translateDAYNAME(exprAST);
}
else if(supName.equals("DATENAME"))
{
return translateDATENAME(exprAST);
}
else if(supName.equals("DAYOFMONTH"))
{
return translateDAYOFMONTH(exprAST);
}
else if(supName.equals("DAYOFWEEK"))
{
return translateDAYOFWEEK(exprAST);
}
else if(supName.equals("DAYOFYEAR"))
{
return translateDAYOFYEAR(exprAST);
}
else if(supName.equals("HOUR"))
{
return translateHOUR(exprAST);
}
else if(supName.equals("MINUTE"))
{
return translateMINUTE(exprAST);
}
else if(supName.equals("MONTH"))
{
return translateMONTH(exprAST);
}
else if(supName.equals("MONTHNAME"))
{
return translateMONTHNAME(exprAST);
}
else if(supName.equals("NOW")||supName.equals("GETDATE"))
{
return translateNOW(exprAST);
}
else if(supName.equals("QUARTER"))
{
return translateQUARTER(exprAST);
}
else if(supName.equals("SECOND"))
{
return translateSECOND(exprAST);
}
else if(supName.equals("WEEK"))
{
return translateWEEK(exprAST);
}
else if(supName.equals("YEAR"))
{
return translateYEAR(exprAST);
}
else if(supName.equals("TO_DATE"))
{
return translateTO_DATE(exprAST);
}
else if(supName.equals("MONTHS_BETWEEN"))
{
return translateMONTHS_BETWEEN(exprAST);
}
else if(supName.equals("DAYS_BETWEEN"))
{
return translateDAYS_BETWEEN(exprAST);
}
else if(supName.equals("ADD_MONTHS"))
{
return translateADD_MONTHS(exprAST);
}
else if(supName.equals("ADD_YEARS"))
{
return translateADD_YEARS(exprAST);
}
else if(supName.equals("ADD_DAYS"))
{
return translateADD_DAYS(exprAST);
}
else if(supName.equals("ADD_HOURS"))
{
return translateADD_HOURS(exprAST);
}
else if(supName.equals("ADD_MINUTES"))
{
return translateADD_MINUTES(exprAST);
}
else if(supName.equals("ADD_SECONDS"))
{
return translateADD_SECONDS(exprAST);
}
else if(supName.equals("ASCII"))
{
return translateASCII(exprAST);
}
else if(supName.equals("CHAR")||supName.equals("CHR"))
{
上一篇:
BaseMessage.java
下一篇:
哈弗F7 VS名爵HS,谁更懂得年轻人的心?