/
NikolayIvkin
/
sqlancer2
Обзор
Документация
Войти
/
NikolayIvkin
/
sqlancer2
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/sqlancer/mysql/ast/MySQLUnaryPostfixOperation.java
58 строк
1 KB
Manuel Rigger
Consistently format all files
27 май 2020, 17:17
27 май 2020, 17:17
10253fa
Код
Авторство
О чём код?
package sqlancer.mysql.ast; public class MySQLUnaryPostfixOperation implements MySQLExpression { private final MySQLExpression expression; private final UnaryPostfixOperator operator; private boolean negate; public enum UnaryPostfixOperator { IS_NULL, IS_TRUE, IS_FALSE; } public MySQLUnaryPostfixOperation(MySQLExpression expr, UnaryPostfixOperator op, boolean negate) { this.expression = expr; this.operator = op; this.setNegate(negate); } public MySQLExpression getExpression() { return expression; } public UnaryPostfixOperator getOperator() { return operator; } public boolean isNegated() { return negate; } public void setNegate(boolean negate) { this.negate = negate; } @Override public MySQLConstant getExpectedValue() { boolean val; MySQLConstant expectedValue = expression.getExpectedValue(); switch (operator) { case IS_NULL: val = expectedValue.isNull(); break; case IS_FALSE: val = !expectedValue.isNull() && !expectedValue.asBooleanNotNull(); break; case IS_TRUE: val = !expectedValue.isNull() && expectedValue.asBooleanNotNull(); break; default: throw new AssertionError(operator); } if (negate) { val = !val; } return MySQLConstant.createIntConstant(val ? 1 : 0); } }