Skip to content

Commit

Permalink
Removed deprecated constructors and methods from Config API (openhab#…
Browse files Browse the repository at this point in the history
…1448)

Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
  • Loading branch information
cweitkamp authored May 20, 2020
1 parent bd976cf commit 3eb93bf
Show file tree
Hide file tree
Showing 28 changed files with 204 additions and 234 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,49 +51,17 @@ public class ConfigDescription implements Identifiable<URI> {
private final List<ConfigDescriptionParameter> parameters;
private final List<ConfigDescriptionParameterGroup> 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<ConfigDescriptionParameter> 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<ConfigDescriptionParameter> parameters,
ConfigDescription(URI uri, @Nullable List<ConfigDescriptionParameter> parameters,
@Nullable List<ConfigDescriptionParameterGroup> groups) {
if (uri == null) {
throw new IllegalArgumentException("The URI must not be null!");
Expand All @@ -106,25 +74,15 @@ public ConfigDescription(@Nullable URI uri, @Nullable List<ConfigDescriptionPara
}

this.uri = uri;

if (parameters != null) {
this.parameters = Collections.unmodifiableList(parameters);
} else {
this.parameters = Collections.emptyList();
}

if (groups != null) {
this.parameterGroups = Collections.unmodifiableList(groups);
} else {
this.parameterGroups = Collections.emptyList();
}
this.parameters = parameters == null ? Collections.emptyList() : Collections.unmodifiableList(parameters);
this.parameterGroups = groups == null ? Collections.emptyList() : Collections.unmodifiableList(groups);
}

/**
* Returns the URI of this description within the {@link ConfigDescriptionRegistry}.
* The URI follows the syntax {@code '<scheme>:<token>[:<token>]'} (e.g. {@code "binding:hue:bridge"}).
*
* @return the URI of this description (not null)
* @return the URI of this description
*/
@Override
public URI getUID() {
Expand All @@ -136,7 +94,7 @@ public URI getUID() {
* <p>
* 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<ConfigDescriptionParameter> getParameters() {
return parameters;
Expand All @@ -147,7 +105,7 @@ public List<ConfigDescriptionParameter> 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<String, ConfigDescriptionParameter> toParametersMap() {
Map<String, ConfigDescriptionParameter> map = new HashMap<>();
Expand All @@ -162,7 +120,7 @@ public Map<String, ConfigDescriptionParameter> toParametersMap() {
* <p>
* 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<ConfigDescriptionParameterGroup> getParameterGroups() {
return parameterGroups;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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.
*
Expand Down Expand Up @@ -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)</li>
* </ul>
* @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<ParameterOption> options, List<FilterCriteria> filterCriteria,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ protected void removeConfigDescriptionAliasProvider(ConfigDescriptionAliasProvid
* @return all config descriptions or an empty collection if no config
* description exists
*/
public Collection<ConfigDescription> getConfigDescriptions(Locale locale) {
public Collection<ConfigDescription> getConfigDescriptions(@Nullable Locale locale) {
Map<URI, ConfigDescription> configMap = new HashMap<>();

// Loop over all providers
Expand All @@ -126,7 +126,8 @@ public Collection<ConfigDescription> 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);
Expand Down Expand Up @@ -169,7 +170,7 @@ public Collection<ConfigDescription> 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<ConfigDescriptionParameter> parameters = new ArrayList<>();
List<ConfigDescriptionParameterGroup> parameterGroups = new ArrayList<>();

Expand All @@ -189,7 +190,8 @@ public Collection<ConfigDescription> 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;
Expand All @@ -207,7 +209,7 @@ private Set<URI> getAliases(URI original) {
return ret;
}

private boolean fillFromProviders(URI uri, Locale locale, List<ConfigDescriptionParameter> parameters,
private boolean fillFromProviders(URI uri, @Nullable Locale locale, List<ConfigDescriptionParameter> parameters,
List<ConfigDescriptionParameterGroup> parameterGroups) {
boolean found = false;
for (ConfigDescriptionProvider configDescriptionProvider : this.configDescriptionProviders) {
Expand Down Expand Up @@ -271,20 +273,35 @@ private ConfigDescriptionParameter getConfigOptions(URI uri, Set<URI> 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<ParameterOption> options) {
boolean found = false;
for (ConfigOptionProvider configOptionProvider : this.configOptionProviders) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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();
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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;
Expand Down Expand Up @@ -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,
Expand All @@ -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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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());
Expand Down
Loading

0 comments on commit 3eb93bf

Please sign in to comment.