package com.github.sevntu.checkstyle.checks.coding; public class InputAvoidConstantAsFirstOperandInConditionCheck { private Object classField; private boolean someFunction() { return false; } private Object returnNull() { return null; } public void allTypesCheck() { Object someVariable = new Object(); final int constant = 5; int testInt = 10; float testConst = 5.0f; boolean testBool = true; if ((null) == someVariable) {} //!! if (5 == testInt) {} //!! if (constant == testInt) {} if (5.0d == (Double) someVariable) {} //!! if (5.0f == (Float) someVariable) {} //!! if (5l == (Long) someVariable) {} //!! if (true == testBool) {} //!! if (false == testBool) {} //!! } /** * Basic tests. */ public void ifCheck() { Object someVariable = new Object(); Object nullVariable = null; if (null == null) {} // Compare variable if (someVariable == null) {} if (someVariable != null) {} if (null == someVariable) {} //!! if (null != someVariable) {} //!! // Compare function if (returnNull() == null) {} if (returnNull() != null) {} if (null == returnNull()) {} //!! if (null != returnNull()) {} //!! // Compare class field if (this.classField == null) {} if (classField != null) {} if (null == this.classField) {} //!! if (null != classField) {} //!! // Compare with null-variable if (someVariable == nullVariable) {} if (nullVariable == someVariable) {} // Short IF tag someVariable = (nullVariable == null) ? true : false; someVariable = (null == nullVariable) ? true : false; //!! // Test more than one condition if (someFunction() && (someVariable == null)) {} if (someFunction() && null == someVariable) {} //!! if (someFunction() && (null == someVariable)) {} //!! if ((null == someVariable) && someFunction()) {} //!! if (someFunction() || (null == someVariable) && someFunction()) {} //!! if (someVariable == null && null == someVariable) {} //!! if (null == someVariable && someVariable == null) {} //!! if (null == someVariable && null == someVariable) {} //!! twice // Test for different code style // (check line and position number in error message) if (( null == someVariable) &&null==someVariable || ( null == someVariable)) {} //!! } /** * Almost all tests are checked in ifCheck() function, * so there are only checked some tests */ public void whileCyclesCheck() { Object someVariable = new Object(); while (someVariable == null) {} while (null == someVariable) {} //!! do { // Something... } while (null == someVariable); //!! } /** * Almost all tests are checked in ifCheck() function, * so there are only checked some tests */ public void forCyclesCheck() { Object someVariable = new Object(); for (;null==someVariable;) {} //!! for (someVariable = null; null == someVariable; someVariable = null) {} //!! } }