/** * 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; }
@Override public ConfigValidationMessage validate(ConfigDescriptionParameter parameter, Object value) { if (value == null || parameter.getType() != Type.TEXT || parameter.getPattern() == null) { return null; } if (!((String) value).matches(parameter.getPattern())) { MessageKey messageKey = MessageKey.PATTERN_VIOLATED; return new ConfigValidationMessage(parameter.getName(), messageKey.defaultMessage, messageKey.key, String.valueOf(value), parameter.getPattern()); } return null; } }
@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; }
int[] columnWidths = new int[] { COLUMN_CONFIG_PARAMETER, COLUMN_CONFIG_PARAMETER_PROP, COLUMN_CONFIG_PARAMETER_PROP_VALUE }; configParamContent.add(Utils.getColumn(COLUMN_PROPERTY_VALUE, parameter.getName() + " : ")); List<String> configParamProperty = new ArrayList<String>(); configParamProperty.add(""); configParamProperty.add(TYPE); configParamProperty.add(parameter.getType().toString()); configParamContent.add(Utils.getRow(columnWidths, configParamProperty)); if (parameter.getLabel() != null) { configParamProperty.set(1, LABEL); configParamProperty.set(2, parameter.getLabel()); configParamContent.add(Utils.getRow(columnWidths, configParamProperty)); if (parameter.getDescription() != null) { configParamProperty.set(1, DESCRIPTION); configParamProperty.set(2, parameter.getDescription()); configParamContent.add(Utils.getRow(columnWidths, configParamProperty)); if (parameter.getDefault() != null) { configParamProperty.set(1, DEFAULT); configParamProperty.set(2, parameter.getDefault()); configParamContent.add(Utils.getRow(columnWidths, configParamProperty)); if (parameter.getContext() != null) { configParamProperty.set(1, CONTEXT); configParamProperty.set(2, parameter.getContext()); configParamContent.add(Utils.getRow(columnWidths, configParamProperty)); if (parameter.getPattern() != null) {
private void applyDefaultConfiguration(final Configuration configuration, final ChannelType channelType) { if (((this.configDescriptionRegistry != null) && (configuration != null))) { URI _configDescriptionURI = channelType.getConfigDescriptionURI(); boolean _tripleNotEquals = (_configDescriptionURI != null); if (_tripleNotEquals) { final ConfigDescription configDescription = this.configDescriptionRegistry.getConfigDescription(channelType.getConfigDescriptionURI()); if ((configDescription != null)) { final Function1<ConfigDescriptionParameter, Boolean> _function = (ConfigDescriptionParameter it) -> { return Boolean.valueOf(((it.getDefault() != null) && (configuration.get(it.getName()) == null))); }; final Consumer<ConfigDescriptionParameter> _function_1 = (ConfigDescriptionParameter it) -> { final Object value = this.getDefaultValueAsCorrectType(it.getType(), it.getDefault()); if ((value != null)) { configuration.put(it.getName(), value); } }; IterableExtensions.<ConfigDescriptionParameter>filter(configDescription.getParameters(), _function).forEach(_function_1); } } } }
@Override public ConfigValidationMessage validate(ConfigDescriptionParameter parameter, Object value) { if (value == null || parameter.getType() == Type.BOOLEAN) { return null; } // Allow specified options to be outside of the min/max value for (ParameterOption option : parameter.getOptions()) { // Option values are a string, so we can do a simple compare if (option.getValue().equals(value.toString())) { return null; } } TypeIntrospection typeIntrospection = TypeIntrospections.get(parameter.getType()); if (parameter.getMinimum() != null) { BigDecimal min = parameter.getMinimum(); if (typeIntrospection.isMinViolated(value, min)) { return createMinMaxViolationMessage(parameter.getName(), typeIntrospection.getMinViolationMessageKey(), min); } } if (parameter.getMaximum() != null) { BigDecimal max = parameter.getMaximum(); if (typeIntrospection.isMaxViolated(value, max)) { return createMinMaxViolationMessage(parameter.getName(), typeIntrospection.getMaxViolationMessageKey(), max); } } return null; }
Type type = configParameter.getType(); if (configParameter.isMultiple()) { if (configValue instanceof List) { @SuppressWarnings("rawtypes") if (!checkType(type, value)) { throw new IllegalArgumentException("Unexpected value for configuration property \"" + configParameter.getName() + "\". Expected type: " + type); "Unexpected value for configuration property \"" + configParameter.getName() + "\". Expected is Array with type for elements : " + type.toString() + "!"); + configParameter.getName() + "\". Expected is " + type.toString() + "!"); } else if (configParameter.isRequired()) { throw new IllegalArgumentException( "Required configuration property missing: \"" + configParameter.getName() + "\"!");
private ConfigDescriptionParameter getConfigDescriptionParam(List<ConfigDescriptionParameter> configDescParams, String paramName) { for (ConfigDescriptionParameter configDescriptionParameter : configDescParams) { if (configDescriptionParameter.getName().equals(paramName)) { return configDescriptionParameter; } } return null; }
private void checkType(Object configValue, ConfigDescriptionParameter configParameter) { Type type = configParameter.getType(); if (configParameter.isMultiple()) { if (configValue instanceof List) { List lConfigValues = (List) configValue; for (Object value : lConfigValues) { if (!checkType(type, value)) { throw new IllegalArgumentException("Unexpected value for configuration property \"" + configParameter.getName() + "\". Expected type: " + type); } } } throw new IllegalArgumentException( "Unexpected value for configuration property \"" + configParameter.getName() + "\". Expected is Array with type for elements : " + type.toString() + "!"); } else { if (!checkType(type, configValue)) { throw new IllegalArgumentException("Unexpected value for configuration property \"" + configParameter.getName() + "\". Expected is " + type.toString() + "!"); } } }
@Override public ConfigValidationMessage validate(ConfigDescriptionParameter parameter, Object value) { if (value == null) { return null; } TypeIntrospection typeIntrospection = TypeIntrospections.get(parameter.getType()); if (!typeIntrospection.isAssignable(value)) { return createDataTypeViolationMessage(parameter.getName(), parameter.getType()); } return null; }
private boolean fillFromProviders(URI alias, ConfigDescriptionParameter parameter, Locale locale, List<ParameterOption> options) { boolean found = false; for (ConfigOptionProvider configOptionProvider : this.configOptionProviders) { Collection<ParameterOption> newOptions = configOptionProvider.getParameterOptions(alias, parameter.getName(), parameter.getContext(), locale); if (newOptions != null) { found = true; // Simply merge the options options.addAll(newOptions); } } return found; } }
/** * Returns the {@link Normalizer} for the type of the given config description parameter. * * @param configDescriptionParameter the config description parameter (must not be null) * @return the corresponding {@link Normalizer} (not null) * @throws IllegalArgumentException if the given config description parameter is null */ public static Normalizer getNormalizer(ConfigDescriptionParameter configDescriptionParameter) { if (configDescriptionParameter == null) { throw new IllegalArgumentException("The config description parameter must not be null."); } Normalizer ret = NORMALIZERS.get(configDescriptionParameter.getType()); if (configDescriptionParameter.isMultiple()) { ret = new ListNormalizer(ret); } return ret; }
if (cd != null) { Object tmp = config.get(propName); Object defaultValue = cd.getDefault(); if (tmp == null && defaultValue != null) { config.put(propName, defaultValue); if (cd.isMultiple()) { tmp = config.get(propName); if (tmp != null && tmp instanceof String) {
String parameterName = entry.getKey(); final Object value = configuration.get(parameterName); final Object defaultValue = parameter.getDefault(); if (value instanceof String && ((String) value).contains("${")) { continue; // It is a reference
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; }
int[] columnWidths = new int[] { COLUMN_CONFIG_PARAMETER, COLUMN_CONFIG_PARAMETER_PROP, COLUMN_CONFIG_PARAMETER_PROP_VALUE }; configParamContent.add(Utils.getColumn(COLUMN_PROPERTY_VALUE, parameter.getName() + " : ")); List<String> configParamProperty = new ArrayList<String>(); configParamProperty.add(""); configParamProperty.add(TYPE); configParamProperty.add(parameter.getType().toString()); configParamContent.add(Utils.getRow(columnWidths, configParamProperty)); if (parameter.getLabel() != null) { configParamProperty.set(1, LABEL); configParamProperty.set(2, parameter.getLabel()); configParamContent.add(Utils.getRow(columnWidths, configParamProperty)); if (parameter.getDescription() != null) { configParamProperty.set(1, DESCRIPTION); configParamProperty.set(2, parameter.getDescription()); configParamContent.add(Utils.getRow(columnWidths, configParamProperty)); if (parameter.getDefault() != null) { configParamProperty.set(1, DEFAULT); configParamProperty.set(2, parameter.getDefault()); configParamContent.add(Utils.getRow(columnWidths, configParamProperty)); if (parameter.getContext() != null) { configParamProperty.set(1, CONTEXT); configParamProperty.set(2, parameter.getContext()); configParamContent.add(Utils.getRow(columnWidths, configParamProperty)); if (parameter.getPattern() != null) {
if (thingConfigDescription != null) { for (ConfigDescriptionParameter parameter : thingConfigDescription.getParameters()) { String defaultValue = parameter.getDefault(); if (defaultValue != null && configuration.get(parameter.getName()) == null) { Object value = ThingFactoryHelper.getDefaultValueAsCorrectType(parameter.getType(), defaultValue); if (value != null) { configuration.put(parameter.getName(), value);
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() + "\"!"); } }
private Set<String> getConfigDescParamNames(List<ConfigDescriptionParameter> configDescParams) { Set<String> paramNames = new HashSet<>(); if (configDescParams != null) { for (ConfigDescriptionParameter param : configDescParams) { paramNames.add(param.getName()); } } return paramNames; }
/** * 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; }