@rolfl
if (value != null && !values.contains(value)) values.add(value.getDigit());
becomes
if (value != null && !values.contains(value))
values.add(value.getDigit());
...
if (value != null && !values.contains(value)) values.add(value.getDigit());
becomes
if (value != null && !values.contains(value))
values.add(value.getDigit());
...