private boolean isOptionalConfig(List<ConfigDescriptionParameter> configDescriptions) { if (configDescriptions != null && !configDescriptions.isEmpty()) { boolean required = false; Iterator<ConfigDescriptionParameter> i = configDescriptions.iterator(); while (i.hasNext()) { ConfigDescriptionParameter param = i.next(); required = required || param.isRequired(); } return !required; } return true; }
/** * Utility method for {@link Rule}s configuration validation. * * @param configDescriptions the meta-data for {@link Rule}s configuration, used for validation. * @return {@code true} if all configuration properties are optional or {@code false} if there is at least one * required property. */ private boolean isOptionalConfig(List<ConfigDescriptionParameter> configDescriptions) { if (configDescriptions != null && !configDescriptions.isEmpty()) { boolean required = false; Iterator<ConfigDescriptionParameter> i = configDescriptions.iterator(); while (i.hasNext()) { ConfigDescriptionParameter param = i.next(); required = required || param.isRequired(); } return !required; } return true; }
private List<String> getRequiredParameters(ConfigDescription description) { List<String> requiredParameters = new ArrayList<>(); for (ConfigDescriptionParameter param : description.getParameters()) { if (param.isRequired()) { requiredParameters.add(param.getName()); } } return requiredParameters; }
private void processValue(Object configValue, ConfigDescriptionParameter configParameter) { if (configValue != null) { checkType(configValue, configParameter); return; } if (configParameter.isRequired()) { throw new IllegalArgumentException( "Required configuration property missing: \"" + configParameter.getName() + "\"!"); } }
@Override public ConfigValidationMessage validate(ConfigDescriptionParameter param, Object value) { if (param.isRequired() && value == null) { MessageKey messageKey = MessageKey.PARAMETER_REQUIRED; return new ConfigValidationMessage(param.getName(), messageKey.defaultMessage, messageKey.key); } return null; }
private void validateConfiguration(String uid, List<ConfigDescriptionParameter> configDescriptions, Map<String, Object> configurations) { if (configurations == null || configurations.isEmpty()) { if (isOptionalConfig(configDescriptions)) { return; } else { for (ConfigDescriptionParameter configParameter : configDescriptions) { if (configParameter.isRequired()) { logger.error("Missing required configuration property '{}' for rule with UID '{}'!", configParameter.getName(), uid); } } throw new IllegalArgumentException("Missing required configuration properties!"); } } else { for (ConfigDescriptionParameter configParameter : configDescriptions) { String configParameterName = configParameter.getName(); processValue(configurations.remove(configParameterName), configParameter); } for (String name : configurations.keySet()) { logger.error("Extra configuration property '{}' for rule with UID '{}'!", name, uid); } if (!configurations.isEmpty()) { throw new IllegalArgumentException("Extra configuration properties!"); } } }
String msg = " '%s';"; for (ConfigDescriptionParameter configParameter : configDescriptions) { if (configParameter.isRequired()) { String name = configParameter.getName(); statusDescription.append(String.format(msg, name));
+ configParameter.getName() + "\". Expected is " + type.toString() + "!"); } else if (configParameter.isRequired()) { throw new IllegalArgumentException( "Required configuration property missing: \"" + configParameter.getName() + "\"!");
/** * Maps configuration description parameters into DTO objects. * * @param parameters the configuration description parameters (not null) * @return the parameter DTO objects (not null) */ public static List<ConfigDescriptionParameterDTO> mapParameters(List<ConfigDescriptionParameter> parameters) { List<ConfigDescriptionParameterDTO> configDescriptionParameterBeans = new ArrayList<>(parameters.size()); for (ConfigDescriptionParameter configDescriptionParameter : parameters) { ConfigDescriptionParameterDTO configDescriptionParameterBean = new ConfigDescriptionParameterDTO( configDescriptionParameter.getName(), configDescriptionParameter.getType(), configDescriptionParameter.getMinimum(), configDescriptionParameter.getMaximum(), configDescriptionParameter.getStepSize(), configDescriptionParameter.getPattern(), configDescriptionParameter.isRequired(), configDescriptionParameter.isReadOnly(), configDescriptionParameter.isMultiple(), configDescriptionParameter.getContext(), configDescriptionParameter.getDefault(), configDescriptionParameter.getLabel(), configDescriptionParameter.getDescription(), mapOptions(configDescriptionParameter.getOptions()), mapFilterCriteria(configDescriptionParameter.getFilterCriteria()), configDescriptionParameter.getGroupName(), configDescriptionParameter.isAdvanced(), configDescriptionParameter.getLimitToOptions(), configDescriptionParameter.getMultipleLimit(), configDescriptionParameter.getUnit(), configDescriptionParameter.getUnitLabel(), configDescriptionParameter.isVerifyable()); configDescriptionParameterBeans.add(configDescriptionParameterBean); } return configDescriptionParameterBeans; }
parameter.getMaximum(), parameter.getStepSize(), parameter.getPattern(), parameter.isRequired(), parameter.isReadOnly(), parameter.isMultiple(), parameter.getContext(), parameter.getDefault(), parameter.getLabel(), parameter.getDescription(), options, parameter.getFilterCriteria(),
.withMinimum(parameter.getMinimum()).withMaximum(parameter.getMaximum()) .withStepSize(parameter.getStepSize()).withPattern(lpattern) .withRequired(parameter.isRequired()).withMultiple(parameter.isMultiple()) .withReadOnly(parameter.isReadOnly()).withContext(parameter.getContext()) .withDefault(parameter.getDefault()).withLabel(llabel).withDescription(ldescription)
.withMinimum(parameter.getMinimum()).withMaximum(parameter.getMaximum()) .withStepSize(parameter.getStepSize()).withPattern(lpattern) .withRequired(parameter.isRequired()).withMultiple(parameter.isMultiple()) .withReadOnly(parameter.isReadOnly()).withContext(parameter.getContext()) .withDefault(parameter.getDefault()).withLabel(llabel).withDescription(ldescription)
.create(parameterName, parameter.getType()).withMinimum(parameter.getMinimum()) .withMaximum(parameter.getMaximum()).withStepSize(parameter.getStepSize()).withPattern(pattern) .withRequired(parameter.isRequired()).withReadOnly(parameter.isReadOnly()) .withMultiple(parameter.isMultiple()).withContext(parameter.getContext()) .withDefault(parameter.getDefault()).withLabel(label).withDescription(description).withOptions(options)