Skip to content

Commit 98893fc

Browse files
committed
fix dependent annotations
Signed-off-by: Mark Herwege <mark.herwege@telenet.be>
1 parent 2d918d9 commit 98893fc

46 files changed

Lines changed: 178 additions & 131 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

bundles/org.openhab.core.automation.module.script/src/test/java/org/openhab/core/automation/module/script/profile/ScriptProfileTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import java.util.Map;
2323

2424
import org.eclipse.jdt.annotation.NonNullByDefault;
25+
import org.eclipse.jdt.annotation.Nullable;
2526
import org.junit.jupiter.api.BeforeEach;
2627
import org.junit.jupiter.api.Test;
2728
import org.junit.jupiter.api.extension.ExtendWith;
@@ -363,7 +364,7 @@ private TimeSeries replaceTimeSeries(TimeSeries timeSeries, State state) {
363364
}
364365

365366
private static class ProfileContextBuilder {
366-
private final Map<String, Object> configuration = new HashMap<>();
367+
private final Map<String, @Nullable Object> configuration = new HashMap<>();
367368
private List<Class<? extends State>> acceptedDataTypes = List.of();
368369
private List<Class<? extends Command>> acceptedCommandTypes = List.of();
369370
private List<Class<? extends Command>> handlerAcceptedCommandTypes = List.of();

bundles/org.openhab.core.automation/src/main/java/org/openhab/core/automation/dto/RuleDTOMapper.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
*/
1313
package org.openhab.core.automation.dto;
1414

15+
import java.util.HashMap;
16+
1517
import org.eclipse.jdt.annotation.NonNullByDefault;
1618
import org.openhab.core.automation.Rule;
1719
import org.openhab.core.automation.Rule.TemplateState;
@@ -38,7 +40,7 @@ public static Rule map(final RuleDTO ruleDto) {
3840
RuleBuilder builder = RuleBuilder.create(ruleDto.uid).withActions(ActionDTOMapper.mapDto(ruleDto.actions))
3941
.withConditions(ConditionDTOMapper.mapDto(ruleDto.conditions))
4042
.withTriggers(TriggerDTOMapper.mapDto(ruleDto.triggers))
41-
.withConfiguration(new Configuration(ruleDto.configuration))
43+
.withConfiguration(new Configuration(new HashMap<>(ruleDto.configuration)))
4244
.withConfigurationDescriptions(ConfigDescriptionDTOMapper.map(ruleDto.configDescriptions))
4345
.withTemplateUID(ruleDto.templateUID).withVisibility(ruleDto.visibility).withTags(ruleDto.tags)
4446
.withName(ruleDto.name).withDescription(ruleDto.description);
@@ -54,7 +56,12 @@ protected static void fillProperties(final Rule from, final RuleDTO to) {
5456
to.triggers = TriggerDTOMapper.map(from.getTriggers());
5557
to.conditions = ConditionDTOMapper.map(from.getConditions());
5658
to.actions = ActionDTOMapper.map(from.getActions());
57-
to.configuration = from.getConfiguration().getProperties();
59+
to.configuration = new HashMap<>();
60+
from.getConfiguration().getProperties().forEach((k, v) -> {
61+
if (v != null) {
62+
to.configuration.put(k, v);
63+
}
64+
});
5865
to.configDescriptions = ConfigDescriptionDTOMapper.mapParameters(from.getConfigurationDescriptions());
5966
to.templateUID = from.getTemplateUID();
6067
to.templateState = from.getTemplateState().toString();

bundles/org.openhab.core.automation/src/main/java/org/openhab/core/automation/internal/RuleRegistryImpl.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import org.openhab.core.automation.RuleProvider;
3434
import org.openhab.core.automation.RuleRegistry;
3535
import org.openhab.core.automation.RuleStatus;
36+
import org.openhab.core.automation.RuleStatusDetail;
3637
import org.openhab.core.automation.RuleStatusInfo;
3738
import org.openhab.core.automation.Trigger;
3839
import org.openhab.core.automation.internal.template.RuleTemplateRegistry;
@@ -490,7 +491,7 @@ private void resolveConfigurations(Rule rule) throws IllegalArgumentException {
490491
Configuration configuration = rule.getConfiguration();
491492
ConfigurationNormalizer.normalizeConfiguration(configuration,
492493
ConfigurationNormalizer.getConfigDescriptionMap(configDescriptions));
493-
Map<String, Object> configurationProperties = configuration.getProperties();
494+
Map<String, @Nullable Object> configurationProperties = configuration.getProperties();
494495
TemplateState templateState = rule.getTemplateState();
495496
if (templateState == TemplateState.INSTANTIATED || templateState == TemplateState.NO_TEMPLATE) {
496497
String uid = rule.getUID();
@@ -513,8 +514,8 @@ private void resolveConfigurations(Rule rule) throws IllegalArgumentException {
513514
* @throws IllegalArgumentException If a required configuration property is missing.
514515
*/
515516
private void validateConfiguration(List<ConfigDescriptionParameter> configDescriptions,
516-
Map<String, Object> configuration) throws IllegalArgumentException {
517-
Map<String, Object> config = configuration == null ? new HashMap<>() : new HashMap<>(configuration);
517+
Map<String, @Nullable Object> configuration) throws IllegalArgumentException {
518+
Map<String, @Nullable Object> config = new HashMap<>(configuration);
518519
if (config.isEmpty()) {
519520
if (isOptionalConfig(configDescriptions)) {
520521
return;

bundles/org.openhab.core.automation/src/main/java/org/openhab/core/automation/internal/composite/AbstractCompositeModuleHandler.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,11 @@ protected AbstractCompositeModuleHandler(M module, MT moduleType,
8282
*/
8383
protected Map<String, Object> getCompositeContext(Map<String, ?> context) {
8484
Map<String, Object> result = new HashMap<>(context);
85-
result.putAll(module.getConfiguration().getProperties());
85+
module.getConfiguration().getProperties().forEach((k, v) -> {
86+
if (v != null) {
87+
result.putIfAbsent(k, v);
88+
}
89+
});
8690
return result;
8791
}
8892

bundles/org.openhab.core.automation/src/test/java/org/openhab/core/automation/util/ReferenceResolverUtilTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public class ReferenceResolverUtilTest {
3838
private static final String CONTEXT_PROPERTY4 = "contextProperty4";
3939

4040
private static final Map<String, Object> CONTEXT = new HashMap<>();
41-
private static final Map<String, Object> MODULE_CONFIGURATION = new HashMap<>();
41+
private static final Map<String, @Nullable Object> MODULE_CONFIGURATION = new HashMap<>();
4242
private static final Map<String, @Nullable Object> EXPECTED_MODULE_CONFIGURATION = new HashMap<>();
4343
private static final Map<String, String> COMPOSITE_CHILD_MODULE_INPUTS_REFERENCES = new HashMap<>();
4444
private static final Map<String, @Nullable Object> EXPECTED_COMPOSITE_CHILD_MODULE_CONTEXT = new HashMap<>();

bundles/org.openhab.core.config.core/src/main/java/org/openhab/core/config/core/internal/validation/ConfigDescriptionValidatorImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ public ConfigDescriptionValidatorImpl(final BundleContext bundleContext,
8686
*/
8787
@Override
8888
@SuppressWarnings({ "unchecked", "null" })
89-
public void validate(Map<String, Object> configurationParameters, URI configDescriptionURI) {
89+
public void validate(Map<String, @Nullable Object> configurationParameters, URI configDescriptionURI) {
9090
Objects.requireNonNull(configurationParameters, "Configuration parameters must not be null");
9191
Objects.requireNonNull(configDescriptionURI, "Config description URI must not be null");
9292

bundles/org.openhab.core.config.core/src/main/java/org/openhab/core/config/core/validation/ConfigDescriptionValidator.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import java.util.Map;
1717

1818
import org.eclipse.jdt.annotation.NonNullByDefault;
19+
import org.eclipse.jdt.annotation.Nullable;
1920
import org.openhab.core.config.core.ConfigDescription;
2021
import org.openhab.core.config.core.Configuration;
2122

@@ -41,5 +42,5 @@ public interface ConfigDescriptionValidator {
4142
* description having the given URI
4243
* @throws NullPointerException if given config description URI or configuration parameters are null
4344
*/
44-
void validate(Map<String, Object> configurationParameters, URI configDescriptionURI);
45+
void validate(Map<String, @Nullable Object> configurationParameters, URI configDescriptionURI);
4546
}

bundles/org.openhab.core.config.discovery/src/test/java/org/openhab/core/config/discovery/internal/PersistentInboxTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import static org.hamcrest.MatcherAssert.assertThat;
1616
import static org.hamcrest.collection.IsMapContaining.hasEntry;
1717
import static org.junit.jupiter.api.Assertions.*;
18+
import static org.mockito.ArgumentMatchers.*;
1819
import static org.mockito.Mockito.*;
1920

2021
import java.net.URI;
@@ -106,7 +107,7 @@ public void setup() {
106107

107108
@Test
108109
public void testConfigUpdateNormalizationWithConfigDescription() throws URISyntaxException {
109-
Map<String, Object> props = Map.of("foo", "1");
110+
Map<String, @Nullable Object> props = Map.of("foo", "1");
110111
Configuration config = new Configuration(props);
111112
Thing thing = ThingBuilder.create(THING_TYPE_UID, THING_UID).withConfiguration(config).build();
112113
configureConfigDescriptionRegistryMock("foo", Type.TEXT);

bundles/org.openhab.core.io.rest.core/src/main/java/org/openhab/core/io/rest/core/fileformat/FileFormatItemDTOMapper.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
import java.util.ArrayList;
1616
import java.util.Collection;
17+
import java.util.HashMap;
1718
import java.util.LinkedHashMap;
1819
import java.util.List;
1920
import java.util.Map;
@@ -73,9 +74,14 @@ public static FileFormatItemDTO map(Item item, Collection<Metadata> metadata, @N
7374
List<FileFormatChannelLinkDTO> channelLinksDTO = new ArrayList<>();
7475
channelLinks.forEach(link -> {
7576
if (item.getName().equals(link.getItemName())) {
77+
Map<String, Object> config = new HashMap<>();
78+
link.getConfiguration().getProperties().forEach((k, v) -> {
79+
if (v != null) {
80+
config.put(k, v);
81+
}
82+
});
7683
channelLinksDTO.add(new FileFormatChannelLinkDTO(link.getLinkedUID().getAsString(),
77-
link.getConfiguration().getProperties().isEmpty() ? null
78-
: link.getConfiguration().getProperties()));
84+
link.getConfiguration().getProperties().isEmpty() ? null : config));
7985
}
8086
});
8187
if (!channelLinksDTO.isEmpty()) {

bundles/org.openhab.core.io.rest.core/src/main/java/org/openhab/core/io/rest/core/internal/fileformat/FileFormatResource.java

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -901,8 +901,13 @@ private Collection<Metadata> getMetadata(Collection<Item> items) {
901901
});
902902
itemChannelLinkRegistry.getLinks(itemName).forEach(link -> {
903903
MetadataKey key = new MetadataKey("channel", itemName);
904-
Metadata md = new Metadata(key, link.getLinkedUID().getAsString(),
905-
link.getConfiguration().getProperties());
904+
Map<String, Object> config = new HashMap<>();
905+
link.getConfiguration().getProperties().forEach((k, v) -> {
906+
if (v != null) {
907+
config.put(k, v);
908+
}
909+
});
910+
Metadata md = new Metadata(key, link.getLinkedUID().getAsString(), config);
906911
metadata.add(md);
907912
});
908913
}
@@ -1012,7 +1017,7 @@ private void fillThingTree(List<Thing> things, Thing thing) {
10121017
* Create a thing from a discovery result without inserting it in the thing registry
10131018
*/
10141019
private Thing simulateThing(DiscoveryResult result, ThingType thingType) {
1015-
Map<String, Object> configParams = new HashMap<>();
1020+
Map<String, @Nullable Object> configParams = new HashMap<>();
10161021
List<ConfigDescriptionParameter> configDescriptionParameters = List.of();
10171022
URI descURI = thingType.getConfigDescriptionURI();
10181023
if (descURI != null) {
@@ -1340,7 +1345,7 @@ private ExtendedFileFormatDTO convertToFileFormatDTO(Collection<SemanticTag> tag
13401345

13411346
private @Nullable Map<String, @Nullable Object> normalizeConfiguration(Map<String, @Nullable Object> properties,
13421347
ChannelTypeUID channelTypeUID, ChannelUID channelUID) {
1343-
if (properties == null || properties.isEmpty()) {
1348+
if (properties.isEmpty()) {
13441349
return properties;
13451350
}
13461351

@@ -1357,12 +1362,10 @@ private ExtendedFileFormatDTO convertToFileFormatDTO(Collection<SemanticTag> tag
13571362
configDescriptions.add(typeConfigDesc);
13581363
}
13591364
}
1360-
if (getConfigDescriptionURI(channelUID) != null) {
1361-
ConfigDescription channelConfigDesc = configDescRegistry
1362-
.getConfigDescription(getConfigDescriptionURI(channelUID));
1363-
if (channelConfigDesc != null) {
1364-
configDescriptions.add(channelConfigDesc);
1365-
}
1365+
ConfigDescription channelConfigDesc = configDescRegistry
1366+
.getConfigDescription(getConfigDescriptionURI(channelUID));
1367+
if (channelConfigDesc != null) {
1368+
configDescriptions.add(channelConfigDesc);
13661369
}
13671370

13681371
if (configDescriptions.isEmpty()) {

0 commit comments

Comments
 (0)