package com.puppycrawl.tools.checkstyle.checks.coding.finallocalvariable;
public class InputFinalLocalVariableMultipleAndNestedConditions {
// False positive
// https://github.com/checkstyle/checkstyle/issues/3186
void method() {
for (int i = 0; i < 2; i++) {
final Object converter = new Object();
final String type = getType();
Object value;
if ("s1".equals(type)) {
if (getCondition(1)) {
value = getValue(1);
}
else {
continue;
}
}
else if ("s2".equals(type)) {
if (getCondition(2)) {
value = getValue(2);
}
else {
continue;
}
}
else {
continue;
}
if (converter != null) {
value = /* converter. */getValue(1, type, value);
}
}
}
// False positive
// https://github.com/checkstyle/checkstyle/issues/3186
void method2() {
for (int i = 0; i < 2; i++) {
final Object converter = new Object();
final Object element = new Object();
String name;
if (getCondition(1)) {
name = "1";
} else if (getCondition(2)) {
name = "2";
} else {
continue;
}
if (converter != null) {
name = /* converter. */getName(element, name);
if (name == null)
continue;
}
}
}
public Object getValue(int i) {
return null;
}
public Object getValue(int i, String type, Object value) {
return value;
}
public boolean getCondition(int i) {
return true;
}
public String getType() {
return "s1";
}
private String getName(Object element, String name) {
return "s";
}
}