diff --git a/bundles/org.opensmarthouse.core.automation/src/main/java/org/openhab/core/automation/internal/provider/i18n/ModuleTypeI18nServiceImpl.java b/bundles/org.opensmarthouse.core.automation/src/main/java/org/openhab/core/automation/internal/provider/i18n/ModuleTypeI18nServiceImpl.java index 3e51211329a..594a94da684 100644 --- a/bundles/org.opensmarthouse.core.automation/src/main/java/org/openhab/core/automation/internal/provider/i18n/ModuleTypeI18nServiceImpl.java +++ b/bundles/org.opensmarthouse.core.automation/src/main/java/org/openhab/core/automation/internal/provider/i18n/ModuleTypeI18nServiceImpl.java @@ -32,7 +32,7 @@ import org.openhab.core.automation.type.ModuleType; import org.openhab.core.automation.type.Output; import org.openhab.core.automation.type.TriggerType; -import org.openhab.core.config.core.ConfigDescription; +import org.openhab.core.config.core.ConfigDescriptionBuilder; import org.openhab.core.config.core.ConfigDescriptionParameter; import org.openhab.core.config.core.i18n.ConfigI18nLocalizationService; import org.openhab.core.i18n.TranslationProvider; @@ -109,8 +109,8 @@ public ModuleTypeI18nServiceImpl(final @Reference ConfigI18nLocalizationService @Nullable Locale locale) { try { return configI18nService - .getLocalizedConfigDescription(bundle, - new ConfigDescription(new URI(prefix + ":" + uid + ".name"), parameters), locale) + .getLocalizedConfigDescription(bundle, ConfigDescriptionBuilder + .create(new URI(prefix + ":" + uid + ".name")).withParameters(parameters).build(), locale) .getParameters(); } catch (URISyntaxException e) { logger.error("Constructed invalid uri '{}:{}.name'", prefix, uid, e); diff --git a/bundles/org.opensmarthouse.core.config.discovery/src/test/java/org/openhab/core/config/discovery/internal/PersistentInboxTest.java b/bundles/org.opensmarthouse.core.config.discovery/src/test/java/org/openhab/core/config/discovery/internal/PersistentInboxTest.java index 0b96b1e5247..c24cec4954b 100644 --- a/bundles/org.opensmarthouse.core.config.discovery/src/test/java/org/openhab/core/config/discovery/internal/PersistentInboxTest.java +++ b/bundles/org.opensmarthouse.core.config.discovery/src/test/java/org/openhab/core/config/discovery/internal/PersistentInboxTest.java @@ -30,7 +30,7 @@ import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.openhab.core.config.core.ConfigDescription; -import org.openhab.core.config.core.ConfigDescriptionParameter; +import org.openhab.core.config.core.ConfigDescriptionBuilder; import org.openhab.core.config.core.ConfigDescriptionParameter.Type; import org.openhab.core.config.core.ConfigDescriptionParameterBuilder; import org.openhab.core.config.core.ConfigDescriptionRegistry; @@ -203,8 +203,8 @@ private void configureConfigDescriptionRegistryMock(String paramName, Type type) URI configDescriptionURI = new URI("thing-type:test:test"); ThingType thingType = ThingTypeBuilder.instance(THING_TYPE_UID, "Test") .withConfigDescriptionURI(configDescriptionURI).build(); - ConfigDescriptionParameter param = ConfigDescriptionParameterBuilder.create(paramName, type).build(); - ConfigDescription configDesc = new ConfigDescription(configDescriptionURI, Collections.singletonList(param)); + ConfigDescription configDesc = ConfigDescriptionBuilder.create(configDescriptionURI) + .withParameter(ConfigDescriptionParameterBuilder.create(paramName, type).build()).build(); when(thingTypeRegistry.getThingType(THING_TYPE_UID)).thenReturn(thingType); when(configDescriptionRegistry.getConfigDescription(eq(configDescriptionURI))).thenReturn(configDesc); diff --git a/bundles/org.opensmarthouse.core.config.xml/src/main/java/org/openhab/core/config/xml/ConfigDescriptionConverter.java b/bundles/org.opensmarthouse.core.config.xml/src/main/java/org/openhab/core/config/xml/ConfigDescriptionConverter.java index d54831e2f28..9163fb5e730 100644 --- a/bundles/org.opensmarthouse.core.config.xml/src/main/java/org/openhab/core/config/xml/ConfigDescriptionConverter.java +++ b/bundles/org.opensmarthouse.core.config.xml/src/main/java/org/openhab/core/config/xml/ConfigDescriptionConverter.java @@ -19,6 +19,7 @@ import java.util.Map; import org.openhab.core.config.core.ConfigDescription; +import org.openhab.core.config.core.ConfigDescriptionBuilder; import org.openhab.core.config.core.ConfigDescriptionParameter; import org.openhab.core.config.core.ConfigDescriptionParameterGroup; import org.openhab.core.config.xml.util.ConverterAssertion; @@ -98,9 +99,7 @@ public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext co ConverterAssertion.assertEndOfType(reader); - // create object - configDescription = new ConfigDescription(uri, configDescriptionParams, configDescriptionGroups); - - return configDescription; + return ConfigDescriptionBuilder.create(uri).withParameters(configDescriptionParams) + .withParameterGroups(configDescriptionGroups).build(); } } diff --git a/bundles/org.opensmarthouse.core.config.xml/src/main/java/org/openhab/core/config/xml/ConfigDescriptionParameterConverter.java b/bundles/org.opensmarthouse.core.config.xml/src/main/java/org/openhab/core/config/xml/ConfigDescriptionParameterConverter.java index 094a62d1191..dbcc7d69f87 100644 --- a/bundles/org.opensmarthouse.core.config.xml/src/main/java/org/openhab/core/config/xml/ConfigDescriptionParameterConverter.java +++ b/bundles/org.opensmarthouse.core.config.xml/src/main/java/org/openhab/core/config/xml/ConfigDescriptionParameterConverter.java @@ -81,7 +81,7 @@ private Boolean toBoolean(String val) { if (val == null) { return null; } - return new Boolean(val); + return Boolean.valueOf(val); } private Boolean falseIfNull(Boolean b) { diff --git a/bundles/org.opensmarthouse.core.config/src/main/java/org/openhab/core/config/core/ConfigDescription.java b/bundles/org.opensmarthouse.core.config/src/main/java/org/openhab/core/config/core/ConfigDescription.java index 8765e9bdead..f7567586054 100644 --- a/bundles/org.opensmarthouse.core.config/src/main/java/org/openhab/core/config/core/ConfigDescription.java +++ b/bundles/org.opensmarthouse.core.config/src/main/java/org/openhab/core/config/core/ConfigDescription.java @@ -51,49 +51,17 @@ public class ConfigDescription implements Identifiable { private final List parameters; private final List parameterGroups; - /** - * Creates a new instance of this class with the specified parameter. - * - * @deprecated Use the {@link ConfigDescriptionBuilder} instead. - * - * @param uri the URI of this description within the {@link ConfigDescriptionRegistry} - * @throws IllegalArgumentException if the URI is null or invalid - */ - @Deprecated - public ConfigDescription(URI uri) throws IllegalArgumentException { - this(uri, null, null); - } - /** * Creates a new instance of this class with the specified parameters. * - * @deprecated Use the {@link ConfigDescriptionBuilder} instead. - * - * @param uri the URI of this description within the {@link ConfigDescriptionRegistry} (must neither be null nor - * empty) - * @param parameters the list of configuration parameters that belong to the given URI - * (could be null or empty) - * @throws IllegalArgumentException if the URI is null or invalid - */ - @Deprecated - public ConfigDescription(URI uri, List parameters) { - this(uri, parameters, null); - } - - /** - * Creates a new instance of this class with the specified parameters. - * - * @deprecated Use the {@link ConfigDescriptionBuilder} instead. - * - * @param uri the URI of this description within the {@link ConfigDescriptionRegistry} (must neither be null nor - * empty) + * @param uri the URI of this description within the {@link ConfigDescriptionRegistry} * @param parameters the list of configuration parameters that belong to the given URI - * (could be null or empty) * @param groups the list of groups associated with the parameters * @throws IllegalArgumentException if the URI is null or invalid + * @deprecated Use the {@link ConfigDescriptionBuilder} instead. */ @Deprecated - public ConfigDescription(@Nullable URI uri, @Nullable List parameters, + ConfigDescription(URI uri, @Nullable List parameters, @Nullable List groups) { if (uri == null) { throw new IllegalArgumentException("The URI must not be null!"); @@ -106,25 +74,15 @@ public ConfigDescription(@Nullable URI uri, @Nullable List:[:]'} (e.g. {@code "binding:hue:bridge"}). * - * @return the URI of this description (not null) + * @return the URI of this description */ @Override public URI getUID() { @@ -136,7 +94,7 @@ public URI getUID() { *

* The returned list is immutable. * - * @return the corresponding configuration description parameters (not null, could be empty) + * @return the corresponding configuration description parameters (could be empty) */ public List getParameters() { return parameters; @@ -147,7 +105,7 @@ public List getParameters() { * parameter as key and the parameter as value. * * @return the unmodifiable map of configuration description parameters which uses the name as key and the parameter - * as value (not null, could be empty) + * as value (could be empty) */ public Map toParametersMap() { Map map = new HashMap<>(); @@ -162,7 +120,7 @@ public Map toParametersMap() { *

* The returned list is immutable. * - * @return the list of parameter groups parameter (not null, could be empty) + * @return the list of parameter groups parameter (could be empty) */ public List getParameterGroups() { return parameterGroups; diff --git a/bundles/org.opensmarthouse.core.config/src/main/java/org/openhab/core/config/core/ConfigDescriptionParameter.java b/bundles/org.opensmarthouse.core.config/src/main/java/org/openhab/core/config/core/ConfigDescriptionParameter.java index e6f2a8c3a5d..e5b87f75918 100644 --- a/bundles/org.opensmarthouse.core.config/src/main/java/org/openhab/core/config/core/ConfigDescriptionParameter.java +++ b/bundles/org.opensmarthouse.core.config/src/main/java/org/openhab/core/config/core/ConfigDescriptionParameter.java @@ -116,20 +116,6 @@ public enum Type { public ConfigDescriptionParameter() { } - /** - * Creates a new instance of this class with the specified parameters. - * - * @param name the name of the configuration parameter (must neither be null - * nor empty) - * @param type the data type of the configuration parameter (must not be - * null) - * @throws IllegalArgumentException if the name is null or empty, or the type is null - */ - public ConfigDescriptionParameter(String name, Type type) throws IllegalArgumentException { - this(name, type, null, null, null, null, false, false, false, null, null, null, null, null, null, null, false, - true, null, null, null, false); - } - /** * Creates a new instance of this class with the specified parameters. * @@ -180,7 +166,9 @@ public ConfigDescriptionParameter(String name, Type type) throws IllegalArgument * https://openhab.org/documentation/development/bindings/xml-reference.html for the list * of valid units) * + * @deprecated Use {@link ConfigDescriptionParameterBuilder} instead. */ + @Deprecated ConfigDescriptionParameter(String name, Type type, BigDecimal minimum, BigDecimal maximum, BigDecimal stepsize, String pattern, Boolean required, Boolean readOnly, Boolean multiple, String context, String defaultValue, String label, String description, List options, List filterCriteria, diff --git a/bundles/org.opensmarthouse.core.config/src/main/java/org/openhab/core/config/core/ConfigDescriptionParameterBuilder.java b/bundles/org.opensmarthouse.core.config/src/main/java/org/openhab/core/config/core/ConfigDescriptionParameterBuilder.java index 1971ab32701..f980b1f3e51 100644 --- a/bundles/org.opensmarthouse.core.config/src/main/java/org/openhab/core/config/core/ConfigDescriptionParameterBuilder.java +++ b/bundles/org.opensmarthouse.core.config/src/main/java/org/openhab/core/config/core/ConfigDescriptionParameterBuilder.java @@ -295,6 +295,7 @@ public ConfigDescriptionParameterBuilder withUnitLabel(String unitLabel) { * * @return the desired result */ + @SuppressWarnings("deprecation") public ConfigDescriptionParameter build() throws IllegalArgumentException { return new ConfigDescriptionParameter(name, type, min, max, step, pattern, required, readOnly, multiple, context, defaultValue, label, description, options, filterCriteria, groupName, advanced, limitToOptions, diff --git a/bundles/org.opensmarthouse.core.config/src/main/java/org/openhab/core/config/core/ConfigDescriptionRegistry.java b/bundles/org.opensmarthouse.core.config/src/main/java/org/openhab/core/config/core/ConfigDescriptionRegistry.java index e8bec2a0c51..bfd6cc43219 100644 --- a/bundles/org.opensmarthouse.core.config/src/main/java/org/openhab/core/config/core/ConfigDescriptionRegistry.java +++ b/bundles/org.opensmarthouse.core.config/src/main/java/org/openhab/core/config/core/ConfigDescriptionRegistry.java @@ -105,7 +105,7 @@ protected void removeConfigDescriptionAliasProvider(ConfigDescriptionAliasProvid * @return all config descriptions or an empty collection if no config * description exists */ - public Collection getConfigDescriptions(Locale locale) { + public Collection getConfigDescriptions(@Nullable Locale locale) { Map configMap = new HashMap<>(); // Loop over all providers @@ -126,7 +126,8 @@ public Collection getConfigDescriptions(Locale locale) { // And add the combined configuration to the map configMap.put(configDescription.getUID(), - new ConfigDescription(configDescription.getUID(), parameters, parameterGroups)); + ConfigDescriptionBuilder.create(configDescription.getUID()).withParameters(parameters) + .withParameterGroups(parameterGroups).build()); } else { // No - Just add the new configuration to the map configMap.put(configDescription.getUID(), configDescription); @@ -169,7 +170,7 @@ public Collection getConfigDescriptions() { * @return config description or null if no config description exists for * the given name */ - public @Nullable ConfigDescription getConfigDescription(URI uri, Locale locale) { + public @Nullable ConfigDescription getConfigDescription(URI uri, @Nullable Locale locale) { List parameters = new ArrayList<>(); List parameterGroups = new ArrayList<>(); @@ -189,7 +190,8 @@ public Collection getConfigDescriptions() { } // Return the new configuration description - return new ConfigDescription(uri, parametersWithOptions, parameterGroups); + return ConfigDescriptionBuilder.create(uri).withParameters(parametersWithOptions) + .withParameterGroups(parameterGroups).build(); } else { // Otherwise null return null; @@ -207,7 +209,7 @@ private Set getAliases(URI original) { return ret; } - private boolean fillFromProviders(URI uri, Locale locale, List parameters, + private boolean fillFromProviders(URI uri, @Nullable Locale locale, List parameters, List parameterGroups) { boolean found = false; for (ConfigDescriptionProvider configDescriptionProvider : this.configDescriptionProviders) { @@ -271,20 +273,35 @@ private ConfigDescriptionParameter getConfigOptions(URI uri, Set aliases, C if (found) { // Return the new parameter - return new ConfigDescriptionParameter(parameter.getName(), parameter.getType(), parameter.getMinimum(), - parameter.getMaximum(), parameter.getStepSize(), parameter.getPattern(), parameter.isRequired(), - parameter.isReadOnly(), parameter.isMultiple(), parameter.getContext(), parameter.getDefault(), - parameter.getLabel(), parameter.getDescription(), options, parameter.getFilterCriteria(), - parameter.getGroupName(), parameter.isAdvanced(), parameter.getLimitToOptions(), - parameter.getMultipleLimit(), parameter.getUnit(), parameter.getUnitLabel(), - parameter.isVerifyable()); + return ConfigDescriptionParameterBuilder.create(parameter.getName(), parameter.getType()) // + .withMinimum(parameter.getMinimum()) // + .withMaximum(parameter.getMaximum()) // + .withStepSize(parameter.getStepSize()) // + .withPattern(parameter.getPattern()) // + .withRequired(parameter.isRequired()) // + .withReadOnly(parameter.isReadOnly()) // + .withMultiple(parameter.isMultiple()) // + .withContext(parameter.getContext()) // + .withDefault(parameter.getDefault()) // + .withLabel(parameter.getLabel()) // + .withDescription(parameter.getDescription()) // + .withOptions(options) // + .withFilterCriteria(parameter.getFilterCriteria()) // + .withGroupName(parameter.getGroupName()) // + .withAdvanced(parameter.isAdvanced()) // + .withLimitToOptions(parameter.getLimitToOptions()) // + .withMultipleLimit(parameter.getMultipleLimit()) // + .withUnit(parameter.getUnit()) // + .withUnitLabel(parameter.getUnitLabel()) // + .withVerify(parameter.isVerifyable()) // + .build(); } else { // Otherwise return the original parameter return parameter; } } - private boolean fillFromProviders(URI alias, ConfigDescriptionParameter parameter, Locale locale, + private boolean fillFromProviders(URI alias, ConfigDescriptionParameter parameter, @Nullable Locale locale, List options) { boolean found = false; for (ConfigOptionProvider configOptionProvider : this.configOptionProviders) { diff --git a/bundles/org.opensmarthouse.core.config/src/main/java/org/openhab/core/config/core/ConfigUtil.java b/bundles/org.opensmarthouse.core.config/src/main/java/org/openhab/core/config/core/ConfigUtil.java index 0b56c3f3c79..493e10f763a 100644 --- a/bundles/org.opensmarthouse.core.config/src/main/java/org/openhab/core/config/core/ConfigUtil.java +++ b/bundles/org.opensmarthouse.core.config/src/main/java/org/openhab/core/config/core/ConfigUtil.java @@ -13,6 +13,7 @@ package org.openhab.core.config.core; import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -76,7 +77,7 @@ public class ConfigUtil { LoggerFactory.getLogger(ConfigUtil.class).warn( "Default value for parameter '{}' of type 'INTEGER' seems not to be an integer value: {}", parameterName, defaultValue); - return value.setScale(0, BigDecimal.ROUND_DOWN); + return value.setScale(0, RoundingMode.DOWN); } return value; case DECIMAL: diff --git a/bundles/org.opensmarthouse.core.config/src/main/java/org/openhab/core/config/core/i18n/ConfigI18nLocalizationService.java b/bundles/org.opensmarthouse.core.config/src/main/java/org/openhab/core/config/core/i18n/ConfigI18nLocalizationService.java index d3ccc8456c7..c234e867de2 100644 --- a/bundles/org.opensmarthouse.core.config/src/main/java/org/openhab/core/config/core/i18n/ConfigI18nLocalizationService.java +++ b/bundles/org.opensmarthouse.core.config/src/main/java/org/openhab/core/config/core/i18n/ConfigI18nLocalizationService.java @@ -20,6 +20,7 @@ import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.core.config.core.ConfigDescription; +import org.openhab.core.config.core.ConfigDescriptionBuilder; import org.openhab.core.config.core.ConfigDescriptionParameter; import org.openhab.core.config.core.ConfigDescriptionParameterBuilder; import org.openhab.core.config.core.ConfigDescriptionParameterGroup; @@ -83,8 +84,9 @@ public ConfigDescription getLocalizedConfigDescription(final Bundle bundle, bundle, configDescription, configDescriptionParameterGroup, locale); localizedConfigDescriptionGroups.add(localizedConfigDescriptionGroup); } - return new ConfigDescription(configDescription.getUID(), localizedConfigDescriptionParameters, - localizedConfigDescriptionGroups); + return ConfigDescriptionBuilder.create(configDescription.getUID()) + .withParameters(localizedConfigDescriptionParameters) + .withParameterGroups(localizedConfigDescriptionGroups).build(); } /** diff --git a/bundles/org.opensmarthouse.core.config/src/main/java/org/openhab/core/config/core/internal/metadata/MetadataConfigDescriptionProviderImpl.java b/bundles/org.opensmarthouse.core.config/src/main/java/org/openhab/core/config/core/internal/metadata/MetadataConfigDescriptionProviderImpl.java index 15d5141fbf7..cdf1f8ebbb9 100644 --- a/bundles/org.opensmarthouse.core.config/src/main/java/org/openhab/core/config/core/internal/metadata/MetadataConfigDescriptionProviderImpl.java +++ b/bundles/org.opensmarthouse.core.config/src/main/java/org/openhab/core/config/core/internal/metadata/MetadataConfigDescriptionProviderImpl.java @@ -14,7 +14,6 @@ import java.net.URI; import java.util.Collection; -import java.util.Collections; import java.util.LinkedList; import java.util.List; import java.util.Locale; @@ -23,6 +22,7 @@ import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.openhab.core.config.core.ConfigDescription; +import org.openhab.core.config.core.ConfigDescriptionBuilder; import org.openhab.core.config.core.ConfigDescriptionParameter; import org.openhab.core.config.core.ConfigDescriptionParameter.Type; import org.openhab.core.config.core.ConfigDescriptionParameterBuilder; @@ -121,7 +121,7 @@ private ConfigDescription createValueConfigDescription(MetadataConfigDescription builder.withDescription(description != null ? description : namespace); ConfigDescriptionParameter parameter = builder.build(); - return new ConfigDescription(uri, Collections.singletonList(parameter)); + return ConfigDescriptionBuilder.create(uri).withParameter(parameter).build(); } private @Nullable ConfigDescription createParamConfigDescription(MetadataConfigDescriptionProvider provider, @@ -132,7 +132,7 @@ private ConfigDescription createValueConfigDescription(MetadataConfigDescription if (parameters == null || parameters.isEmpty()) { return null; } - return new ConfigDescription(uri, parameters); + return ConfigDescriptionBuilder.create(uri).withParameters(parameters).build(); } @Reference(cardinality = ReferenceCardinality.MULTIPLE, policy = ReferencePolicy.DYNAMIC) diff --git a/bundles/org.opensmarthouse.core.config/src/test/java/org/openhab/core/config/core/ConfigDescriptionParameterBuilderTest.java b/bundles/org.opensmarthouse.core.config/src/test/java/org/openhab/core/config/core/ConfigDescriptionParameterBuilderTest.java index 010de734236..e03bbc16423 100644 --- a/bundles/org.opensmarthouse.core.config/src/test/java/org/openhab/core/config/core/ConfigDescriptionParameterBuilderTest.java +++ b/bundles/org.opensmarthouse.core.config/src/test/java/org/openhab/core/config/core/ConfigDescriptionParameterBuilderTest.java @@ -51,7 +51,7 @@ public void assertThatCreatedConfigDescriptionParameterReturnExpectedValues() { String groupName = "groupName"; boolean advanced = false; boolean limitToOptions = true; - Integer multipleLimit = new Integer(17); + Integer multipleLimit = Integer.valueOf(17); //@formatter:off ConfigDescriptionParameter param = ConfigDescriptionParameterBuilder.create(name, type) @@ -152,8 +152,8 @@ public void assertThatGetterForNotNullableAttributesInitializedWithNullReturnExp assertFalse(param.isMultiple()); assertFalse(param.isAdvanced()); assertTrue(param.getLimitToOptions()); - ConfigDescriptionParameter param2 = new ConfigDescriptionParameter("Dummy", Type.BOOLEAN, null, null, null, - null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null); + + ConfigDescriptionParameter param2 = ConfigDescriptionParameterBuilder.create("Dummy", Type.BOOLEAN).build(); assertFalse(param2.isRequired()); assertFalse(param2.isReadOnly()); assertFalse(param2.isMultiple()); diff --git a/bundles/org.opensmarthouse.core.config/src/test/java/org/openhab/core/config/core/ConfigDescriptionRegistryTest.java b/bundles/org.opensmarthouse.core.config/src/test/java/org/openhab/core/config/core/ConfigDescriptionRegistryTest.java index a2dbfb0ae36..db27d1f2827 100644 --- a/bundles/org.opensmarthouse.core.config/src/test/java/org/openhab/core/config/core/ConfigDescriptionRegistryTest.java +++ b/bundles/org.opensmarthouse.core.config/src/test/java/org/openhab/core/config/core/ConfigDescriptionRegistryTest.java @@ -61,33 +61,30 @@ public void setUp() throws Exception { uriAliases = new URI("config:Aliased"); configDescriptionRegistry = new ConfigDescriptionRegistry(); - ConfigDescriptionParameter param1 = new ConfigDescriptionParameter("param1", - ConfigDescriptionParameter.Type.INTEGER); - List pList1 = new ArrayList<>(); - pList1.add(param1); + ConfigDescriptionParameter param1 = ConfigDescriptionParameterBuilder + .create("param1", ConfigDescriptionParameter.Type.INTEGER).build(); - configDescription = new ConfigDescription(uriDummy, pList1); + configDescription = ConfigDescriptionBuilder.create(uriDummy).withParameter(param1).build(); when(configDescriptionProviderMock.getConfigDescriptions(any())) .thenReturn(Collections.singleton(configDescription)); when(configDescriptionProviderMock.getConfigDescription(eq(uriDummy), any())).thenReturn(configDescription); - configDescription1 = new ConfigDescription(uriDummy1); + configDescription1 = ConfigDescriptionBuilder.create(uriDummy1).build(); when(configDescriptionProviderMock1.getConfigDescriptions(any())) .thenReturn(Collections.singleton(configDescription1)); when(configDescriptionProviderMock1.getConfigDescription(eq(uriDummy1), any())).thenReturn(configDescription1); - configDescriptionAliased = new ConfigDescription(uriAliases, Collections - .singletonList(new ConfigDescriptionParameter("instanceId", ConfigDescriptionParameter.Type.INTEGER))); + configDescriptionAliased = ConfigDescriptionBuilder.create(uriAliases).withParameter( + ConfigDescriptionParameterBuilder.create("instanceId", ConfigDescriptionParameter.Type.INTEGER).build()) + .build(); when(configDescriptionProviderAliased.getConfigDescriptions(any())) .thenReturn(Collections.singleton(configDescriptionAliased)); when(configDescriptionProviderAliased.getConfigDescription(eq(uriAliases), any())) .thenReturn(configDescriptionAliased); - ConfigDescriptionParameter param2 = new ConfigDescriptionParameter("param2", - ConfigDescriptionParameter.Type.INTEGER); - List pList2 = new ArrayList<>(); - pList2.add(param2); - configDescription2 = new ConfigDescription(uriDummy, pList2); + ConfigDescriptionParameter param2 = ConfigDescriptionParameterBuilder + .create("param2", ConfigDescriptionParameter.Type.INTEGER).build(); + configDescription2 = ConfigDescriptionBuilder.create(uriDummy).withParameter(param2).build(); when(configDescriptionProviderMock2.getConfigDescriptions(any())) .thenReturn(Collections.singleton(configDescription2)); when(configDescriptionProviderMock2.getConfigDescription(eq(uriDummy), any())).thenReturn(configDescription2); diff --git a/bundles/org.opensmarthouse.core.config/src/test/java/org/openhab/core/config/core/ConfigUtilTest.java b/bundles/org.opensmarthouse.core.config/src/test/java/org/openhab/core/config/core/ConfigUtilTest.java index 964b8b85891..e70859e1f32 100644 --- a/bundles/org.opensmarthouse.core.config/src/test/java/org/openhab/core/config/core/ConfigUtilTest.java +++ b/bundles/org.opensmarthouse.core.config/src/test/java/org/openhab/core/config/core/ConfigUtilTest.java @@ -108,8 +108,8 @@ public void verifyGetNumberOfDecimalPlacesWorksCorrectly() { @Test public void verifyApplyDefaultConfigurationReturnsNullIfNotSet() { Configuration configuration = new Configuration(); - ConfigDescription configDescription = new ConfigDescription(configUri, - Collections.singletonList(configDescriptionParameterBuilder2.build())); + ConfigDescription configDescription = ConfigDescriptionBuilder.create(configUri) + .withParameter(configDescriptionParameterBuilder2.build()).build(); ConfigUtil.applyDefaultConfiguration(configuration, configDescription); assertThat(configuration.get("p2"), is(nullValue())); @@ -120,8 +120,8 @@ public void verifyApplyDefaultConfigurationReturnsAListWithASingleValues() { configDescriptionParameterBuilder1.withDefault("2.5"); Configuration configuration = new Configuration(); - ConfigDescription configDescription = new ConfigDescription(configUri, - Collections.singletonList(configDescriptionParameterBuilder1.build())); + ConfigDescription configDescription = ConfigDescriptionBuilder.create(configUri) + .withParameter(configDescriptionParameterBuilder1.build()).build(); ConfigUtil.applyDefaultConfiguration(configuration, configDescription); verifyValuesOfConfiguration(configuration.get("p1"), 1, Collections.singletonList(new BigDecimal("2.5"))); @@ -132,8 +132,8 @@ public void verifyApplyDefaultConfigurationReturnsAListWithMultipleValues() { configDescriptionParameterBuilder1.withDefault("2.3,2.4,2.5"); Configuration configuration = new Configuration(); - ConfigDescription configDescription = new ConfigDescription(configUri, - Collections.singletonList(configDescriptionParameterBuilder1.build())); + ConfigDescription configDescription = ConfigDescriptionBuilder.create(configUri) + .withParameter(configDescriptionParameterBuilder1.build()).build(); ConfigUtil.applyDefaultConfiguration(configuration, configDescription); verifyValuesOfConfiguration(configuration.get("p1"), 3, @@ -145,8 +145,8 @@ public void verifyApplyDefaultConfigurationIgnoresWrongTypes() { configDescriptionParameterBuilder1.withDefault("2.3,2.4,foo,2.5"); Configuration configuration = new Configuration(); - ConfigDescription configDescription = new ConfigDescription(configUri, - Collections.singletonList(configDescriptionParameterBuilder1.build())); + ConfigDescription configDescription = ConfigDescriptionBuilder.create(configUri) + .withParameter(configDescriptionParameterBuilder1.build()).build(); ConfigUtil.applyDefaultConfiguration(configuration, configDescription); verifyValuesOfConfiguration(configuration.get("p1"), 3, @@ -158,8 +158,8 @@ public void verifyApplyDefaultConfigurationReturnsAListWithTrimmedValues() { configDescriptionParameterBuilder2.withDefault("first value, second value ,third value,,,"); Configuration configuration = new Configuration(); - ConfigDescription configDescription = new ConfigDescription(configUri, - Collections.singletonList(configDescriptionParameterBuilder2.build())); + ConfigDescription configDescription = ConfigDescriptionBuilder.create(configUri) + .withParameter(configDescriptionParameterBuilder2.build()).build(); ConfigUtil.applyDefaultConfiguration(configuration, configDescription); verifyValuesOfConfiguration(configuration.get("p2"), 3, @@ -175,11 +175,11 @@ private void verifyValuesOfConfiguration(Object subject, int expectedSize, List< @Test public void firstDesciptionWinsForNormalization() throws URISyntaxException { - ConfigDescription configDescriptionInteger = new ConfigDescription(new URI("thing:fooThing"), - Arrays.asList(new ConfigDescriptionParameter("foo", INTEGER))); + ConfigDescription configDescriptionInteger = ConfigDescriptionBuilder.create(new URI("thing:fooThing")) + .withParameter(ConfigDescriptionParameterBuilder.create("foo", INTEGER).build()).build(); - ConfigDescription configDescriptionString = new ConfigDescription(new URI("thingType:fooThing"), - Arrays.asList(new ConfigDescriptionParameter("foo", TEXT))); + ConfigDescription configDescriptionString = ConfigDescriptionBuilder.create(new URI("thingType:fooThing")) + .withParameter(ConfigDescriptionParameterBuilder.create("foo", TEXT).build()).build(); assertThat( ConfigUtil.normalizeTypes(Collections.singletonMap("foo", "1"), Arrays.asList(configDescriptionInteger)) diff --git a/bundles/org.opensmarthouse.core.config/src/test/java/org/openhab/core/config/core/internal/normalization/NormalizerTest.java b/bundles/org.opensmarthouse.core.config/src/test/java/org/openhab/core/config/core/internal/normalization/NormalizerTest.java index fd3bf527e1b..0a0f3f4738f 100644 --- a/bundles/org.opensmarthouse.core.config/src/test/java/org/openhab/core/config/core/internal/normalization/NormalizerTest.java +++ b/bundles/org.opensmarthouse.core.config/src/test/java/org/openhab/core/config/core/internal/normalization/NormalizerTest.java @@ -23,7 +23,7 @@ import org.junit.Test; import org.openhab.core.config.core.ConfigDescriptionParameter; -import org.openhab.core.config.core.ConfigDescriptionParameter.Type; +import org.openhab.core.config.core.ConfigDescriptionParameterBuilder; /** * @author Simon Kaufmann - Initial contribution @@ -33,15 +33,16 @@ public class NormalizerTest { @Test public void testBooleanNormalizer() { - Normalizer normalizer = NormalizerFactory.getNormalizer(new ConfigDescriptionParameter("test", Type.BOOLEAN)); + Normalizer normalizer = NormalizerFactory.getNormalizer( + ConfigDescriptionParameterBuilder.create("test", ConfigDescriptionParameter.Type.BOOLEAN).build()); assertThat(normalizer.normalize(null), is(nullValue())); assertThat(normalizer.normalize(true), is(equalTo(true))); assertThat(normalizer.normalize(1), is(equalTo(true))); assertThat(normalizer.normalize(false), is(equalTo(false))); assertThat(normalizer.normalize(0), is(equalTo(false))); - assertThat(normalizer.normalize(new Boolean(true)), is(equalTo(true))); - assertThat(normalizer.normalize(new Boolean(false)), is(equalTo(false))); + assertThat(normalizer.normalize(Boolean.TRUE), is(equalTo(true))); + assertThat(normalizer.normalize(Boolean.FALSE), is(equalTo(false))); assertThat(normalizer.normalize("true"), is(equalTo(true))); assertThat(normalizer.normalize("false"), is(equalTo(false))); assertThat(normalizer.normalize("yes"), is(equalTo(true))); @@ -67,7 +68,8 @@ public String toString() { @Test public void testIntNormalizer() { - Normalizer normalizer = NormalizerFactory.getNormalizer(new ConfigDescriptionParameter("test", Type.INTEGER)); + Normalizer normalizer = NormalizerFactory.getNormalizer( + ConfigDescriptionParameterBuilder.create("test", ConfigDescriptionParameter.Type.INTEGER).build()); assertThat(normalizer.normalize(null), is(nullValue())); assertThat(normalizer.normalize(42), is(equalTo(new BigDecimal(42)))); @@ -93,7 +95,8 @@ public void testIntNormalizer() { @Test public void testDecimalNormalizer() { - Normalizer normalizer = NormalizerFactory.getNormalizer(new ConfigDescriptionParameter("test", Type.DECIMAL)); + Normalizer normalizer = NormalizerFactory.getNormalizer( + ConfigDescriptionParameterBuilder.create("test", ConfigDescriptionParameter.Type.DECIMAL).build()); assertThat(normalizer.normalize(null), is(nullValue())); assertThat(normalizer.normalize(42), is(equalTo(new BigDecimal("42.0")))); @@ -121,7 +124,8 @@ public void testDecimalNormalizer() { @Test public void testTextNormalizer() { - Normalizer normalizer = NormalizerFactory.getNormalizer(new ConfigDescriptionParameter("test", Type.TEXT)); + Normalizer normalizer = NormalizerFactory.getNormalizer( + ConfigDescriptionParameterBuilder.create("test", ConfigDescriptionParameter.Type.TEXT).build()); assertThat(normalizer.normalize(null), is(nullValue())); assertThat(normalizer.normalize(""), is(equalTo(""))); @@ -142,17 +146,8 @@ public void testTextNormalizer() { @Test public void testListNormalizer() { - Normalizer normalizer = NormalizerFactory.getNormalizer(new ConfigDescriptionParameter() { - @Override - public Type getType() { - return Type.BOOLEAN; - }; - - @Override - public Boolean isMultiple() { - return true; - }; - }); + Normalizer normalizer = NormalizerFactory.getNormalizer(ConfigDescriptionParameterBuilder + .create("test", ConfigDescriptionParameter.Type.BOOLEAN).withMultiple(true).build()); assertThat(normalizer.normalize(null), is(nullValue())); diff --git a/bundles/org.opensmarthouse.core.config/src/test/java/org/openhab/core/config/core/internal/validation/ConfigDescriptionValidatorTest.java b/bundles/org.opensmarthouse.core.config/src/test/java/org/openhab/core/config/core/internal/validation/ConfigDescriptionValidatorTest.java index b5ecc0beb78..c001704e611 100644 --- a/bundles/org.opensmarthouse.core.config/src/test/java/org/openhab/core/config/core/internal/validation/ConfigDescriptionValidatorTest.java +++ b/bundles/org.opensmarthouse.core.config/src/test/java/org/openhab/core/config/core/internal/validation/ConfigDescriptionValidatorTest.java @@ -33,6 +33,7 @@ import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; import org.openhab.core.config.core.ConfigDescription; +import org.openhab.core.config.core.ConfigDescriptionBuilder; import org.openhab.core.config.core.ConfigDescriptionParameter; import org.openhab.core.config.core.ConfigDescriptionParameter.Type; import org.openhab.core.config.core.ConfigDescriptionParameterBuilder; @@ -135,11 +136,13 @@ private static final URI createURI(String s) { } } - private static final ConfigDescription CONFIG_DESCRIPTION = new ConfigDescription(CONFIG_DESCRIPTION_URI, - Stream.of(BOOL_PARAM, BOOL_REQUIRED_PARAM, TXT_PARAM, TXT_REQUIRED_PARAM, TXT_MIN_PARAM, TXT_MAX_PARAM, - TXT_PATTERN_PARAM, TXT_MAX_PATTERN_PARAM, INT_PARAM, INT_REQUIRED_PARAM, INT_MIN_PARAM, - INT_MAX_PARAM, DECIMAL_PARAM, DECIMAL_REQUIRED_PARAM, DECIMAL_MIN_PARAM, DECIMAL_MAX_PARAM) - .collect(toList())); + private static final ConfigDescription CONFIG_DESCRIPTION = ConfigDescriptionBuilder.create(CONFIG_DESCRIPTION_URI) + .withParameters(Stream + .of(BOOL_PARAM, BOOL_REQUIRED_PARAM, TXT_PARAM, TXT_REQUIRED_PARAM, TXT_MIN_PARAM, TXT_MAX_PARAM, + TXT_PATTERN_PARAM, TXT_MAX_PATTERN_PARAM, INT_PARAM, INT_REQUIRED_PARAM, INT_MIN_PARAM, + INT_MAX_PARAM, DECIMAL_PARAM, DECIMAL_REQUIRED_PARAM, DECIMAL_MIN_PARAM, DECIMAL_MAX_PARAM) + .collect(toList())) + .build(); private Map params; private ConfigDescriptionValidatorImpl configDescriptionValidator; @@ -499,6 +502,7 @@ public void assertValidateCanHandleSituationsWithoutConfigDescriptionRegistry() configDescriptionValidator.validate(params, CONFIG_DESCRIPTION_URI); } + @SuppressWarnings("unchecked") private static List getConfigValidationMessages(ConfigValidationException cve) { try { Field field = cve.getClass().getDeclaredField("configValidationMessages"); diff --git a/bundles/org.opensmarthouse.core.io.rest.config/src/test/java/org/openhab/core/io/rest/core/config/EnrichedConfigDescriptionDTOMapperTest.java b/bundles/org.opensmarthouse.core.io.rest.config/src/test/java/org/openhab/core/io/rest/core/config/EnrichedConfigDescriptionDTOMapperTest.java index 51665aa0c00..a7a78d90e17 100644 --- a/bundles/org.opensmarthouse.core.io.rest.config/src/test/java/org/openhab/core/io/rest/core/config/EnrichedConfigDescriptionDTOMapperTest.java +++ b/bundles/org.opensmarthouse.core.io.rest.config/src/test/java/org/openhab/core/io/rest/core/config/EnrichedConfigDescriptionDTOMapperTest.java @@ -21,6 +21,7 @@ import org.junit.Test; import org.openhab.core.config.core.ConfigDescription; +import org.openhab.core.config.core.ConfigDescriptionBuilder; import org.openhab.core.config.core.ConfigDescriptionParameter; import org.openhab.core.config.core.ConfigDescriptionParameter.Type; import org.openhab.core.config.core.ConfigDescriptionParameterBuilder; @@ -40,8 +41,8 @@ public class EnrichedConfigDescriptionDTOMapperTest { public void testThatDefaultValuesAreEmptyIfMultipleIsTrue() { ConfigDescriptionParameter configDescriptionParameter = ConfigDescriptionParameterBuilder .create(CONFIG_PARAMETER_NAME, Type.TEXT).withMultiple(true).build(); - ConfigDescription configDescription = new ConfigDescription(CONFIG_URI, - Arrays.asList(configDescriptionParameter)); + ConfigDescription configDescription = ConfigDescriptionBuilder.create(CONFIG_URI) + .withParameter(configDescriptionParameter).build(); ConfigDescriptionDTO cddto = EnrichedConfigDescriptionDTOMapper.map(configDescription); assertThat(cddto.parameters, hasSize(1)); @@ -57,8 +58,8 @@ public void testThatDefaultValuesAreEmptyIfMultipleIsTrue() { public void testThatDefaultValueIsNotAList() { ConfigDescriptionParameter configDescriptionParameter = ConfigDescriptionParameterBuilder .create(CONFIG_PARAMETER_NAME, Type.TEXT).withDefault(CONFIG_PARAMETER_DEFAULT_VALUE).build(); - ConfigDescription configDescription = new ConfigDescription(CONFIG_URI, - Arrays.asList(configDescriptionParameter)); + ConfigDescription configDescription = ConfigDescriptionBuilder.create(CONFIG_URI) + .withParameter(configDescriptionParameter).build(); ConfigDescriptionDTO cddto = EnrichedConfigDescriptionDTOMapper.map(configDescription); assertThat(cddto.parameters, hasSize(1)); @@ -76,8 +77,8 @@ public void testThatDefaultValuesAreAList() { ConfigDescriptionParameter configDescriptionParameter = ConfigDescriptionParameterBuilder .create(CONFIG_PARAMETER_NAME, Type.TEXT).withDefault(CONFIG_PARAMETER_DEFAULT_VALUE).withMultiple(true) .build(); - ConfigDescription configDescription = new ConfigDescription(CONFIG_URI, - Arrays.asList(configDescriptionParameter)); + ConfigDescription configDescription = ConfigDescriptionBuilder.create(CONFIG_URI) + .withParameter(configDescriptionParameter).build(); ConfigDescriptionDTO cddto = EnrichedConfigDescriptionDTOMapper.map(configDescription); assertThat(cddto.parameters, hasSize(1)); diff --git a/bundles/org.opensmarthouse.core.thing/src/main/java/org/openhab/core/thing/internal/link/ItemChannelLinkConfigDescriptionProvider.java b/bundles/org.opensmarthouse.core.thing/src/main/java/org/openhab/core/thing/internal/link/ItemChannelLinkConfigDescriptionProvider.java index 394fd2aa8d2..5fe7196c70c 100644 --- a/bundles/org.opensmarthouse.core.thing/src/main/java/org/openhab/core/thing/internal/link/ItemChannelLinkConfigDescriptionProvider.java +++ b/bundles/org.opensmarthouse.core.thing/src/main/java/org/openhab/core/thing/internal/link/ItemChannelLinkConfigDescriptionProvider.java @@ -20,6 +20,7 @@ import java.util.stream.Collectors; import org.openhab.core.config.core.ConfigDescription; +import org.openhab.core.config.core.ConfigDescriptionBuilder; import org.openhab.core.config.core.ConfigDescriptionParameter; import org.openhab.core.config.core.ConfigDescriptionParameter.Type; import org.openhab.core.config.core.ConfigDescriptionParameterBuilder; @@ -84,7 +85,7 @@ public ConfigDescription getConfigDescription(URI uri, Locale locale) { ConfigDescriptionParameter paramProfile = ConfigDescriptionParameterBuilder.create(PARAM_PROFILE, Type.TEXT) .withLabel("Profile").withDescription("the profile to use").withRequired(false) .withLimitToOptions(true).withOptions(getOptions(link, item, channel, locale)).build(); - return new ConfigDescription(uri, Collections.singletonList(paramProfile)); + return ConfigDescriptionBuilder.create(uri).withParameter(paramProfile).build(); } return null; } diff --git a/itests/org.opensmarthouse.core.automation.integration.tests/src/main/java/org/openhab/core/automation/integration/test/AutomationIntegrationTest.java b/itests/org.opensmarthouse.core.automation.integration.tests/src/main/java/org/openhab/core/automation/integration/test/AutomationIntegrationTest.java index 05eeeae9d56..1da91f8dace 100644 --- a/itests/org.opensmarthouse.core.automation.integration.tests/src/main/java/org/openhab/core/automation/integration/test/AutomationIntegrationTest.java +++ b/itests/org.opensmarthouse.core.automation.integration.tests/src/main/java/org/openhab/core/automation/integration/test/AutomationIntegrationTest.java @@ -61,6 +61,7 @@ import org.openhab.core.automation.util.RuleBuilder; import org.openhab.core.common.registry.ProviderChangeListener; import org.openhab.core.config.core.ConfigDescriptionParameter; +import org.openhab.core.config.core.ConfigDescriptionParameterBuilder; import org.openhab.core.config.core.Configuration; import org.openhab.core.events.Event; import org.openhab.core.events.EventFilter; @@ -810,8 +811,8 @@ public void testModuleTypeProviderAndTemplateProvider() { List templateTriggers = Collections.emptyList(); List templateConditions = Collections.emptyList(); List templateActions = Collections.emptyList(); - List templateConfigDescriptionParameters = Collections - .singletonList(new ConfigDescriptionParameter("param", ConfigDescriptionParameter.Type.TEXT)); + List templateConfigDescriptionParameters = Collections.singletonList( + ConfigDescriptionParameterBuilder.create("param", ConfigDescriptionParameter.Type.TEXT).build()); RuleTemplate template = new RuleTemplate(templateUID, "Test template Label", "Test template description", tags, templateTriggers, templateConditions, templateActions, templateConfigDescriptionParameters, Visibility.VISIBLE); diff --git a/itests/org.opensmarthouse.core.config.core.tests/src/main/java/org/openhab/core/config/core/ConfigOptionRegistryOSGiTest.java b/itests/org.opensmarthouse.core.config.core.tests/src/main/java/org/openhab/core/config/core/ConfigOptionRegistryOSGiTest.java index 4990a564bc2..238f29e220d 100644 --- a/itests/org.opensmarthouse.core.config.core.tests/src/main/java/org/openhab/core/config/core/ConfigOptionRegistryOSGiTest.java +++ b/itests/org.opensmarthouse.core.config.core.tests/src/main/java/org/openhab/core/config/core/ConfigOptionRegistryOSGiTest.java @@ -12,14 +12,16 @@ */ package org.openhab.core.config.core; -import static java.util.Collections.singleton; import static org.hamcrest.CoreMatchers.*; +import static org.hamcrest.collection.IsCollectionWithSize.hasSize; import static org.junit.Assert.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.*; import java.net.URI; +import java.net.URISyntaxException; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import org.junit.Before; @@ -35,24 +37,22 @@ public class ConfigOptionRegistryOSGiTest extends JavaOSGiTest { private ConfigDescriptionRegistry configDescriptionRegistry; - private ConfigDescription configDescription; private ConfigDescriptionProvider configDescriptionProviderMock; private ConfigOptionProvider configOptionsProviderMock; - private ParameterOption parameterOption; + private URI dummyURI; @Before - public void setUp() throws Exception { + public void setUp() throws URISyntaxException { // Register config registry configDescriptionRegistry = getService(ConfigDescriptionRegistry.class); - ConfigDescriptionParameter parm1 = new ConfigDescriptionParameter("Parm1", - ConfigDescriptionParameter.Type.INTEGER); - List pList1 = new ArrayList<>(); - pList1.add(parm1); - configDescription = new ConfigDescription(new URI("config:Dummy"), pList1); + dummyURI = new URI("config:Dummy"); + ConfigDescriptionParameter param1 = ConfigDescriptionParameterBuilder + .create("Param1", ConfigDescriptionParameter.Type.INTEGER).build(); + ConfigDescription configDescription = ConfigDescriptionBuilder.create(dummyURI).withParameter(param1).build(); // Create config option list List oList1 = new ArrayList<>(); - parameterOption = new ParameterOption("Option1", "Option1"); + ParameterOption parameterOption = new ParameterOption("Option1", "Option1"); oList1.add(parameterOption); parameterOption = new ParameterOption("Option2", "Option2"); oList1.add(parameterOption); @@ -61,31 +61,33 @@ public void setUp() throws Exception { when(configOptionsProviderMock.getParameterOptions(any(), any(), any(), any())).thenReturn(oList1); configDescriptionProviderMock = mock(ConfigDescriptionProvider.class); - when(configDescriptionProviderMock.getConfigDescriptions(any())).thenReturn(singleton(configDescription)); + when(configDescriptionProviderMock.getConfigDescriptions(any())) + .thenReturn(Collections.singleton(configDescription)); when(configDescriptionProviderMock.getConfigDescription(any(), any())).thenReturn(configDescription); } @Test - public void assertConfigDescriptionRegistryMergesOptions() throws Exception { - assertThat("Registery is empty to start", configDescriptionRegistry.getConfigDescriptions().size(), is(0)); + public void assertConfigDescriptionRegistryMergesOptions() { + assertThat("Registery is empty to start", configDescriptionRegistry.getConfigDescriptions(), hasSize(0)); configDescriptionRegistry.addConfigDescriptionProvider(configDescriptionProviderMock); - assertThat("Config description added ok", configDescriptionRegistry.getConfigDescriptions().size(), is(1)); + assertThat("Config description added ok", configDescriptionRegistry.getConfigDescriptions(), hasSize(1)); configDescriptionRegistry.addConfigOptionProvider(configOptionsProviderMock); - ConfigDescription configDescriptions = configDescriptionRegistry.getConfigDescription(new URI("config:Dummy")); - assertThat("Config is found", configDescriptions.getUID(), is(equalTo(new URI("config:Dummy")))); - - assertThat("Config contains parameter", configDescriptions.getParameters().size(), is(1)); - assertThat("Config parameter found", configDescriptions.getParameters().get(0).getName(), is(equalTo("Parm1"))); - assertThat("Config parameter contains options", configDescriptions.getParameters().get(0).getOptions().size(), - is(2)); + ConfigDescription configDescriptions = configDescriptionRegistry.getConfigDescription(dummyURI); + assertThat(configDescriptions, is(not(nullValue()))); + assertThat("Config is found", configDescriptions.getUID(), is(dummyURI)); + assertThat("Config contains parameter", configDescriptions.getParameters(), hasSize(1)); + assertThat("Config parameter found", configDescriptions.getParameters().get(0).getName(), + is(equalTo("Param1"))); + assertThat("Config parameter contains options", configDescriptions.getParameters().get(0).getOptions(), + hasSize(2)); configDescriptionRegistry.removeConfigOptionProvider(configOptionsProviderMock); configDescriptionRegistry.removeConfigDescriptionProvider(configDescriptionProviderMock); - assertThat("Description registery is empty to finish", configDescriptionRegistry.getConfigDescriptions().size(), - is(0)); + assertThat("Description registery is empty to finish", configDescriptionRegistry.getConfigDescriptions(), + hasSize(0)); } } diff --git a/itests/org.opensmarthouse.core.config.discovery.tests/src/main/java/org/openhab/core/config/discovery/internal/InboxOSGiTest.java b/itests/org.opensmarthouse.core.config.discovery.tests/src/main/java/org/openhab/core/config/discovery/internal/InboxOSGiTest.java index 8ea4bf752d7..1a5132ca822 100644 --- a/itests/org.opensmarthouse.core.config.discovery.tests/src/main/java/org/openhab/core/config/discovery/internal/InboxOSGiTest.java +++ b/itests/org.opensmarthouse.core.config.discovery.tests/src/main/java/org/openhab/core/config/discovery/internal/InboxOSGiTest.java @@ -42,8 +42,8 @@ import org.junit.Test; import org.openhab.core.config.core.ConfigDescription; import org.openhab.core.config.core.ConfigDescriptionBuilder; -import org.openhab.core.config.core.ConfigDescriptionParameter; import org.openhab.core.config.core.ConfigDescriptionParameter.Type; +import org.openhab.core.config.core.ConfigDescriptionParameterBuilder; import org.openhab.core.config.core.ConfigDescriptionProvider; import org.openhab.core.config.core.ConfigDescriptionRegistry; import org.openhab.core.config.core.Configuration; @@ -154,9 +154,9 @@ protected void startScan() { private final ThingType testThingType = ThingTypeBuilder.instance(testTypeUID, "label") .withConfigDescriptionURI(testURI).build(); private final ConfigDescription testConfigDescription = ConfigDescriptionBuilder.create(testURI) - .withParameters(Stream - .of(new ConfigDescriptionParameter(discoveryResultPropertyKeys.get(0), Type.TEXT), - new ConfigDescriptionParameter(discoveryResultPropertyKeys.get(1), Type.INTEGER)) + .withParameters(Stream.of( + ConfigDescriptionParameterBuilder.create(discoveryResultPropertyKeys.get(0), Type.TEXT).build(), + ConfigDescriptionParameterBuilder.create(discoveryResultPropertyKeys.get(1), Type.INTEGER).build()) .collect(toList())) .build(); private final String[] keysInConfigDescription = new String[] { discoveryResultPropertyKeys.get(0), @@ -868,9 +868,9 @@ public void assertThatApproveAddsAllPropertiesOfDiscoveryResultToThingProperties discoveryResultProperties.keySet().forEach(key -> { String thingProperty = addedThing.getProperties().get(key); String descResultParam = String.valueOf(discoveryResultProperties.get(key)); - assertFalse(thingProperty == null); - assertFalse(descResultParam == null); - assertTrue(thingProperty.equals(descResultParam)); + assertThat(thingProperty, is(notNullValue())); + assertThat(descResultParam, is(notNullValue())); + assertThat(thingProperty, is(descResultParam)); }); } diff --git a/itests/org.opensmarthouse.core.model.thing.tests/src/main/java/org/openhab/core/model/thing/test/hue/GenericThingProviderTest3.java b/itests/org.opensmarthouse.core.model.thing.tests/src/main/java/org/openhab/core/model/thing/test/hue/GenericThingProviderTest3.java index 60f454ec378..5e8f90e9806 100644 --- a/itests/org.opensmarthouse.core.model.thing.tests/src/main/java/org/openhab/core/model/thing/test/hue/GenericThingProviderTest3.java +++ b/itests/org.opensmarthouse.core.model.thing.tests/src/main/java/org/openhab/core/model/thing/test/hue/GenericThingProviderTest3.java @@ -29,6 +29,7 @@ import org.junit.Before; import org.junit.Test; import org.openhab.core.config.core.ConfigDescription; +import org.openhab.core.config.core.ConfigDescriptionBuilder; import org.openhab.core.config.core.ConfigDescriptionParameter; import org.openhab.core.config.core.ConfigDescriptionParameterBuilder; import org.openhab.core.config.core.ConfigDescriptionProvider; @@ -87,13 +88,14 @@ public void setUp() throws Exception { modelRepository.addOrRefreshModel(TESTMODEL_NAME, new ByteArrayInputStream(model.getBytes())); registerService(dumbThingHandlerFactory, ThingHandlerFactory.class.getName()); - ConfigDescription configDescription = new ConfigDescription(new URI("test:test"), - Stream.of( + ConfigDescription configDescription = ConfigDescriptionBuilder.create(new URI("test:test")) + .withParameters(Stream.of( ConfigDescriptionParameterBuilder.create("testAdditional", ConfigDescriptionParameter.Type.TEXT) .withRequired(false).withDefault("hello world").build(), ConfigDescriptionParameterBuilder.create("testConf", ConfigDescriptionParameter.Type.TEXT) .withRequired(false).withDefault("bar").build()) - .collect(toList())); + .collect(toList())) + .build(); ConfigDescriptionProvider configDescriptionProvider = mock(ConfigDescriptionProvider.class); when(configDescriptionProvider.getConfigDescription(any(), nullable(Locale.class))) diff --git a/itests/org.opensmarthouse.core.model.thing.testsupport/src/main/java/org/openhab/core/model/thing/testsupport/hue/TestHueConfigDescriptionProvider.java b/itests/org.opensmarthouse.core.model.thing.testsupport/src/main/java/org/openhab/core/model/thing/testsupport/hue/TestHueConfigDescriptionProvider.java index 03e43c9c46d..64c294ddc18 100644 --- a/itests/org.opensmarthouse.core.model.thing.testsupport/src/main/java/org/openhab/core/model/thing/testsupport/hue/TestHueConfigDescriptionProvider.java +++ b/itests/org.opensmarthouse.core.model.thing.testsupport/src/main/java/org/openhab/core/model/thing/testsupport/hue/TestHueConfigDescriptionProvider.java @@ -22,8 +22,10 @@ import java.util.stream.Stream; import org.openhab.core.config.core.ConfigDescription; +import org.openhab.core.config.core.ConfigDescriptionBuilder; import org.openhab.core.config.core.ConfigDescriptionParameter; import org.openhab.core.config.core.ConfigDescriptionParameter.Type; +import org.openhab.core.config.core.ConfigDescriptionParameterBuilder; import org.openhab.core.config.core.ConfigDescriptionProvider; import org.osgi.service.component.annotations.Component; @@ -43,19 +45,12 @@ public Collection getConfigDescriptions(Locale locale) { @Override public ConfigDescription getConfigDescription(URI uri, Locale locale) { if (uri.equals(createURI("hue:LCT001:color"))) { - ConfigDescriptionParameter paramDefault = new ConfigDescriptionParameter("defaultConfig", Type.TEXT) { - @Override - public String getDefault() { - return "defaultValue"; - }; - }; - ConfigDescriptionParameter paramCustom = new ConfigDescriptionParameter("customConfig", Type.TEXT) { - @Override - public String getDefault() { - return "none"; - }; - }; - return new ConfigDescription(uri, Stream.of(paramDefault, paramCustom).collect(toList())); + ConfigDescriptionParameter paramDefault = ConfigDescriptionParameterBuilder + .create("defaultConfig", Type.TEXT).withDefault("defaultValue").build(); + ConfigDescriptionParameter paramCustom = ConfigDescriptionParameterBuilder.create("customConfig", Type.TEXT) + .withDefault("none").build(); + return ConfigDescriptionBuilder.create(uri) + .withParameters(Stream.of(paramDefault, paramCustom).collect(toList())).build(); } return null; } diff --git a/itests/org.opensmarthouse.core.thing.tests/src/main/java/org/openhab/core/thing/binding/BindingBaseClassesOSGiTest.java b/itests/org.opensmarthouse.core.thing.tests/src/main/java/org/openhab/core/thing/binding/BindingBaseClassesOSGiTest.java index 50b887668ec..3b66c587801 100644 --- a/itests/org.opensmarthouse.core.thing.tests/src/main/java/org/openhab/core/thing/binding/BindingBaseClassesOSGiTest.java +++ b/itests/org.opensmarthouse.core.thing.tests/src/main/java/org/openhab/core/thing/binding/BindingBaseClassesOSGiTest.java @@ -44,6 +44,7 @@ import org.mockito.stubbing.Answer; import org.openhab.core.common.registry.RegistryChangeListener; import org.openhab.core.config.core.ConfigDescription; +import org.openhab.core.config.core.ConfigDescriptionBuilder; import org.openhab.core.config.core.ConfigDescriptionParameter; import org.openhab.core.config.core.ConfigDescriptionParameterBuilder; import org.openhab.core.config.core.ConfigDescriptionProvider; @@ -700,9 +701,10 @@ private URI configDescriptionUri() { private void registerThingTypeAndConfigDescription() { ThingType thingType = ThingTypeBuilder.instance(new ThingTypeUID(BINDING_ID, THING_TYPE_ID), "label") .withConfigDescriptionURI(configDescriptionUri()).build(); - ConfigDescription configDescription = new ConfigDescription(configDescriptionUri(), - singletonList(ConfigDescriptionParameterBuilder - .create("parameter", ConfigDescriptionParameter.Type.TEXT).withRequired(true).build())); + ConfigDescription configDescription = ConfigDescriptionBuilder.create(configDescriptionUri()) + .withParameter(ConfigDescriptionParameterBuilder + .create("parameter", ConfigDescriptionParameter.Type.TEXT).withRequired(true).build()) + .build(); ThingTypeProvider thingTypeProvider = mock(ThingTypeProvider.class); when(thingTypeProvider.getThingType(ArgumentMatchers.any(ThingTypeUID.class), @@ -734,10 +736,11 @@ private void registerThingTypeProvider() { } private void registerConfigDescriptionProvider(boolean withRequiredParameter) { - ConfigDescription configDescription = new ConfigDescription(configDescriptionUri(), - singletonList( + ConfigDescription configDescription = ConfigDescriptionBuilder.create(configDescriptionUri()) + .withParameter( ConfigDescriptionParameterBuilder.create("parameter", ConfigDescriptionParameter.Type.TEXT) - .withRequired(withRequiredParameter).build())); + .withRequired(withRequiredParameter).build()) + .build(); ConfigDescriptionProvider configDescriptionProvider = mock(ConfigDescriptionProvider.class); when(configDescriptionProvider.getConfigDescription(ArgumentMatchers.any(URI.class), diff --git a/itests/org.opensmarthouse.core.thing.tests/src/main/java/org/openhab/core/thing/binding/ChangeThingTypeOSGiTest.java b/itests/org.opensmarthouse.core.thing.tests/src/main/java/org/openhab/core/thing/binding/ChangeThingTypeOSGiTest.java index 080d5f76816..88570435027 100644 --- a/itests/org.opensmarthouse.core.thing.tests/src/main/java/org/openhab/core/thing/binding/ChangeThingTypeOSGiTest.java +++ b/itests/org.opensmarthouse.core.thing.tests/src/main/java/org/openhab/core/thing/binding/ChangeThingTypeOSGiTest.java @@ -30,6 +30,7 @@ import org.junit.Before; import org.junit.Test; import org.openhab.core.config.core.ConfigDescription; +import org.openhab.core.config.core.ConfigDescriptionBuilder; import org.openhab.core.config.core.ConfigDescriptionParameter; import org.openhab.core.config.core.ConfigDescriptionParameterBuilder; import org.openhab.core.config.core.ConfigDescriptionProvider; @@ -409,14 +410,17 @@ private ThingType registerThingTypeAndConfigDescription(ThingTypeUID thingTypeUI ThingType thingType = ThingTypeBuilder.instance(thingTypeUID, "label") .withChannelDefinitions(getChannelDefinitions(thingTypeUID)) .withConfigDescriptionURI(configDescriptionUri).withProperties(thingTypeProperties).build(); - ConfigDescription configDescription = new ConfigDescription(configDescriptionUri, - Arrays.asList( - ConfigDescriptionParameterBuilder - .create("parameter" + thingTypeUID.getId(), ConfigDescriptionParameter.Type.TEXT) - .withRequired(false).withDefault("default" + thingTypeUID.getId()).build(), - ConfigDescriptionParameterBuilder - .create("provided" + thingTypeUID.getId(), ConfigDescriptionParameter.Type.TEXT) - .withRequired(false).build())); + ConfigDescription configDescription = ConfigDescriptionBuilder.create(configDescriptionUri) + .withParameters( + Arrays.asList( + ConfigDescriptionParameterBuilder + .create("parameter" + thingTypeUID.getId(), + ConfigDescriptionParameter.Type.TEXT) + .withRequired(false).withDefault("default" + thingTypeUID.getId()).build(), + ConfigDescriptionParameterBuilder + .create("provided" + thingTypeUID.getId(), ConfigDescriptionParameter.Type.TEXT) + .withRequired(false).build())) + .build(); thingTypes.put(thingTypeUID, thingType); configDescriptions.put(configDescriptionUri, configDescription); diff --git a/itests/org.opensmarthouse.core.thing.tests/src/main/java/org/openhab/core/thing/binding/ThingFactoryTest.java b/itests/org.opensmarthouse.core.thing.tests/src/main/java/org/openhab/core/thing/binding/ThingFactoryTest.java index de6f7535693..c7fcadb704c 100644 --- a/itests/org.opensmarthouse.core.thing.tests/src/main/java/org/openhab/core/thing/binding/ThingFactoryTest.java +++ b/itests/org.opensmarthouse.core.thing.tests/src/main/java/org/openhab/core/thing/binding/ThingFactoryTest.java @@ -35,6 +35,7 @@ import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; import org.openhab.core.config.core.ConfigDescription; +import org.openhab.core.config.core.ConfigDescriptionBuilder; import org.openhab.core.config.core.ConfigDescriptionParameter; import org.openhab.core.config.core.ConfigDescriptionParameterBuilder; import org.openhab.core.config.core.ConfigDescriptionRegistry; @@ -138,11 +139,10 @@ public void createThingWithDefaultValues() throws Exception { @Override public ConfigDescription answer(InvocationOnMock invocation) throws Throwable { URI uri = (URI) invocation.getArgument(0); - List parameters = singletonList(ConfigDescriptionParameterBuilder + return ConfigDescriptionBuilder.create(uri).withParameter(ConfigDescriptionParameterBuilder .create("testProperty", ConfigDescriptionParameter.Type.TEXT).withContext("context") - .withDefault("default").withDescription("description").withLimitToOptions(true) - .build()); - return new ConfigDescription(uri, parameters); + .withDefault("default").withDescription("description").withLimitToOptions(true).build()) + .build(); } }); @@ -200,10 +200,8 @@ public ConfigDescription answer(InvocationOnMock invocation) throws Throwable { .withDefault("2.3,2.4,2.5").withLabel("label").withDescription("description") .withMultiple(true).withLimitToOptions(true).build(); - List parameters = Stream.of(p1, p2, p3, p4, p5, p6) - .collect(toList()); - - return new ConfigDescription(uri, parameters); + return ConfigDescriptionBuilder.create(uri) + .withParameters(Stream.of(p1, p2, p3, p4, p5, p6).collect(toList())).build(); } }); diff --git a/itests/org.opensmarthouse.core.thing.tests/src/main/java/org/openhab/core/thing/internal/ThingManagerOSGiJavaTest.java b/itests/org.opensmarthouse.core.thing.tests/src/main/java/org/openhab/core/thing/internal/ThingManagerOSGiJavaTest.java index 12a14656dd8..ed7cc3799e3 100644 --- a/itests/org.opensmarthouse.core.thing.tests/src/main/java/org/openhab/core/thing/internal/ThingManagerOSGiJavaTest.java +++ b/itests/org.opensmarthouse.core.thing.tests/src/main/java/org/openhab/core/thing/internal/ThingManagerOSGiJavaTest.java @@ -33,7 +33,7 @@ import org.junit.Test; import org.mockito.ArgumentMatchers; import org.openhab.core.common.SafeCaller; -import org.openhab.core.config.core.ConfigDescription; +import org.openhab.core.config.core.ConfigDescriptionBuilder; import org.openhab.core.config.core.ConfigDescriptionParameter; import org.openhab.core.config.core.ConfigDescriptionParameter.Type; import org.openhab.core.config.core.ConfigDescriptionParameterBuilder; @@ -324,20 +324,19 @@ public void handleCommand(ChannelUID channelUID, Command command) { }); ConfigDescriptionProvider mockConfigDescriptionProvider = mock(ConfigDescriptionProvider.class); - List parameters = Collections.singletonList( // - ConfigDescriptionParameterBuilder.create(CONFIG_PARAM_NAME, Type.TEXT).withRequired(true).build() // - ); + ConfigDescriptionParameter parameter = ConfigDescriptionParameterBuilder.create(CONFIG_PARAM_NAME, Type.TEXT) + .withRequired(true).build(); registerService(mockConfigDescriptionProvider, ConfigDescriptionProvider.class.getName()); // verify a missing mandatory thing config prevents it from getting initialized when(mockConfigDescriptionProvider.getConfigDescription(eq(configDescriptionThing), any())) - .thenReturn(new ConfigDescription(configDescriptionThing, parameters)); + .thenReturn(ConfigDescriptionBuilder.create(configDescriptionThing).withParameter(parameter).build()); assertThingStatus(Collections.emptyMap(), Collections.emptyMap(), ThingStatus.UNINITIALIZED, ThingStatusDetail.HANDLER_CONFIGURATION_PENDING); // verify a missing mandatory channel config prevents it from getting initialized when(mockConfigDescriptionProvider.getConfigDescription(eq(configDescriptionChannel), any())) - .thenReturn(new ConfigDescription(configDescriptionChannel, parameters)); + .thenReturn(ConfigDescriptionBuilder.create(configDescriptionChannel).withParameter(parameter).build()); assertThingStatus(Collections.singletonMap(CONFIG_PARAM_NAME, "value"), Collections.emptyMap(), ThingStatus.UNINITIALIZED, ThingStatusDetail.HANDLER_CONFIGURATION_PENDING); diff --git a/itests/org.opensmarthouse.core.thing.tests/src/main/java/org/openhab/core/thing/internal/ThingManagerOSGiTest.java b/itests/org.opensmarthouse.core.thing.tests/src/main/java/org/openhab/core/thing/internal/ThingManagerOSGiTest.java index 01aee3d3311..730b6bd5c9e 100644 --- a/itests/org.opensmarthouse.core.thing.tests/src/main/java/org/openhab/core/thing/internal/ThingManagerOSGiTest.java +++ b/itests/org.opensmarthouse.core.thing.tests/src/main/java/org/openhab/core/thing/internal/ThingManagerOSGiTest.java @@ -39,6 +39,7 @@ import org.mockito.stubbing.Answer; import org.openhab.core.common.registry.RegistryChangeListener; import org.openhab.core.config.core.ConfigDescription; +import org.openhab.core.config.core.ConfigDescriptionBuilder; import org.openhab.core.config.core.ConfigDescriptionParameter; import org.openhab.core.config.core.ConfigDescriptionParameterBuilder; import org.openhab.core.config.core.ConfigDescriptionProvider; @@ -1994,10 +1995,11 @@ private void registerThingTypeProvider() { } private void registerConfigDescriptionProvider(boolean withRequiredParameter) { - ConfigDescription configDescription = new ConfigDescription(configDescriptionUri(), - singletonList( + ConfigDescription configDescription = ConfigDescriptionBuilder.create(configDescriptionUri()) + .withParameter( ConfigDescriptionParameterBuilder.create("parameter", ConfigDescriptionParameter.Type.TEXT) - .withRequired(withRequiredParameter).build())); + .withRequired(withRequiredParameter).build()) + .build(); ConfigDescriptionProvider configDescriptionProvider = mock(ConfigDescriptionProvider.class); when(configDescriptionProvider.getConfigDescription(any(URI.class), nullable(Locale.class)))