improve parser & wall-filter

This commit is contained in:
wenshao
2013-07-30 23:25:56 +08:00
parent 30fcdc8a4e
commit 21c681dd0f
10 changed files with 455 additions and 390 deletions
@@ -23,7 +23,9 @@ import com.alibaba.druid.sql.ast.expr.SQLNCharExpr;
import com.alibaba.druid.sql.ast.expr.SQLNullExpr;
import com.alibaba.druid.sql.ast.expr.SQLNumberExpr;
public class ParameterizedOutputVisitor extends SQLASTOutputVisitor {
public class ParameterizedOutputVisitor extends SQLASTOutputVisitor implements ParameterizedVisitor {
private int replaceCount;
public ParameterizedOutputVisitor() {
this (new StringBuilder());
}
@@ -31,6 +33,14 @@ public class ParameterizedOutputVisitor extends SQLASTOutputVisitor {
public ParameterizedOutputVisitor(Appendable appender){
super(appender);
}
public int getReplaceCount() {
return this.replaceCount;
}
public void incrementReplaceCunt() {
replaceCount++;
}
public boolean visit(SQLInListExpr x) {
return ParameterizedOutputVisitorUtils.visit(this, x);
@@ -44,6 +54,7 @@ public class ParameterizedOutputVisitor extends SQLASTOutputVisitor {
public boolean visit(SQLNullExpr x) {
print('?');
incrementReplaceCunt();
return false;
}
@@ -53,6 +64,7 @@ public class ParameterizedOutputVisitor extends SQLASTOutputVisitor {
}
print('?');
incrementReplaceCunt();
return false;
}
@@ -62,6 +74,7 @@ public class ParameterizedOutputVisitor extends SQLASTOutputVisitor {
}
print('?');
incrementReplaceCunt();
return false;
}
@@ -71,6 +84,7 @@ public class ParameterizedOutputVisitor extends SQLASTOutputVisitor {
}
print('?');
incrementReplaceCunt();
return false;
}
@@ -80,6 +94,7 @@ public class ParameterizedOutputVisitor extends SQLASTOutputVisitor {
}
print('?');
incrementReplaceCunt();
return false;
}
}
@@ -0,0 +1,8 @@
package com.alibaba.druid.sql.visitor;
public interface ParameterizedVisitor extends SQLASTVisitor {
int getReplaceCount();
void incrementReplaceCunt();
}