required = builder.required;
defvalue = builder.defaultValue;
value = builder.value;
- possibleVals = new ArrayList<>(builder.possibleValues);
- displayVals = new ArrayList<>(
- requireNonNullElse(builder.displayValues, possibleVals));
+ if (builder.possibleValues != null)
+ possibleVals = new ArrayList<>(builder.possibleValues);
+ if (builder.displayValues != null)
+ displayVals = new ArrayList<>(builder.displayValues);
+ else
+ displayVals = possibleVals;
+ if (possibleVals == null && displayVals != null)
+ throw new IllegalArgumentException(
+ "cannot use displayValues if possibleValues is null");
+ if (possibleVals != null && possibleVals.size() != displayVals.size())
+ throw new IllegalArgumentException(
+ "displayValues size does not match possibleValues");
fdetails = builder.detailsUrl;
}