protected ProvisioningOption(String name) { this.name = name; required = false; persistent = true; defaultValue = null; valueSet = getBooleanValueSet(); }
protected ProvisioningOption(Builder builder) { this.name = builder.name; this.required = builder.required; this.persistent = builder.persistent; this.defaultValue = builder.defaultValue; if(builder.valueSet.isEmpty()) { if(defaultValue == null || getBooleanValueSet().contains(defaultValue)) { this.valueSet = getBooleanValueSet(); } else { valueSet = Collections.emptySet(); } } else { if(defaultValue != null && !builder.valueSet.contains(defaultValue)) { throw new IllegalArgumentException("The default value " + defaultValue + " of provisioning option " + name + " is not in the allowed value set " + builder.valueSet); } this.valueSet = CollectionUtils.unmodifiable(builder.valueSet); } }