sqlancer.mysql.MySQLVisitor Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of sqlancer Show documentation
Show all versions of sqlancer Show documentation
SQLancer finds logic bugs in Database Management Systems through automatic testing
package sqlancer.mysql;
import sqlancer.mysql.ast.MySQLBetweenOperation;
import sqlancer.mysql.ast.MySQLBinaryComparisonOperation;
import sqlancer.mysql.ast.MySQLBinaryLogicalOperation;
import sqlancer.mysql.ast.MySQLBinaryOperation;
import sqlancer.mysql.ast.MySQLCastOperation;
import sqlancer.mysql.ast.MySQLCollate;
import sqlancer.mysql.ast.MySQLColumnReference;
import sqlancer.mysql.ast.MySQLComputableFunction;
import sqlancer.mysql.ast.MySQLConstant;
import sqlancer.mysql.ast.MySQLExists;
import sqlancer.mysql.ast.MySQLExpression;
import sqlancer.mysql.ast.MySQLInOperation;
import sqlancer.mysql.ast.MySQLOrderByTerm;
import sqlancer.mysql.ast.MySQLSelect;
import sqlancer.mysql.ast.MySQLStringExpression;
import sqlancer.mysql.ast.MySQLTableReference;
import sqlancer.mysql.ast.MySQLUnaryPostfixOperation;
public interface MySQLVisitor {
void visit(MySQLTableReference ref);
void visit(MySQLConstant constant);
void visit(MySQLColumnReference column);
void visit(MySQLUnaryPostfixOperation column);
void visit(MySQLComputableFunction f);
void visit(MySQLBinaryLogicalOperation op);
void visit(MySQLSelect select);
void visit(MySQLBinaryComparisonOperation op);
void visit(MySQLCastOperation op);
void visit(MySQLInOperation op);
void visit(MySQLBinaryOperation op);
void visit(MySQLOrderByTerm op);
void visit(MySQLExists op);
void visit(MySQLStringExpression op);
void visit(MySQLBetweenOperation op);
void visit(MySQLCollate collate);
default void visit(MySQLExpression expr) {
if (expr instanceof MySQLConstant) {
visit((MySQLConstant) expr);
} else if (expr instanceof MySQLColumnReference) {
visit((MySQLColumnReference) expr);
} else if (expr instanceof MySQLUnaryPostfixOperation) {
visit((MySQLUnaryPostfixOperation) expr);
} else if (expr instanceof MySQLComputableFunction) {
visit((MySQLComputableFunction) expr);
} else if (expr instanceof MySQLBinaryLogicalOperation) {
visit((MySQLBinaryLogicalOperation) expr);
} else if (expr instanceof MySQLSelect) {
visit((MySQLSelect) expr);
} else if (expr instanceof MySQLBinaryComparisonOperation) {
visit((MySQLBinaryComparisonOperation) expr);
} else if (expr instanceof MySQLCastOperation) {
visit((MySQLCastOperation) expr);
} else if (expr instanceof MySQLInOperation) {
visit((MySQLInOperation) expr);
} else if (expr instanceof MySQLBinaryOperation) {
visit((MySQLBinaryOperation) expr);
} else if (expr instanceof MySQLOrderByTerm) {
visit((MySQLOrderByTerm) expr);
} else if (expr instanceof MySQLExists) {
visit((MySQLExists) expr);
} else if (expr instanceof MySQLStringExpression) {
visit((MySQLStringExpression) expr);
} else if (expr instanceof MySQLBetweenOperation) {
visit((MySQLBetweenOperation) expr);
} else if (expr instanceof MySQLTableReference) {
visit((MySQLTableReference) expr);
} else if (expr instanceof MySQLCollate) {
visit((MySQLCollate) expr);
} else {
throw new AssertionError(expr);
}
}
static String asString(MySQLExpression expr) {
MySQLToStringVisitor visitor = new MySQLToStringVisitor();
visitor.visit(expr);
return visitor.get();
}
static String asExpectedValues(MySQLExpression expr) {
MySQLExpectedValueVisitor visitor = new MySQLExpectedValueVisitor();
visitor.visit(expr);
return visitor.get();
}
}