Remove Map null annotation workarounds (#8916)

These workarounds to prevent false positives can be removed now the EEAs allow for proper null analysis.

Signed-off-by: Wouter Born <github@maindrain.net>
This commit is contained in:
Wouter Born 2020-11-04 13:57:24 +01:00 committed by GitHub
parent 1dccf67909
commit b423f93b1f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
124 changed files with 315 additions and 387 deletions

View File

@ -63,13 +63,13 @@ public class AirQualityDiscoveryService extends AbstractDiscoveryService {
}
@Override
protected void activate(@Nullable Map<String, @Nullable Object> configProperties) {
protected void activate(@Nullable Map<String, Object> configProperties) {
super.activate(configProperties);
}
@Override
@Modified
protected void modified(@Nullable Map<String, @Nullable Object> configProperties) {
protected void modified(@Nullable Map<String, Object> configProperties) {
super.modified(configProperties);
}

View File

@ -19,7 +19,6 @@ import java.util.Map;
import java.util.stream.Collectors;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
/**
* The {@link AirQualityJsonData} is responsible for storing
@ -36,7 +35,7 @@ public class AirQualityJsonData {
private @NonNullByDefault({}) AirQualityJsonTime time;
private @NonNullByDefault({}) AirQualityJsonCity city;
private List<Attribute> attributions = new ArrayList<>();
private Map<String, @Nullable AirQualityValue> iaqi = new HashMap<>();
private Map<String, AirQualityValue> iaqi = new HashMap<>();
private String dominentpol = "";
/**

View File

@ -76,7 +76,7 @@ public class AlarmDecoderHandlerFactory extends BaseThingHandlerFactory {
return SUPPORTED_THING_TYPES_UIDS.contains(thingTypeUID);
}
private final Map<ThingUID, @Nullable ServiceRegistration<?>> discoveryServiceRegMap = new HashMap<>();
private final Map<ThingUID, ServiceRegistration<?>> discoveryServiceRegMap = new HashMap<>();
// Marked as Nullable only to fix incorrect redundant null check complaints from null annotations
@Override

View File

@ -13,6 +13,7 @@
package org.openhab.binding.alarmdecoder.internal.protocol;
import java.util.HashMap;
import java.util.Map;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
@ -34,7 +35,7 @@ public enum ADMsgType {
INVALID; // invalid message
/** hash map from protocol message heading to type */
private static HashMap<String, @Nullable ADMsgType> startToMsgType = new HashMap<>();
private static Map<String, ADMsgType> startToMsgType = new HashMap<>();
static {
startToMsgType.put("!REL", ADMsgType.REL);

View File

@ -499,8 +499,7 @@ public class AccountServlet extends HttpServlet {
html.append("<table><tr><th align='left'>Name</th><th align='left'>Value</th></tr>");
List<JsonMusicProvider> musicProviders = connection.getMusicProviders();
for (JsonMusicProvider musicProvider : musicProviders) {
@Nullable
List<@Nullable String> properties = musicProvider.supportedProperties;
List<String> properties = musicProvider.supportedProperties;
String providerId = musicProvider.id;
String displayName = musicProvider.displayName;
if (properties != null && properties.contains("Alexa.Music.PlaySearchPhrase")
@ -557,7 +556,7 @@ public class AccountServlet extends HttpServlet {
}
if (playLists != null) {
Map<String, @Nullable PlayList @Nullable []> playlistMap = playLists.playlists;
Map<String, PlayList @Nullable []> playlistMap = playLists.playlists;
if (playlistMap != null && !playlistMap.isEmpty()) {
html.append("<table><tr><th align='left'>Name</th><th align='left'>Value</th></tr>");

View File

@ -12,10 +12,7 @@
*/
package org.openhab.binding.amazonechocontrol.internal;
import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.SUPPORTED_ECHO_THING_TYPES_UIDS;
import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.SUPPORTED_SMART_HOME_THING_TYPES_UIDS;
import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.THING_TYPE_ACCOUNT;
import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.THING_TYPE_FLASH_BRIEFING_PROFILE;
import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.*;
import java.util.ArrayList;
import java.util.HashMap;
@ -66,7 +63,7 @@ import com.google.gson.Gson;
@NonNullByDefault
public class AmazonEchoControlHandlerFactory extends BaseThingHandlerFactory {
private final Logger logger = LoggerFactory.getLogger(AmazonEchoControlHandlerFactory.class);
private final Map<ThingUID, @Nullable List<ServiceRegistration<?>>> discoveryServiceRegistrations = new HashMap<>();
private final Map<ThingUID, List<ServiceRegistration<?>>> discoveryServiceRegistrations = new HashMap<>();
private final Set<AccountHandler> accountHandlers = new HashSet<>();
private final HttpService httpService;

View File

@ -12,14 +12,7 @@
*/
package org.openhab.binding.amazonechocontrol.internal;
import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.BINDING_ID;
import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_TYPE_AMAZON_MUSIC_PLAY_LIST_ID;
import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_TYPE_BLUETHOOTH_MAC;
import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_TYPE_CHANNEL_PLAY_ON_DEVICE;
import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_TYPE_MUSIC_PROVIDER_ID;
import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_TYPE_PLAY_ALARM_SOUND;
import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_TYPE_START_COMMAND;
import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.FLASH_BRIEFING_COMMAND_PREFIX;
import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.*;
import java.util.ArrayList;
import java.util.Arrays;
@ -119,7 +112,7 @@ public class AmazonEchoDynamicStateDescriptionProvider implements DynamicStateDe
return null;
}
ArrayList<StateOption> options = new ArrayList<>();
List<StateOption> options = new ArrayList<>();
options.add(new StateOption("", ""));
for (PairedDevice device : pairedDeviceList) {
if (device == null) {
@ -144,10 +137,9 @@ public class AmazonEchoDynamicStateDescriptionProvider implements DynamicStateDe
return null;
}
ArrayList<StateOption> options = new ArrayList<>();
List<StateOption> options = new ArrayList<>();
options.add(new StateOption("", ""));
@Nullable
Map<String, @Nullable PlayList @Nullable []> playlistMap = playLists.playlists;
Map<String, PlayList @Nullable []> playlistMap = playLists.playlists;
if (playlistMap != null) {
for (PlayList[] innerLists : playlistMap.values()) {
if (innerLists != null && innerLists.length > 0) {
@ -174,7 +166,7 @@ public class AmazonEchoDynamicStateDescriptionProvider implements DynamicStateDe
return null;
}
ArrayList<StateOption> options = new ArrayList<>();
List<StateOption> options = new ArrayList<>();
options.add(new StateOption("", ""));
for (JsonNotificationSound notificationSound : notificationSounds) {
@ -202,7 +194,7 @@ public class AmazonEchoDynamicStateDescriptionProvider implements DynamicStateDe
return null;
}
ArrayList<StateOption> options = new ArrayList<>();
List<StateOption> options = new ArrayList<>();
options.add(new StateOption("", ""));
for (Device device : devices) {
final String value = device.serialNumber;
@ -223,10 +215,9 @@ public class AmazonEchoDynamicStateDescriptionProvider implements DynamicStateDe
return null;
}
ArrayList<StateOption> options = new ArrayList<>();
List<StateOption> options = new ArrayList<>();
for (JsonMusicProvider musicProvider : musicProviders) {
@Nullable
List<@Nullable String> properties = musicProvider.supportedProperties;
List<String> properties = musicProvider.supportedProperties;
String providerId = musicProvider.id;
String displayName = musicProvider.displayName;
if (properties != null && properties.contains("Alexa.Music.PlaySearchPhrase")
@ -252,7 +243,7 @@ public class AmazonEchoDynamicStateDescriptionProvider implements DynamicStateDe
return null;
}
ArrayList<StateOption> options = new ArrayList<>();
List<StateOption> options = new ArrayList<>();
options.addAll(originalStateDescription.getOptions());
for (FlashBriefingProfileHandler flashBriefing : flashbriefings) {

View File

@ -1490,7 +1490,7 @@ public class Connection {
JsonArray ttsVolumeNodesToExecute = new JsonArray();
for (int i = 0; i < devices.length; i++) {
if (ttsVolumes[i] != null && (standardVolumes == null || !ttsVolumes[i].equals(standardVolumes[i]))) {
Map<String, @Nullable Object> volumeParameters = new HashMap<>();
Map<String, Object> volumeParameters = new HashMap<>();
volumeParameters.put("value", ttsVolumes[i]);
ttsVolumeNodesToExecute
.add(createExecutionNode(devices[i], "Alexa.DeviceControls.Volume", volumeParameters));

View File

@ -122,7 +122,7 @@ public class AmazonEchoDiscovery extends AbstractDiscoveryService {
@Override
@Activate
public void activate(@Nullable Map<String, @Nullable Object> config) {
public void activate(@Nullable Map<String, Object> config) {
super.activate(config);
if (config != null) {
modified(config);

View File

@ -12,10 +12,7 @@
*/
package org.openhab.binding.amazonechocontrol.internal.discovery;
import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.DEVICE_PROPERTY_ID;
import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.SUPPORTED_SMART_HOME_THING_TYPES_UIDS;
import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.THING_TYPE_SMART_HOME_DEVICE;
import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.THING_TYPE_SMART_HOME_DEVICE_GROUP;
import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.*;
import java.util.Date;
import java.util.HashMap;
@ -63,7 +60,7 @@ public class SmartHomeDevicesDiscovery extends AbstractDiscoveryService {
}
public void activate() {
activate(new Hashtable<String, @Nullable Object>());
activate(new Hashtable<String, Object>());
}
@Override
@ -123,7 +120,7 @@ public class SmartHomeDevicesDiscovery extends AbstractDiscoveryService {
@Override
@Activate
public void activate(@Nullable Map<String, @Nullable Object> config) {
public void activate(@Nullable Map<String, Object> config) {
super.activate(config);
if (config != null) {
modified(config);

View File

@ -70,8 +70,8 @@ public class SmartHomeDeviceHandler extends BaseThingHandler {
private @Nullable SmartHomeBaseDevice smartHomeBaseDevice;
private final Gson gson;
private final Map<String, @Nullable HandlerBase> handlers = new HashMap<>();
private final Map<String, @Nullable JsonArray> lastStates = new HashMap<>();
private final Map<String, HandlerBase> handlers = new HashMap<>();
private final Map<String, JsonArray> lastStates = new HashMap<>();
public SmartHomeDeviceHandler(Thing thing, Gson gson) {
super(thing);

View File

@ -27,7 +27,7 @@ public class JsonAutomation {
public @Nullable String automationId;
public @Nullable String name;
public @Nullable Trigger @Nullable [] triggers;
public @Nullable TreeMap<String, @Nullable Object> sequence;
public @Nullable TreeMap<String, Object> sequence;
public @Nullable String status;
public long creationTimeEpochMillis;
public long lastUpdatedTimeEpochMillis;

View File

@ -25,9 +25,9 @@ import org.eclipse.jdt.annotation.Nullable;
@NonNullByDefault
public class JsonMusicProvider {
public @Nullable String displayName;
public @Nullable List<@Nullable Object> @Nullable [] supportedTriggers;
public @Nullable List<Object> @Nullable [] supportedTriggers;
public @Nullable String icon;
public @Nullable List<@Nullable String> supportedProperties;
public @Nullable List<String> supportedProperties;
public @Nullable String id;
public @Nullable String availability;
public @Nullable String description;

View File

@ -25,7 +25,7 @@ import org.eclipse.jdt.annotation.Nullable;
@NonNullByDefault
public class JsonPlaylists {
public @Nullable Map<String, @Nullable PlayList @Nullable []> playlists;
public @Nullable Map<String, PlayList @Nullable []> playlists;
public static class PlayList {
public @Nullable String playlistId;

View File

@ -18,7 +18,6 @@ import java.util.Set;
import java.util.function.Supplier;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants;
import org.openhab.core.thing.type.ChannelTypeUID;
@ -27,7 +26,7 @@ import org.openhab.core.thing.type.ChannelTypeUID;
*/
@NonNullByDefault
public class Constants {
public static final Map<String, @Nullable Supplier<HandlerBase>> HANDLER_FACTORY = new HashMap<>();
public static final Map<String, Supplier<HandlerBase>> HANDLER_FACTORY = new HashMap<>();
static {
HANDLER_FACTORY.put(HandlerPowerController.INTERFACE, HandlerPowerController::new);

View File

@ -64,7 +64,7 @@ public class AstroDiscoveryService extends AbstractDiscoveryService {
@Activate
public AstroDiscoveryService(final @Reference LocationProvider locationProvider,
final @Reference LocaleProvider localeProvider, final @Reference TranslationProvider i18nProvider,
@Nullable Map<String, @Nullable Object> configProperties) {
@Nullable Map<String, Object> configProperties) {
super(new HashSet<>(Arrays.asList(new ThingTypeUID(BINDING_ID, "-"))), DISCOVER_TIMEOUT_SECONDS, true);
this.locationProvider = locationProvider;
this.localeProvider = localeProvider;

View File

@ -48,7 +48,7 @@ public class BlueZHandlerFactory extends BaseThingHandlerFactory {
private static final Set<ThingTypeUID> SUPPORTED_THING_TYPES_UIDS = Collections
.singleton(BlueZAdapterConstants.THING_TYPE_BLUEZ);
private final Map<ThingUID, @Nullable ServiceRegistration<?>> serviceRegs = new HashMap<>();
private final Map<ThingUID, ServiceRegistration<?>> serviceRegs = new HashMap<>();
private final DeviceManagerFactory deviceManagerFactory;

View File

@ -42,7 +42,7 @@ import org.osgi.service.component.annotations.Component;
@Component(configurationPid = "binding.roaming", service = ThingHandlerFactory.class)
public class RoamingHandlerFactory extends BaseThingHandlerFactory {
private final Map<ThingUID, @Nullable ServiceRegistration<?>> serviceRegs = new HashMap<>();
private final Map<ThingUID, ServiceRegistration<?>> serviceRegs = new HashMap<>();
@Override
public boolean supportsThingType(ThingTypeUID thingTypeUID) {

View File

@ -75,14 +75,14 @@ public class BluetoothDiscoveryService extends AbstractDiscoveryService implemen
@Override
@Activate
protected void activate(@Nullable Map<String, @Nullable Object> configProperties) {
protected void activate(@Nullable Map<String, Object> configProperties) {
logger.debug("Activating Bluetooth discovery service");
super.activate(configProperties);
}
@Override
@Modified
protected void modified(@Nullable Map<String, @Nullable Object> configProperties) {
protected void modified(@Nullable Map<String, Object> configProperties) {
super.modified(configProperties);
}
@ -170,7 +170,7 @@ public class BluetoothDiscoveryService extends AbstractDiscoveryService implemen
private class DiscoveryCache {
private final Map<BluetoothAdapter, SnapshotFuture> discoveryFutures = new HashMap<>();
private final Map<BluetoothAdapter, @Nullable Set<DiscoveryResult>> discoveryResults = new ConcurrentHashMap<>();
private final Map<BluetoothAdapter, Set<DiscoveryResult>> discoveryResults = new ConcurrentHashMap<>();
private @Nullable BluetoothDeviceSnapshot latestSnapshot;

View File

@ -73,7 +73,7 @@ public class SmartherModuleDiscoveryService extends AbstractDiscoveryService
@Override
public void activate() {
logger.debug("Bridge[{}] Activating chronothermostat discovery service", this.bridgeUID);
Map<String, @Nullable Object> properties = new HashMap<>();
Map<String, Object> properties = new HashMap<>();
properties.put(DiscoveryService.CONFIG_PROPERTY_BACKGROUND_DISCOVERY, Boolean.TRUE);
super.activate(properties);
}

View File

@ -28,28 +28,22 @@ import com.daveoxley.cbus.CGateThreadPoolExecutor;
*
* @author John Harvey - Initial contribution
*/
@NonNullByDefault
public class CBusThreadPool extends CGateThreadPool {
private final Map<String, @Nullable CGateThreadPoolExecutor> executorMap = new HashMap<>();
private final Map<String, CGateThreadPoolExecutor> executorMap = new HashMap<>();
@Override
protected synchronized CGateThreadPoolExecutor CreateExecutor(@Nullable String name) {
if (name == null || name.isEmpty()) {
name = "_default";
String nullSafeName = name == null || name.isEmpty() ? "_default" : name;
CGateThreadPoolExecutor executor = executorMap.get(nullSafeName);
if (executor == null) {
executor = new CBusThreadPoolExecutor(nullSafeName);
executorMap.put(nullSafeName, executor);
}
@Nullable
CGateThreadPoolExecutor executor = executorMap.get(name);
if (executor != null) {
return executor;
}
CGateThreadPoolExecutor newExecutor = new CBusThreadPoolExecutor(name);
executorMap.put(name, newExecutor);
return newExecutor;
return executor;
}
@NonNullByDefault
public class CBusThreadPoolExecutor extends CGateThreadPoolExecutor {
private final ThreadPoolExecutor threadPool;

View File

@ -53,14 +53,14 @@ public class HVACHandler extends BaseThingHandler {
* speed, but the protocol's fan command (and matching binding command) use
* single-letter abbreviations.
*/
private static final Map<String, @Nullable String> FAN_NUM_TO_STR;
private static final Map<String, String> FAN_NUM_TO_STR;
/**
* The CoolMasterNet query command returns numbers 0-5 for operation modes,
* but these don't map to any mode you can set on the device, so we use this
* lookup table.
*/
private static final Map<String, @Nullable String> MODE_NUM_TO_STR;
private static final Map<String, String> MODE_NUM_TO_STR;
static {
FAN_NUM_TO_STR = new HashMap<>();

View File

@ -66,7 +66,7 @@ public class DarkSkyDiscoveryService extends AbstractDiscoveryService {
}
@Override
protected void activate(@Nullable Map<String, @Nullable Object> configProperties) {
protected void activate(@Nullable Map<String, Object> configProperties) {
super.activate(configProperties);
}

View File

@ -39,7 +39,7 @@ import org.xml.sax.SAXException;
/**
* The {@link Enigma2Client} class is responsible for communicating with the Enigma2 device.
*
*
* @see <a href=
* "https://github.com/E2OpenPlugins/e2openplugin-OpenWebif/wiki/OpenWebif-API-documentation">OpenWebif-API-documentation</a>
*
@ -65,7 +65,7 @@ public class Enigma2Client {
static final int TYPE_INFO = 1;
static final int TYPE_WARNING = 2;
static final int TYPE_ERROR = 3;
private final Map<String, @Nullable String> channels = new ConcurrentHashMap<>();
private final Map<String, String> channels = new ConcurrentHashMap<>();
private final String host;
private boolean power;
private String channel = "";
@ -342,7 +342,7 @@ public class Enigma2Client {
/**
* Getter for Test-Injection
*
*
* @return HttpGet.
*/
Enigma2HttpClient getEnigma2HttpClient() {

View File

@ -47,7 +47,7 @@ import org.osgi.service.component.annotations.Reference;
@NonNullByDefault
public class EvohomeHandlerFactory extends BaseThingHandlerFactory {
private final Map<ThingUID, @Nullable ServiceRegistration<?>> discoveryServiceRegs = new HashMap<>();
private final Map<ThingUID, ServiceRegistration<?>> discoveryServiceRegs = new HashMap<>();
private final HttpClient httpClient;

View File

@ -16,8 +16,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
import org.openhab.binding.freebox.internal.FreeboxBindingConstants;
import org.openhab.binding.freebox.internal.FreeboxDataListener;
import org.openhab.binding.freebox.internal.api.FreeboxException;
@ -73,7 +71,7 @@ public class FreeboxDiscoveryService extends AbstractDiscoveryService implements
}
@Override
public void activate(@Nullable Map<@NonNull String, @Nullable Object> configProperties) {
public void activate(Map<String, Object> configProperties) {
super.activate(configProperties);
applyConfig(configProperties);
bridgeHandler.registerDataListener(this);

View File

@ -83,7 +83,7 @@ public class Ipx800v3Handler extends BaseThingHandler implements Ipx800EventList
private @NonNullByDefault({}) StatusFileInterpreter statusFile;
private @Nullable ScheduledFuture<?> refreshJob;
private final Map<String, @Nullable PortData> portDatas = new HashMap<>();
private final Map<String, PortData> portDatas = new HashMap<>();
private class LongPressEvaluator implements Runnable {
private final ZonedDateTime referenceTime;
@ -147,9 +147,7 @@ public class Ipx800v3Handler extends BaseThingHandler implements Ipx800EventList
parser = null;
portDatas.values().stream().forEach(portData -> {
if (portData != null) {
portData.destroy();
}
portData.destroy();
});
super.dispose();
}

View File

@ -104,13 +104,13 @@ public class TrackerDiscoveryService extends AbstractDiscoveryService {
@Override
@Activate
protected void activate(@Nullable Map<String, @Nullable Object> configProperties) {
protected void activate(@Nullable Map<String, Object> configProperties) {
super.activate(configProperties);
}
@Override
@Modified
protected void modified(@Nullable Map<String, @Nullable Object> configProperties) {
protected void modified(@Nullable Map<String, Object> configProperties) {
super.modified(configProperties);
}

View File

@ -58,8 +58,7 @@ public class GreeDiscoveryService extends AbstractDiscoveryService {
@Activate
public GreeDiscoveryService(@Reference GreeDeviceFinder deviceFinder,
@Reference NetworkAddressService networkAddressService,
@Reference GreeTranslationProvider translationProvider,
@Nullable Map<String, @Nullable Object> configProperties) {
@Reference GreeTranslationProvider translationProvider, @Nullable Map<String, Object> configProperties) {
super(SUPPORTED_THING_TYPES_UIDS, TIMEOUT_SEC);
this.messages = translationProvider;
this.deviceFinder = deviceFinder;
@ -70,7 +69,7 @@ public class GreeDiscoveryService extends AbstractDiscoveryService {
@Override
@Modified
protected void modified(@Nullable Map<String, @Nullable Object> configProperties) {
protected void modified(@Nullable Map<String, Object> configProperties) {
super.modified(configProperties);
}

View File

@ -48,7 +48,7 @@ import org.osgi.service.http.HttpService;
@Component(configurationPid = "binding.groheondus", service = ThingHandlerFactory.class)
public class GroheOndusHandlerFactory extends BaseThingHandlerFactory {
private final Map<ThingUID, @Nullable ServiceRegistration<?>> discoveryServiceRegs = new HashMap<>();
private final Map<ThingUID, ServiceRegistration<?>> discoveryServiceRegs = new HashMap<>();
private HttpService httpService;
private StorageService storageService;

View File

@ -68,7 +68,7 @@ public class HarmonyHubHandlerFactory extends BaseThingHandlerFactory
HarmonyDeviceHandler.SUPPORTED_THING_TYPES_UIDS.stream())
.collect(Collectors.toSet());
private final Map<ThingUID, @Nullable ServiceRegistration<?>> discoveryServiceRegs = new HashMap<>();
private final Map<ThingUID, ServiceRegistration<?>> discoveryServiceRegs = new HashMap<>();
private final HttpClient httpClient;
private final List<ChannelType> channelTypes = new CopyOnWriteArrayList<>();

View File

@ -79,7 +79,7 @@ public class HueDeviceDiscoveryService extends AbstractDiscoveryService
.flatMap(i -> i).collect(Collectors.toSet()));
// @formatter:off
private static final Map<String, @Nullable String> TYPE_TO_ZIGBEE_ID_MAP = Map.ofEntries(
private static final Map<String, String> TYPE_TO_ZIGBEE_ID_MAP = Map.ofEntries(
new SimpleEntry<>("on_off_light", "0000"),
new SimpleEntry<>("on_off_plug_in_unit", "0010"),
new SimpleEntry<>("dimmable_light", "0100"),

View File

@ -99,14 +99,14 @@ public class HueBridgeHandler extends ConfigStatusBridgeHandler implements HueCl
private final Logger logger = LoggerFactory.getLogger(HueBridgeHandler.class);
private final HueStateDescriptionOptionProvider stateDescriptionOptionProvider;
private final Map<String, @Nullable FullLight> lastLightStates = new ConcurrentHashMap<>();
private final Map<String, @Nullable FullSensor> lastSensorStates = new ConcurrentHashMap<>();
private final Map<String, @Nullable FullGroup> lastGroupStates = new ConcurrentHashMap<>();
private final Map<String, FullLight> lastLightStates = new ConcurrentHashMap<>();
private final Map<String, FullSensor> lastSensorStates = new ConcurrentHashMap<>();
private final Map<String, FullGroup> lastGroupStates = new ConcurrentHashMap<>();
private @Nullable HueDeviceDiscoveryService discoveryService;
private final Map<String, @Nullable LightStatusListener> lightStatusListeners = new ConcurrentHashMap<>();
private final Map<String, @Nullable SensorStatusListener> sensorStatusListeners = new ConcurrentHashMap<>();
private final Map<String, @Nullable GroupStatusListener> groupStatusListeners = new ConcurrentHashMap<>();
private final Map<String, LightStatusListener> lightStatusListeners = new ConcurrentHashMap<>();
private final Map<String, SensorStatusListener> sensorStatusListeners = new ConcurrentHashMap<>();
private final Map<String, GroupStatusListener> groupStatusListeners = new ConcurrentHashMap<>();
final ReentrantLock pollingLock = new ReentrantLock();
@ -182,7 +182,7 @@ public class HueBridgeHandler extends ConfigStatusBridgeHandler implements HueCl
private final Runnable sensorPollingRunnable = new PollingRunnable() {
@Override
protected void doConnectedRun() throws IOException, ApiException {
Map<String, @Nullable FullSensor> lastSensorStateCopy = new HashMap<>(lastSensorStates);
Map<String, FullSensor> lastSensorStateCopy = new HashMap<>(lastSensorStates);
final HueDeviceDiscoveryService discovery = discoveryService;
@ -231,7 +231,7 @@ public class HueBridgeHandler extends ConfigStatusBridgeHandler implements HueCl
}
private void updateLights() throws IOException, ApiException {
Map<String, @Nullable FullLight> lastLightStateCopy = new HashMap<>(lastLightStates);
Map<String, FullLight> lastLightStateCopy = new HashMap<>(lastLightStates);
List<FullLight> lights;
if (ApiVersionUtils.supportsFullLights(hueBridge.getVersion())) {
@ -279,7 +279,7 @@ public class HueBridgeHandler extends ConfigStatusBridgeHandler implements HueCl
}
private void updateGroups() throws IOException, ApiException {
Map<String, @Nullable FullGroup> lastGroupStateCopy = new HashMap<>(lastGroupStates);
Map<String, FullGroup> lastGroupStateCopy = new HashMap<>(lastGroupStates);
List<FullGroup> groups = hueBridge.getGroups();
@ -379,7 +379,7 @@ public class HueBridgeHandler extends ConfigStatusBridgeHandler implements HueCl
notifyGroupSceneUpdate(scenes);
}
private void setBridgeSceneChannelStateOptions(List<Scene> scenes, Map<String, @Nullable FullGroup> groups) {
private void setBridgeSceneChannelStateOptions(List<Scene> scenes, Map<String, FullGroup> groups) {
Map<String, String> groupNames = groups.entrySet().stream()
.collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue().getName()));
List<StateOption> stateOptions = scenes.stream().map(scene -> scene.toStateOption(groupNames))

View File

@ -44,7 +44,7 @@ import org.osgi.service.component.annotations.Reference;
*/
@Component(service = ThingHandlerFactory.class, configurationPid = "binding.icloud")
public class ICloudHandlerFactory extends BaseThingHandlerFactory {
private final Map<ThingUID, @Nullable ServiceRegistration<?>> discoveryServiceRegistrations = new HashMap<>();
private final Map<ThingUID, ServiceRegistration<?>> discoveryServiceRegistrations = new HashMap<>();
private LocaleProvider localeProvider;
private TranslationProvider i18nProvider;

View File

@ -249,8 +249,7 @@ public class InsteonBinding {
handler.updateState(channelUID, state);
}
public InsteonDevice makeNewDevice(InsteonAddress addr, String productKey,
Map<String, @Nullable Object> deviceConfigMap) {
public InsteonDevice makeNewDevice(InsteonAddress addr, String productKey, Map<String, Object> deviceConfigMap) {
DeviceType dt = DeviceTypeLoader.instance().getDeviceType(productKey);
InsteonDevice dev = InsteonDevice.makeDevice(dt);
dev.setAddress(addr);
@ -296,7 +295,7 @@ public class InsteonBinding {
private int checkIfInModemDatabase(InsteonDevice dev) {
try {
InsteonAddress addr = dev.getAddress();
Map<InsteonAddress, @Nullable ModemDBEntry> dbes = driver.lockModemDBEntries();
Map<InsteonAddress, ModemDBEntry> dbes = driver.lockModemDBEntries();
if (dbes.containsKey(addr)) {
if (!dev.hasModemDBEntry()) {
logger.debug("device {} found in the modem database and {}.", addr, getLinkInfo(dbes, addr, true));
@ -316,7 +315,7 @@ public class InsteonBinding {
public Map<String, String> getDatabaseInfo() {
try {
Map<String, String> databaseInfo = new HashMap<>();
Map<InsteonAddress, @Nullable ModemDBEntry> dbes = driver.lockModemDBEntries();
Map<InsteonAddress, ModemDBEntry> dbes = driver.lockModemDBEntries();
for (InsteonAddress addr : dbes.keySet()) {
String a = addr.toString();
databaseInfo.put(a, a + ": " + getLinkInfo(dbes, addr, false));
@ -360,7 +359,7 @@ public class InsteonBinding {
return (dev);
}
private String getLinkInfo(Map<InsteonAddress, @Nullable ModemDBEntry> dbes, InsteonAddress a, boolean prefix) {
private String getLinkInfo(Map<InsteonAddress, ModemDBEntry> dbes, InsteonAddress a, boolean prefix) {
ModemDBEntry dbe = dbes.get(a);
List<Byte> controls = dbe.getControls();
List<Byte> responds = dbe.getRespondsTo();
@ -454,7 +453,7 @@ public class InsteonBinding {
public void driverCompletelyInitialized() {
List<String> missing = new ArrayList<>();
try {
Map<InsteonAddress, @Nullable ModemDBEntry> dbes = driver.lockModemDBEntries();
Map<InsteonAddress, ModemDBEntry> dbes = driver.lockModemDBEntries();
logger.debug("modem database has {} entries!", dbes.size());
if (dbes.isEmpty()) {
logger.warn("the modem link database is empty!");

View File

@ -53,8 +53,8 @@ public class InsteonHandlerFactory extends BaseThingHandlerFactory {
private static final Set<ThingTypeUID> SUPPORTED_THING_TYPES_UIDS = Collections
.unmodifiableSet(Stream.of(DEVICE_THING_TYPE, NETWORK_THING_TYPE).collect(Collectors.toSet()));
private final Map<ThingUID, @Nullable ServiceRegistration<?>> discoveryServiceRegs = new HashMap<>();
private final Map<ThingUID, @Nullable ServiceRegistration<?>> serviceRegs = new HashMap<>();
private final Map<ThingUID, ServiceRegistration<?>> discoveryServiceRegs = new HashMap<>();
private final Map<ThingUID, ServiceRegistration<?>> serviceRegs = new HashMap<>();
private @Nullable SerialPortManager serialPortManager;

View File

@ -15,7 +15,6 @@ package org.openhab.binding.insteon.internal.config;
import java.util.Map;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.openhab.binding.insteon.internal.device.InsteonAddress;
import org.openhab.core.thing.ChannelUID;
@ -33,10 +32,10 @@ public class InsteonChannelConfiguration {
private final InsteonAddress address;
private final String feature;
private final String productKey;
private final Map<String, @Nullable String> parameters;
private final Map<String, String> parameters;
public InsteonChannelConfiguration(ChannelUID channelUID, String feature, InsteonAddress address, String productKey,
Map<String, @Nullable String> parameters) {
Map<String, String> parameters) {
this.channelUID = channelUID;
this.feature = feature;
this.address = address;
@ -66,7 +65,7 @@ public class InsteonChannelConfiguration {
return productKey;
}
public Map<String, @Nullable String> getParameters() {
public Map<String, String> getParameters() {
return parameters;
}
}

View File

@ -49,7 +49,7 @@ public abstract class CommandHandler {
private static final Logger logger = LoggerFactory.getLogger(CommandHandler.class);
DeviceFeature feature; // related DeviceFeature
@Nullable
Map<String, @Nullable String> parameters = new HashMap<>();
Map<String, String> parameters = new HashMap<>();
/**
* Constructor
@ -113,7 +113,7 @@ public abstract class CommandHandler {
}
protected int getMaxLightLevel(InsteonChannelConfiguration conf, int defaultLevel) {
Map<String, @Nullable String> params = conf.getParameters();
Map<String, String> params = conf.getParameters();
if (conf.getFeature().contains("dimmer") && params.containsKey("dimmermax")) {
String item = conf.getChannelName();
String dimmerMax = params.get("dimmermax");
@ -136,7 +136,7 @@ public abstract class CommandHandler {
return defaultLevel;
}
void setParameters(Map<String, @Nullable String> map) {
void setParameters(Map<String, String> map) {
parameters = map;
}
@ -597,7 +597,7 @@ public abstract class CommandHandler {
}
@Override
void setParameters(Map<String, @Nullable String> params) {
void setParameters(Map<String, String> params) {
super.setParameters(params);
onCmd = (byte) getIntParameter("on", 0x2E);
offCmd = (byte) getIntParameter("off", 0x2F);
@ -877,8 +877,7 @@ public abstract class CommandHandler {
* @return the handler which was created
*/
@Nullable
public static <T extends CommandHandler> T makeHandler(String name, Map<String, @Nullable String> params,
DeviceFeature f) {
public static <T extends CommandHandler> T makeHandler(String name, Map<String, String> params, DeviceFeature f) {
String cname = CommandHandler.class.getName() + "$" + name;
try {
Class<?> c = Class.forName(cname);

View File

@ -18,7 +18,6 @@ import java.util.List;
import java.util.Map;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.openhab.binding.insteon.internal.InsteonBinding;
import org.openhab.core.library.types.OnOffType;
import org.openhab.core.library.types.PercentType;
@ -46,8 +45,8 @@ public class DeviceFeatureListener {
private String itemName;
private ChannelUID channelUID;
private Map<String, @Nullable String> parameters = new HashMap<>();
private Map<Class<?>, @Nullable State> state = new HashMap<>();
private Map<String, String> parameters = new HashMap<>();
private Map<Class<?>, State> state = new HashMap<>();
private List<InsteonAddress> relatedDevices = new ArrayList<>();
private InsteonBinding binding;
private static final int TIME_DELAY_POLL_RELATED_MSEC = 5000;
@ -91,7 +90,7 @@ public class DeviceFeatureListener {
*
* @param p the parameters to set
*/
public void setParameters(Map<String, @Nullable String> p) {
public void setParameters(Map<String, String> p) {
parameters = p;
updateRelatedDevices();
}

View File

@ -24,7 +24,6 @@ import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.openhab.binding.insteon.internal.utils.Utils;
import org.openhab.binding.insteon.internal.utils.Utils.ParsingException;
import org.openhab.core.library.types.DecimalType;
@ -111,7 +110,7 @@ public class FeatureTemplateLoader {
}
NamedNodeMap attributes = e.getAttributes();
Map<String, @Nullable String> params = new HashMap<>();
Map<String, String> params = new HashMap<>();
for (int i = 0; i < attributes.getLength(); i++) {
Node n = attributes.item(i);
params.put(n.getNodeName(), n.getNodeValue());

View File

@ -15,7 +15,6 @@ package org.openhab.binding.insteon.internal.device;
import java.util.Map;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
/**
* Ugly little helper class to facilitate late instantiation of handlers
@ -25,15 +24,15 @@ import org.eclipse.jdt.annotation.Nullable;
*/
@NonNullByDefault
public class HandlerEntry {
Map<String, @Nullable String> params;
Map<String, String> params;
String name;
HandlerEntry(String name, Map<String, @Nullable String> params) {
HandlerEntry(String name, Map<String, String> params) {
this.name = name;
this.params = params;
}
Map<String, @Nullable String> getParams() {
Map<String, String> getParams() {
return params;
}

View File

@ -63,7 +63,7 @@ public class InsteonDevice {
private InsteonAddress address = new InsteonAddress();
private long pollInterval = -1L; // in milliseconds
private @Nullable Driver driver = null;
private HashMap<String, @Nullable DeviceFeature> features = new HashMap<>();
private Map<String, DeviceFeature> features = new HashMap<>();
private @Nullable String productKey = null;
private volatile long lastTimePolled = 0L;
private volatile long lastMsgReceived = 0L;
@ -73,8 +73,8 @@ public class InsteonDevice {
private long lastQueryTime = 0L;
private boolean hasModemDBEntry = false;
private DeviceStatus status = DeviceStatus.INITIALIZED;
private Map<Integer, @Nullable GroupMessageStateMachine> groupState = new HashMap<>();
private Map<String, @Nullable Object> deviceConfigMap = new HashMap<String, @Nullable Object>();
private Map<Integer, GroupMessageStateMachine> groupState = new HashMap<>();
private Map<String, Object> deviceConfigMap = new HashMap<String, Object>();
/**
* Constructor
@ -121,7 +121,7 @@ public class InsteonDevice {
return features.get(f);
}
public HashMap<String, @Nullable DeviceFeature> getFeatures() {
public Map<String, DeviceFeature> getFeatures() {
return features;
}
@ -194,11 +194,11 @@ public class InsteonDevice {
}
}
public void setDeviceConfigMap(Map<String, @Nullable Object> deviceConfigMap) {
public void setDeviceConfigMap(Map<String, Object> deviceConfigMap) {
this.deviceConfigMap = deviceConfigMap;
}
public Map<String, @Nullable Object> getDeviceConfigMap() {
public Map<String, Object> getDeviceConfigMap() {
return deviceConfigMap;
}
@ -217,7 +217,7 @@ public class InsteonDevice {
public boolean removeFeatureListener(String aItemName) {
boolean removedListener = false;
synchronized (features) {
for (Iterator<Entry<String, @Nullable DeviceFeature>> it = features.entrySet().iterator(); it.hasNext();) {
for (Iterator<Entry<String, DeviceFeature>> it = features.entrySet().iterator(); it.hasNext();) {
DeviceFeature f = it.next().getValue();
if (f.removeListener(aItemName)) {
removedListener = true;
@ -584,7 +584,7 @@ public class InsteonDevice {
@Override
public String toString() {
String s = address.toString();
for (Entry<String, @Nullable DeviceFeature> f : features.entrySet()) {
for (Entry<String, DeviceFeature> f : features.entrySet()) {
s += "|" + f.getKey() + "->" + f.getValue().toString();
}
return s;

View File

@ -37,7 +37,7 @@ public abstract class MessageDispatcher {
DeviceFeature feature;
@Nullable
Map<String, @Nullable String> parameters = new HashMap<>();
Map<String, String> parameters = new HashMap<>();
/**
* Constructor
@ -48,7 +48,7 @@ public abstract class MessageDispatcher {
feature = f;
}
public void setParameters(@Nullable Map<String, @Nullable String> map) {
public void setParameters(@Nullable Map<String, String> map) {
parameters = map;
}
@ -397,8 +397,8 @@ public abstract class MessageDispatcher {
* @return the handler which was created
*/
@Nullable
public static <T extends MessageDispatcher> T makeHandler(String name,
@Nullable Map<String, @Nullable String> params, DeviceFeature f) {
public static <T extends MessageDispatcher> T makeHandler(String name, @Nullable Map<String, String> params,
DeviceFeature f) {
String cname = MessageDispatcher.class.getName() + "$" + name;
try {
Class<?> c = Class.forName(cname);

View File

@ -55,7 +55,7 @@ public abstract class MessageHandler {
private static final Logger logger = LoggerFactory.getLogger(MessageHandler.class);
protected DeviceFeature feature;
protected Map<String, @Nullable String> parameters = new HashMap<>();
protected Map<String, String> parameters = new HashMap<>();
/**
* Constructor
@ -324,7 +324,7 @@ public abstract class MessageHandler {
*
* @param map the parameter map for this message handler
*/
public void setParameters(Map<String, @Nullable String> map) {
public void setParameters(Map<String, String> map) {
parameters = map;
}
@ -457,7 +457,7 @@ public abstract class MessageHandler {
}
@Override
public void setParameters(Map<String, @Nullable String> params) {
public void setParameters(Map<String, String> params) {
super.setParameters(params);
onCmd = getIntParameter("on", 0x2E);
offCmd = getIntParameter("off", 0x2F);
@ -1342,7 +1342,7 @@ public abstract class MessageHandler {
* @param f the feature for which to create the handler
* @return the handler which was created
*/
public static @Nullable <T extends MessageHandler> T makeHandler(String name, Map<String, @Nullable String> params,
public static @Nullable <T extends MessageHandler> T makeHandler(String name, Map<String, String> params,
DeviceFeature f) {
String cname = MessageHandler.class.getName() + "$" + name;
try {

View File

@ -151,8 +151,8 @@ public class ModemDBBuilder implements MsgListener {
private void logModemDB() {
try {
logger.debug("MDB ------- start of modem link records ------------------");
Map<InsteonAddress, @Nullable ModemDBEntry> dbes = port.getDriver().lockModemDBEntries();
for (Entry<InsteonAddress, @Nullable ModemDBEntry> db : dbes.entrySet()) {
Map<InsteonAddress, ModemDBEntry> dbes = port.getDriver().lockModemDBEntries();
for (Entry<InsteonAddress, ModemDBEntry> db : dbes.entrySet()) {
List<Msg> lrs = db.getValue().getLinkRecords();
for (Msg m : lrs) {
int recordFlags = m.getByte("RecordFlags") & 0xff;
@ -177,7 +177,7 @@ public class ModemDBBuilder implements MsgListener {
public void updateModemDB(InsteonAddress linkAddr, Port port, @Nullable Msg m, boolean isModem) {
try {
Map<InsteonAddress, @Nullable ModemDBEntry> dbes = port.getDriver().lockModemDBEntries();
Map<InsteonAddress, ModemDBEntry> dbes = port.getDriver().lockModemDBEntries();
ModemDBEntry dbe = dbes.get(linkAddr);
if (dbe == null) {
dbe = new ModemDBEntry(linkAddr, isModem);

View File

@ -37,7 +37,7 @@ import org.slf4j.LoggerFactory;
public abstract class PollHandler {
private static final Logger logger = LoggerFactory.getLogger(PollHandler.class);
DeviceFeature feature;
Map<String, @Nullable String> parameters = new HashMap<>();
Map<String, String> parameters = new HashMap<>();
/**
* Constructor
@ -57,7 +57,7 @@ public abstract class PollHandler {
*/
public abstract @Nullable Msg makeMsg(InsteonDevice device);
public void setParameters(Map<String, @Nullable String> hm) {
public void setParameters(Map<String, String> hm) {
parameters = hm;
}

View File

@ -13,6 +13,7 @@
package org.openhab.binding.insteon.internal.device;
import java.util.HashMap;
import java.util.Map;
import java.util.PriorityQueue;
import org.eclipse.jdt.annotation.NonNullByDefault;
@ -41,7 +42,7 @@ public class RequestQueueManager {
private final Logger logger = LoggerFactory.getLogger(RequestQueueManager.class);
private @Nullable Thread queueThread = null;
private PriorityQueue<RequestQueue> requestQueues = new PriorityQueue<>();
private HashMap<InsteonDevice, @Nullable RequestQueue> requestQueueHash = new HashMap<>();
private Map<InsteonDevice, RequestQueue> requestQueueHash = new HashMap<>();
private boolean keepRunning = true;
private RequestQueueManager() {

View File

@ -13,6 +13,7 @@
package org.openhab.binding.insteon.internal.device;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import org.eclipse.jdt.annotation.NonNullByDefault;
@ -139,7 +140,7 @@ public class X10 {
return 0xf;
}
private static @Nullable <T, E> T findKey(HashMap<T, E> map, E value) {
private static @Nullable <T, E> T findKey(Map<T, E> map, E value) {
for (Entry<T, E> entry : map.entrySet()) {
if (value.equals(entry.getValue())) {
return entry.getKey();
@ -151,11 +152,11 @@ public class X10 {
/**
* Map between 4-bit X10 code and the house code.
*/
private static HashMap<Integer, @Nullable String> houseCodeToString = new HashMap<>();
private static Map<Integer, String> houseCodeToString = new HashMap<>();
/**
* Map between 4-bit X10 code and the unit code.
*/
private static HashMap<Integer, @Nullable Integer> unitCodeToInt = new HashMap<>();
private static Map<Integer, Integer> unitCodeToInt = new HashMap<>();
static {
houseCodeToString.put(0x6, "A");

View File

@ -36,7 +36,7 @@ public class Driver {
private Port port;
private String portName;
private DriverListener listener;
private Map<InsteonAddress, @Nullable ModemDBEntry> modemDBEntries = new HashMap<>();
private Map<InsteonAddress, ModemDBEntry> modemDBEntries = new HashMap<>();
private ReentrantLock modemDBEntriesLock = new ReentrantLock();
public Driver(String portName, DriverListener listener, @Nullable SerialPortManager serialPortManager,
@ -51,7 +51,7 @@ public class Driver {
return port.isRunning();
}
public Map<InsteonAddress, @Nullable ModemDBEntry> lockModemDBEntries() {
public Map<InsteonAddress, ModemDBEntry> lockModemDBEntries() {
modemDBEntriesLock.lock();
return modemDBEntries;
}

View File

@ -152,7 +152,7 @@ public class Port {
*/
public void clearModemDB() {
logger.debug("clearing modem db!");
Map<InsteonAddress, @Nullable ModemDBEntry> dbes = getDriver().lockModemDBEntries();
Map<InsteonAddress, ModemDBEntry> dbes = getDriver().lockModemDBEntries();
for (InsteonAddress addr : dbes.keySet()) {
if (!dbes.get(addr).isModem()) {
dbes.remove(addr);

View File

@ -162,7 +162,7 @@ public class InsteonDeviceHandler extends BaseThingHandler {
}
String deviceConfig = config.getDeviceConfig();
Map<String, @Nullable Object> deviceConfigMap;
Map<String, Object> deviceConfigMap;
if (deviceConfig != null) {
Type mapType = new TypeToken<Map<String, Object>>() {
}.getType();
@ -368,7 +368,7 @@ public class InsteonDeviceHandler extends BaseThingHandler {
return;
}
Map<String, @Nullable String> params = new HashMap<>();
Map<String, String> params = new HashMap<>();
Channel channel = getThing().getChannel(channelUID.getId());
Map<String, Object> channelProperties = channel.getConfiguration().getProperties();

View File

@ -74,11 +74,11 @@ public class Msg {
}
// has the structure of all known messages
private static final Map<String, @Nullable Msg> MSG_MAP = new HashMap<>();
private static final Map<String, Msg> MSG_MAP = new HashMap<>();
// maps between command number and the length of the header
private static final Map<Integer, @Nullable Integer> HEADER_MAP = new HashMap<>();
private static final Map<Integer, Integer> HEADER_MAP = new HashMap<>();
// has templates for all message from modem to host
private static final Map<Integer, @Nullable Msg> REPLY_MAP = new HashMap<>();
private static final Map<Integer, Msg> REPLY_MAP = new HashMap<>();
private int headerLength = -1;
private byte @Nullable [] data = null;

View File

@ -13,6 +13,7 @@
package org.openhab.binding.insteon.internal.message;
import java.util.HashMap;
import java.util.Map;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
@ -28,7 +29,7 @@ import org.eclipse.jdt.annotation.Nullable;
@NonNullByDefault
@SuppressWarnings("null")
public class MsgDefinition {
private HashMap<String, @Nullable Field> fields = new HashMap<>();
private Map<String, Field> fields = new HashMap<>();
MsgDefinition() {
}
@ -42,7 +43,7 @@ public class MsgDefinition {
fields = new HashMap<>(m.fields);
}
public HashMap<String, @Nullable Field> getFields() {
public Map<String, Field> getFields() {
return fields;
}

View File

@ -13,9 +13,9 @@
package org.openhab.binding.insteon.internal.message;
import java.util.HashMap;
import java.util.Map;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
/**
* Represents insteon message type flags
@ -47,7 +47,7 @@ public enum MsgType {
ALL_LINK_CLEANUP_NACK(0xe0),
INVALID(0xff); // should never happen
private static HashMap<Integer, @Nullable MsgType> hash = new HashMap<>();
private static Map<Integer, MsgType> hash = new HashMap<>();
private byte byteValue = 0;
@ -73,7 +73,6 @@ public enum MsgType {
public static MsgType fromValue(byte b) throws IllegalArgumentException {
int i = b & 0xe0;
@Nullable
MsgType mt = hash.get(i);
if (mt == null) {
throw new IllegalArgumentException("msg type of byte value " + i + " not found");

View File

@ -72,8 +72,8 @@ public class DeviceThingHandler extends AbstractKNXThingHandler {
private final Set<GroupAddress> groupAddresses = new HashSet<>();
private final Set<GroupAddress> groupAddressesWriteBlockedOnce = new HashSet<>();
private final Set<OutboundSpec> groupAddressesRespondingSpec = new HashSet<>();
private final Map<GroupAddress, @Nullable ScheduledFuture<?>> readFutures = new HashMap<>();
private final Map<ChannelUID, @Nullable ScheduledFuture<?>> channelFutures = new HashMap<>();
private final Map<GroupAddress, ScheduledFuture<?>> readFutures = new HashMap<>();
private final Map<ChannelUID, ScheduledFuture<?>> channelFutures = new HashMap<>();
private int readInterval;
public DeviceThingHandler(Thing thing) {

View File

@ -60,7 +60,7 @@ public class KodiHandlerFactory extends BaseThingHandlerFactory {
private final KodiDynamicStateDescriptionProvider stateDescriptionProvider;
private final WebSocketClient webSocketClient;
private final Map<String, @Nullable ServiceRegistration<AudioSink>> audioSinkRegistrations = new ConcurrentHashMap<>();
private final Map<String, ServiceRegistration<AudioSink>> audioSinkRegistrations = new ConcurrentHashMap<>();
// url (scheme+server+port) to use for playing notification sounds
private @Nullable String callbackUrl;

View File

@ -71,9 +71,9 @@ public class LcnModuleHandler extends BaseThingHandler {
private static final Map<String, Converter> VALUE_CONVERTERS = new HashMap<>();
private static final InversionConverter INVERSION_CONVERTER = new InversionConverter();
private @Nullable LcnAddrMod moduleAddress;
private final Map<LcnChannelGroup, @Nullable AbstractLcnModuleSubHandler> subHandlers = new HashMap<>();
private final Map<LcnChannelGroup, AbstractLcnModuleSubHandler> subHandlers = new HashMap<>();
private final List<AbstractLcnModuleSubHandler> metadataSubHandlers = new ArrayList<>();
private final Map<ChannelUID, @Nullable Converter> converters = new HashMap<>();
private final Map<ChannelUID, Converter> converters = new HashMap<>();
static {
VALUE_CONVERTERS.put("temperature", Converters.TEMPERATURE);
@ -123,8 +123,9 @@ public class LcnModuleHandler extends BaseThingHandler {
converters.put(channel.getUID(), new S0Converter(parameterObject));
break;
default:
if (VALUE_CONVERTERS.containsKey(unitObject)) {
converters.put(channel.getUID(), VALUE_CONVERTERS.get(unitObject));
Converter converter = VALUE_CONVERTERS.get(unitObject);
if (converter != null) {
converters.put(channel.getUID(), converter);
}
break;
}

View File

@ -82,7 +82,7 @@ public class ModInfo {
* Variables request status.
* Lazy initialization: Will be filled once the firmware version is known.
*/
private final Map<Variable, @Nullable RequestStatus> requestStatusVars = new HashMap<>();
private final Map<Variable, RequestStatus> requestStatusVars = new HashMap<>();
/**
* Caches the values of the variables, needed for changing the values.
@ -291,9 +291,9 @@ public class ModInfo {
}
}
// Variables
for (Map.Entry<Variable, @Nullable RequestStatus> kv : this.requestStatusVars.entrySet()) {
for (Map.Entry<Variable, RequestStatus> kv : this.requestStatusVars.entrySet()) {
RequestStatus requestStatus = kv.getValue();
if (requestStatus != null && requestStatus.shouldSendNextRequest(timeoutMSec, currTime)) {
if (requestStatus.shouldSendNextRequest(timeoutMSec, currTime)) {
// Detect if we can send immediately or if we have to wait for a "typeless" request first
boolean hasTypeInResponse = kv.getKey().hasTypeInResponse(this.firmwareVersion);
if (hasTypeInResponse || this.lastRequestedVarWithoutTypeInResponse == Variable.UNKNOWN) {
@ -351,9 +351,7 @@ public class ModInfo {
// increase poll interval, if the LCN module sends status updates of a variable event-based
requestStatusVars.entrySet().stream().filter(e -> e.getKey().isEventBased(firmwareVersion)).forEach(e -> {
RequestStatus value = e.getValue();
if (value != null) {
value.setMaxAgeMSec(MAX_STATUS_EVENTBASED_VALUEAGE_MSEC);
}
value.setMaxAgeMSec(MAX_STATUS_EVENTBASED_VALUEAGE_MSEC);
});
}

View File

@ -46,7 +46,7 @@ public class LeapMotionDiscoveryService extends AbstractDiscoveryService {
}
@Override
protected void activate(@Nullable Map<String, @Nullable Object> configProperties) {
protected void activate(@Nullable Map<String, Object> configProperties) {
leapController = new Controller();
listener = new Listener() {
@Override

View File

@ -42,7 +42,7 @@ import org.slf4j.LoggerFactory;
@NonNullByDefault
public class LauncherApplication extends BaseChannelHandler<AppInfo> {
private final Logger logger = LoggerFactory.getLogger(LauncherApplication.class);
private final Map<ThingUID, @Nullable List<AppInfo>> applicationListCache = new HashMap<>();
private final Map<ThingUID, List<AppInfo>> applicationListCache = new HashMap<>();
private final ResponseListener<LaunchSession> launchSessionResponseListener = createResponseListener();
@Override

View File

@ -42,7 +42,7 @@ import org.slf4j.LoggerFactory;
@NonNullByDefault
public class TVControlChannel extends BaseChannelHandler<ChannelInfo> {
private final Logger logger = LoggerFactory.getLogger(TVControlChannel.class);
private final Map<ThingUID, @Nullable List<ChannelInfo>> channelListCache = new HashMap<>();
private final Map<ThingUID, List<ChannelInfo>> channelListCache = new HashMap<>();
private final ResponseListener<CommandConfirmation> objResponseListener = createResponseListener();
@Override

View File

@ -69,7 +69,7 @@ public class LifxLightDiscovery extends AbstractDiscoveryService {
private final Logger logger = LoggerFactory.getLogger(LifxLightDiscovery.class);
private final Map<MACAddress, @Nullable DiscoveredLight> discoveredLights = new HashMap<>();
private final Map<MACAddress, DiscoveredLight> discoveredLights = new HashMap<>();
private final long sourceId = randomSourceId();
private final Supplier<Integer> sequenceNumberSupplier = new LifxSequenceNumberSupplier();
@ -121,13 +121,13 @@ public class LifxLightDiscovery extends AbstractDiscoveryService {
@Activate
@Override
protected void activate(@Nullable Map<String, @Nullable Object> configProperties) {
protected void activate(@Nullable Map<String, Object> configProperties) {
super.activate(configProperties);
}
@Modified
@Override
protected void modified(@Nullable Map<String, @Nullable Object> configProperties) {
protected void modified(@Nullable Map<String, Object> configProperties) {
super.modified(configProperties);
}
@ -248,9 +248,6 @@ public class LifxLightDiscovery extends AbstractDiscoveryService {
// Iterate through the discovered lights that have to be set up, and the packets that have to be sent
// Workaround to avoid a ConcurrentModifictionException on the selector.SelectedKeys() Set
for (DiscoveredLight light : discoveredLights.values()) {
if (light == null) {
continue;
}
boolean waitingForLightResponse = System.currentTimeMillis() - light.lastRequestTimeMillis < 200;
if (light.supportedProduct && !light.isDataComplete() && !waitingForLightResponse) {

View File

@ -85,7 +85,7 @@ public class LifxLightStateChanger implements LifxLightStateListener {
private @Nullable ScheduledFuture<?> sendJob;
private Map<Integer, @Nullable List<PendingPacket>> pendingPacketsMap = new ConcurrentHashMap<>();
private Map<Integer, List<PendingPacket>> pendingPacketsMap = new ConcurrentHashMap<>();
private class PendingPacket {
@ -230,12 +230,10 @@ public class LifxLightStateChanger implements LifxLightStateListener {
private @Nullable PendingPacket findPacketToSend() {
PendingPacket result = null;
for (List<PendingPacket> pendingPackets : pendingPacketsMap.values()) {
if (pendingPackets != null) {
for (PendingPacket pendingPacket : pendingPackets) {
if (pendingPacket.hasAcknowledgeIntervalElapsed()
&& (result == null || pendingPacket.lastSend < result.lastSend)) {
result = pendingPacket;
}
for (PendingPacket pendingPacket : pendingPackets) {
if (pendingPacket.hasAcknowledgeIntervalElapsed()
&& (result == null || pendingPacket.lastSend < result.lastSend)) {
result = pendingPacket;
}
}
}
@ -254,15 +252,13 @@ public class LifxLightStateChanger implements LifxLightStateListener {
private void removeFailedPackets() {
for (List<PendingPacket> pendingPackets : pendingPacketsMap.values()) {
if (pendingPackets != null) {
Iterator<PendingPacket> it = pendingPackets.iterator();
while (it.hasNext()) {
PendingPacket pendingPacket = it.next();
if (pendingPacket.sendCount > MAX_RETRIES && pendingPacket.hasAcknowledgeIntervalElapsed()) {
logger.warn("{} failed (unacknowledged {} times to light {})",
pendingPacket.packet.getClass().getSimpleName(), pendingPacket.sendCount, logId);
it.remove();
}
Iterator<PendingPacket> it = pendingPackets.iterator();
while (it.hasNext()) {
PendingPacket pendingPacket = it.next();
if (pendingPacket.sendCount > MAX_RETRIES && pendingPacket.hasAcknowledgeIntervalElapsed()) {
logger.warn("{} failed (unacknowledged {} times to light {})",
pendingPacket.packet.getClass().getSimpleName(), pendingPacket.sendCount, logId);
it.remove();
}
}
}
@ -270,14 +266,12 @@ public class LifxLightStateChanger implements LifxLightStateListener {
private @Nullable PendingPacket removeAcknowledgedPacket(int sequenceNumber) {
for (List<PendingPacket> pendingPackets : pendingPacketsMap.values()) {
if (pendingPackets != null) {
Iterator<PendingPacket> it = pendingPackets.iterator();
while (it.hasNext()) {
PendingPacket pendingPacket = it.next();
if (pendingPacket.packet.getSequence() == sequenceNumber) {
it.remove();
return pendingPacket;
}
Iterator<PendingPacket> it = pendingPackets.iterator();
while (it.hasNext()) {
PendingPacket pendingPacket = it.next();
if (pendingPacket.packet.getSequence() == sequenceNumber) {
it.remove();
return pendingPacket;
}
}
}

View File

@ -79,7 +79,7 @@ public final class LifxThrottlingUtil {
*/
private static List<LifxLightCommunicationTracker> trackers = new CopyOnWriteArrayList<>();
private static Map<MACAddress, @Nullable LifxLightCommunicationTracker> macTrackerMapping = new ConcurrentHashMap<>();
private static Map<MACAddress, LifxLightCommunicationTracker> macTrackerMapping = new ConcurrentHashMap<>();
public static void lock(@Nullable MACAddress mac) {
if (mac != null) {

View File

@ -131,7 +131,7 @@ public class LutronHandlerFactory extends BaseThingHandlerFactory {
|| HW_DISCOVERABLE_DEVICE_TYPES_UIDS.contains(thingTypeUID);
}
private final Map<ThingUID, @Nullable ServiceRegistration<?>> discoveryServiceRegMap = new HashMap<>();
private final Map<ThingUID, ServiceRegistration<?>> discoveryServiceRegMap = new HashMap<>();
// Marked as Nullable only to fix incorrect redundant null check complaints after adding null annotations
@Override

View File

@ -171,7 +171,7 @@ public class LutronMcastBridgeDiscoveryService extends AbstractDiscoveryService
StandardCharsets.US_ASCII);
Matcher matcher = BRIDGE_PROP_PATTERN.matcher(data);
Map<String, @Nullable String> bridgeProperties = new HashMap<>();
Map<String, String> bridgeProperties = new HashMap<>();
while (matcher.find()) {
bridgeProperties.put(matcher.group(1), matcher.group(2));

View File

@ -16,6 +16,7 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
@ -33,7 +34,7 @@ import org.slf4j.LoggerFactory;
public abstract class KeypadConfig {
private final Logger logger = LoggerFactory.getLogger(KeypadConfig.class);
protected final HashMap<String, @Nullable List<KeypadComponent>> modelData = new HashMap<>();
protected final Map<String, List<KeypadComponent>> modelData = new HashMap<>();
public abstract boolean isCCI(int id);

View File

@ -61,7 +61,7 @@ public class MelCloudDiscoveryService extends AbstractDiscoveryService
}
@Override
protected void activate(Map<String, @Nullable Object> configProperties) {
protected void activate(Map<String, Object> configProperties) {
super.activate(configProperties);
}
@ -72,7 +72,7 @@ public class MelCloudDiscoveryService extends AbstractDiscoveryService
@Override
@Modified
protected void modified(Map<String, @Nullable Object> configProperties) {
protected void modified(Map<String, Object> configProperties) {
super.modified(configProperties);
}

View File

@ -60,7 +60,7 @@ public class MPDHandler extends BaseThingHandler implements MPDEventListener {
private final Logger logger = LoggerFactory.getLogger(MPDHandler.class);
private Map<String, @Nullable State> stateMap = Collections.synchronizedMap(new HashMap<String, @Nullable State>());
private Map<String, State> stateMap = Collections.synchronizedMap(new HashMap<>());
private final MPDConnection connection;
private int volume = 0;

View File

@ -60,7 +60,7 @@ public class NestHandlerFactory extends BaseThingHandlerFactory {
private final ClientBuilder clientBuilder;
private final SseEventSourceFactory eventSourceFactory;
private final Map<ThingUID, @Nullable ServiceRegistration<?>> discoveryService = new HashMap<>();
private final Map<ThingUID, ServiceRegistration<?>> discoveryService = new HashMap<>();
@Activate
public NestHandlerFactory(@Reference ClientBuilder clientBuilder,

View File

@ -35,7 +35,7 @@ import org.openhab.binding.nest.internal.listener.NestThingDataListener;
public class NestCompositeUpdateHandler {
private final Supplier<Set<String>> presentNestIdsSupplier;
private final Map<Class<?>, @Nullable NestUpdateHandler<?>> updateHandlersMap = new ConcurrentHashMap<>();
private final Map<Class<?>, NestUpdateHandler<?>> updateHandlersMap = new ConcurrentHashMap<>();
public NestCompositeUpdateHandler(Supplier<Set<String>> presentNestIdsSupplier) {
this.presentNestIdsSupplier = presentNestIdsSupplier;
@ -104,9 +104,7 @@ public class NestCompositeUpdateHandler {
Set<String> missingNestIds = findMissingNestIds(updates);
if (!missingNestIds.isEmpty()) {
updateHandlersMap.values().forEach(handler -> {
if (handler != null) {
handler.handleMissingNestIds(missingNestIds);
}
handler.handleMissingNestIds(missingNestIds);
});
}
}
@ -121,9 +119,7 @@ public class NestCompositeUpdateHandler {
public void resendLastUpdates() {
updateHandlersMap.values().forEach(handler -> {
if (handler != null) {
handler.resendLastUpdates();
}
handler.resendLastUpdates();
});
}
}

View File

@ -39,8 +39,8 @@ public class NestUpdateHandler<T> {
*/
private static final String ANY_ID = "*";
private final Map<String, @Nullable T> lastUpdates = new ConcurrentHashMap<>();
private final Map<String, @Nullable Set<NestThingDataListener<T>>> listenersMap = new ConcurrentHashMap<>();
private final Map<String, T> lastUpdates = new ConcurrentHashMap<>();
private final Map<String, Set<NestThingDataListener<T>>> listenersMap = new ConcurrentHashMap<>();
public boolean addListener(NestThingDataListener<T> listener) {
return addListener(ANY_ID, listener);

View File

@ -68,8 +68,8 @@ import org.slf4j.LoggerFactory;
@Component(service = ThingHandlerFactory.class, configurationPid = "binding.netatmo")
public class NetatmoHandlerFactory extends BaseThingHandlerFactory {
private final Logger logger = LoggerFactory.getLogger(NetatmoHandlerFactory.class);
private final Map<ThingUID, @Nullable ServiceRegistration<?>> discoveryServiceRegs = new HashMap<>();
private final Map<ThingUID, @Nullable ServiceRegistration<?>> webHookServiceRegs = new HashMap<>();
private final Map<ThingUID, ServiceRegistration<?>> discoveryServiceRegs = new HashMap<>();
private final Map<ThingUID, ServiceRegistration<?>> webHookServiceRegs = new HashMap<>();
private final HttpService httpService;
private final NATherm1StateDescriptionProvider stateDescriptionProvider;
private final TimeZoneProvider timeZoneProvider;
@ -158,7 +158,7 @@ public class NetatmoHandlerFactory extends BaseThingHandlerFactory {
if (bundleContext != null) {
NetatmoModuleDiscoveryService discoveryService = new NetatmoModuleDiscoveryService(netatmoBridgeHandler,
localeProvider, translationProvider);
Map<String, @Nullable Object> configProperties = new HashMap<>();
Map<String, Object> configProperties = new HashMap<>();
configProperties.put(DiscoveryService.CONFIG_PROPERTY_BACKGROUND_DISCOVERY,
Boolean.valueOf(backgroundDiscovery));
discoveryService.activate(configProperties);

View File

@ -58,7 +58,7 @@ public class NetatmoModuleDiscoveryService extends AbstractDiscoveryService impl
}
@Override
public void activate(@Nullable Map<String, @Nullable Object> configProperties) {
public void activate(@Nullable Map<String, Object> configProperties) {
super.activate(configProperties);
netatmoBridgeHandler.registerDataListener(this);
}

View File

@ -79,14 +79,14 @@ public class NetworkDiscoveryService extends AbstractDiscoveryService implements
@Override
@Activate
public void activate(@Nullable Map<String, @Nullable Object> config) {
public void activate(@Nullable Map<String, Object> config) {
super.activate(config);
modified(config);
}
@Override
@Modified
protected void modified(@Nullable Map<String, @Nullable Object> config) {
protected void modified(@Nullable Map<String, Object> config) {
super.modified(config);
// We update instead of replace the configuration object, so that if the user updates the
// configuration, the values are automatically available in all handlers. Because they all

View File

@ -64,7 +64,7 @@ public class NUTHandler extends BaseThingHandler {
* Map to cache user configured channels with their configuration. Channels are dynamically created at
* initialization phase of the thing.
*/
private final Map<ChannelUID, @Nullable NUTDynamicChannelConfiguration> userChannelToNutMap = new HashMap<>();
private final Map<ChannelUID, NUTDynamicChannelConfiguration> userChannelToNutMap = new HashMap<>();
/**
* Cache of the UPS status. When expired makes a call to the NUT server is done to get the actual status. Expires at
* the

View File

@ -169,7 +169,7 @@ public abstract class UplinkBaseHandler extends BaseThingHandler implements Nibe
* @param values map containing the data updates
*/
@Override
public void updateChannelStatus(Map<Channel, @Nullable State> values) {
public void updateChannelStatus(Map<Channel, State> values) {
logger.debug("Handling channel update. ({} Channels)", values.size());
for (Channel channel : values.keySet()) {

View File

@ -33,7 +33,6 @@ import com.google.gson.annotations.SerializedName;
public class GenericDataResponse implements DataResponse {
private final Logger logger = LoggerFactory.getLogger(GenericDataResponse.class);
@NonNullByDefault
public static class Value {
@SerializedName("VariableId")
private @Nullable String variableId;

View File

@ -48,7 +48,7 @@ public class NtpDiscovery extends AbstractDiscoveryService {
@Activate
public NtpDiscovery(final @Reference LocaleProvider localeProvider,
final @Reference TranslationProvider i18nProvider, final @Reference TimeZoneProvider timeZoneProvider,
@Nullable Map<String, @Nullable Object> configProperties) throws IllegalArgumentException {
@Nullable Map<String, Object> configProperties) throws IllegalArgumentException {
super(SUPPORTED_THING_TYPES_UIDS, 2);
this.localeProvider = localeProvider;
this.i18nProvider = i18nProvider;

View File

@ -51,7 +51,7 @@ import org.slf4j.LoggerFactory;
@Component(service = ThingHandlerFactory.class, configurationPid = "binding.onewire")
public class OwHandlerFactory extends BaseThingHandlerFactory {
Logger logger = LoggerFactory.getLogger(OwHandlerFactory.class);
private final Map<ThingUID, @Nullable ServiceRegistration<?>> discoveryServiceRegs = new HashMap<>();
private final Map<ThingUID, ServiceRegistration<?>> discoveryServiceRegs = new HashMap<>();
@NonNullByDefault({})
private OwDynamicStateDescriptionProvider dynamicStateDescriptionProvider;

View File

@ -38,7 +38,7 @@ import org.osgi.service.component.annotations.Deactivate;
@Component(service = { DynamicStateDescriptionProvider.class, OnkyoStateDescriptionProvider.class })
@NonNullByDefault
public class OnkyoStateDescriptionProvider implements DynamicStateDescriptionProvider {
private final Map<ChannelUID, @Nullable List<StateOption>> channelOptionsMap = new ConcurrentHashMap<>();
private final Map<ChannelUID, List<StateOption>> channelOptionsMap = new ConcurrentHashMap<>();
public void setStateOptions(ChannelUID channelUID, List<StateOption> options) {
channelOptionsMap.put(channelUID, options);

View File

@ -21,7 +21,7 @@ import org.eclipse.jdt.annotation.Nullable;
/**
* The {@link GatewayCommand} is used to validate and match commands send through the binding
* to the OpenTherm gateway device.
*
*
* @author Arjen Korevaar - Initial contribution
*/
@NonNullByDefault

View File

@ -66,7 +66,7 @@ public class OpenWeatherMapDiscoveryService extends AbstractDiscoveryService {
}
@Override
protected void activate(@Nullable Map<String, @Nullable Object> configProperties) {
protected void activate(@Nullable Map<String, Object> configProperties) {
super.activate(configProperties);
}

View File

@ -61,7 +61,7 @@ public class OpenWeatherMapHandlerFactory extends BaseThingHandlerFactory {
.unmodifiableSet(Stream.concat(OpenWeatherMapAPIHandler.SUPPORTED_THING_TYPES.stream(),
AbstractOpenWeatherMapHandler.SUPPORTED_THING_TYPES.stream()).collect(Collectors.toSet()));
private final Map<ThingUID, @Nullable ServiceRegistration<?>> discoveryServiceRegs = new HashMap<>();
private final Map<ThingUID, ServiceRegistration<?>> discoveryServiceRegs = new HashMap<>();
private final HttpClient httpClient;
private final LocaleProvider localeProvider;
private final LocationProvider locationProvider;

View File

@ -70,7 +70,7 @@ public class OpenWebNetBridgeHandler extends ConfigStatusBridgeHandler implement
// ConcurrentHashMap of devices registered to this BridgeHandler
// association is: ownId (String) -> OpenWebNetThingHandler, with ownId = WHO.WHERE
private Map<String, @Nullable OpenWebNetThingHandler> registeredDevices = new ConcurrentHashMap<>();
private Map<String, OpenWebNetThingHandler> registeredDevices = new ConcurrentHashMap<>();
protected @Nullable OpenGateway gateway;
private boolean isBusGateway = false;

View File

@ -46,7 +46,7 @@ public class ParadoxAlarmHandlerFactory extends BaseThingHandlerFactory {
private final Logger logger = LoggerFactory.getLogger(ParadoxAlarmHandlerFactory.class);
private final Map<ThingUID, @Nullable ServiceRegistration<?>> discoveryServiceRegs = new HashMap<>();
private final Map<ThingUID, ServiceRegistration<?>> discoveryServiceRegs = new HashMap<>();
@Override
public boolean supportsThingType(ThingTypeUID thingTypeUID) {

View File

@ -17,7 +17,6 @@ import java.util.HashMap;
import java.util.Map;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.openhab.core.thing.ThingTypeUID;
/**
@ -82,7 +81,7 @@ public class PLCLogoBindingConstants {
public static final String NI_ANALOG = "NAI"; // Network analog input
public static final String NQ_ANALOG = "NAQ"; // Network analog output
private static final Map<Integer, @Nullable String> LOGO_STATES_0BA7;
private static final Map<Integer, String> LOGO_STATES_0BA7;
static {
Map<Integer, String> buffer = new HashMap<>();
// buffer.put(???, "Network access error"); // Netzwerkzugriffsfehler
@ -92,7 +91,7 @@ public class PLCLogoBindingConstants {
LOGO_STATES_0BA7 = Collections.unmodifiableMap(buffer);
}
private static final Map<Integer, @Nullable String> LOGO_STATES_0BA8;
private static final Map<Integer, String> LOGO_STATES_0BA8;
static {
Map<Integer, String> buffer = new HashMap<>();
buffer.put(1, "Ethernet link error"); // Netzwerk Verbindungsfehler
@ -104,9 +103,9 @@ public class PLCLogoBindingConstants {
LOGO_STATES_0BA8 = Collections.unmodifiableMap(buffer);
}
public static final Map<String, @Nullable Map<Integer, @Nullable String>> LOGO_STATES;
public static final Map<String, Map<Integer, String>> LOGO_STATES;
static {
Map<String, @Nullable Map<Integer, @Nullable String>> buffer = new HashMap<>();
Map<String, Map<Integer, String>> buffer = new HashMap<>();
buffer.put(LOGO_0BA7, LOGO_STATES_0BA7);
buffer.put(LOGO_0BA8, LOGO_STATES_0BA8);
LOGO_STATES = Collections.unmodifiableMap(buffer);
@ -122,18 +121,18 @@ public class PLCLogoBindingConstants {
}
}
public static final Map<String, @Nullable Layout> LOGO_CHANNELS;
public static final Map<String, Layout> LOGO_CHANNELS;
static {
Map<String, @Nullable Layout> buffer = new HashMap<>();
Map<String, Layout> buffer = new HashMap<>();
buffer.put(DAIGNOSTICS_CHANNEL, new Layout(984, 1)); // Diagnostics starts at 984 for 1 byte
buffer.put(RTC_CHANNEL, new Layout(985, 6)); // RTC starts at 985 for 6 bytes: year month day hour minute second
buffer.put(DAY_OF_WEEK_CHANNEL, new Layout(998, 1)); // Diagnostics starts at 998 for 1 byte
LOGO_CHANNELS = Collections.unmodifiableMap(buffer);
}
public static final Map<Integer, @Nullable String> DAY_OF_WEEK;
public static final Map<Integer, String> DAY_OF_WEEK;
static {
Map<Integer, @Nullable String> buffer = new HashMap<>();
Map<Integer, String> buffer = new HashMap<>();
buffer.put(1, "SUNDAY");
buffer.put(2, "MONDAY");
buffer.put(3, "TUEsDAY");
@ -144,9 +143,9 @@ public class PLCLogoBindingConstants {
DAY_OF_WEEK = Collections.unmodifiableMap(buffer);
}
private static final Map<String, @Nullable Layout> LOGO_MEMORY_0BA7;
private static final Map<String, Layout> LOGO_MEMORY_0BA7;
static {
Map<String, @Nullable Layout> buffer = new HashMap<>();
Map<String, Layout> buffer = new HashMap<>();
buffer.put(MEMORY_BYTE, new Layout(0, 850));
buffer.put(MEMORY_DWORD, new Layout(0, 850));
buffer.put(MEMORY_WORD, new Layout(0, 850));
@ -160,9 +159,9 @@ public class PLCLogoBindingConstants {
LOGO_MEMORY_0BA7 = Collections.unmodifiableMap(buffer);
}
private static final Map<String, @Nullable Layout> LOGO_MEMORY_0BA8;
private static final Map<String, Layout> LOGO_MEMORY_0BA8;
static {
Map<String, @Nullable Layout> buffer = new HashMap<>();
Map<String, Layout> buffer = new HashMap<>();
buffer.put(MEMORY_BYTE, new Layout(0, 850));
buffer.put(MEMORY_DWORD, new Layout(0, 850));
buffer.put(MEMORY_WORD, new Layout(0, 850));
@ -180,9 +179,9 @@ public class PLCLogoBindingConstants {
LOGO_MEMORY_0BA8 = Collections.unmodifiableMap(buffer);
}
public static final Map<String, @Nullable Map<String, @Nullable Layout>> LOGO_MEMORY_BLOCK;
public static final Map<String, Map<String, Layout>> LOGO_MEMORY_BLOCK;
static {
Map<String, @Nullable Map<String, @Nullable Layout>> buffer = new HashMap<>();
Map<String, Map<String, Layout>> buffer = new HashMap<>();
buffer.put(LOGO_0BA7, LOGO_MEMORY_0BA7);
buffer.put(LOGO_0BA8, LOGO_MEMORY_0BA8);
LOGO_MEMORY_BLOCK = Collections.unmodifiableMap(buffer);

View File

@ -22,7 +22,6 @@ import java.util.Set;
import java.util.concurrent.atomic.AtomicReference;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.openhab.binding.plclogo.internal.PLCLogoClient;
import org.openhab.binding.plclogo.internal.config.PLCAnalogConfiguration;
import org.openhab.core.config.core.Configuration;
@ -59,18 +58,18 @@ public class PLCAnalogHandler extends PLCCommonHandler {
private final Logger logger = LoggerFactory.getLogger(PLCAnalogHandler.class);
private AtomicReference<PLCAnalogConfiguration> config = new AtomicReference<>();
private static final Map<String, @Nullable Integer> LOGO_BLOCKS_0BA7;
private static final Map<String, Integer> LOGO_BLOCKS_0BA7;
static {
Map<String, @Nullable Integer> buffer = new HashMap<>();
Map<String, Integer> buffer = new HashMap<>();
buffer.put(I_ANALOG, 8); // 8 analog inputs
buffer.put(Q_ANALOG, 2); // 2 analog outputs
buffer.put(M_ANALOG, 16); // 16 analog markers
LOGO_BLOCKS_0BA7 = Collections.unmodifiableMap(buffer);
}
private static final Map<String, @Nullable Integer> LOGO_BLOCKS_0BA8;
private static final Map<String, Integer> LOGO_BLOCKS_0BA8;
static {
Map<String, @Nullable Integer> buffer = new HashMap<>();
Map<String, Integer> buffer = new HashMap<>();
buffer.put(I_ANALOG, 8); // 8 analog inputs
buffer.put(Q_ANALOG, 8); // 8 analog outputs
buffer.put(M_ANALOG, 64); // 64 analog markers
@ -79,9 +78,9 @@ public class PLCAnalogHandler extends PLCCommonHandler {
LOGO_BLOCKS_0BA8 = Collections.unmodifiableMap(buffer);
}
private static final Map<String, @Nullable Map<String, @Nullable Integer>> LOGO_BLOCK_NUMBER;
private static final Map<String, Map<String, Integer>> LOGO_BLOCK_NUMBER;
static {
Map<String, @Nullable Map<String, @Nullable Integer>> buffer = new HashMap<>();
Map<String, Map<String, Integer>> buffer = new HashMap<>();
buffer.put(LOGO_0BA7, LOGO_BLOCKS_0BA7);
buffer.put(LOGO_0BA8, LOGO_BLOCKS_0BA8);
LOGO_BLOCK_NUMBER = Collections.unmodifiableMap(buffer);
@ -217,7 +216,7 @@ public class PLCAnalogHandler extends PLCCommonHandler {
String family = getLogoFamily();
logger.debug("Get block number of {} LOGO! for {} blocks.", family, kind);
Map<?, @Nullable Integer> blocks = LOGO_BLOCK_NUMBER.get(family);
Map<?, Integer> blocks = LOGO_BLOCK_NUMBER.get(family);
Integer number = (blocks != null) ? blocks.get(kind) : null;
return (number != null) ? number.intValue() : 0;
}

View File

@ -64,7 +64,7 @@ public class PLCBridgeHandler extends BaseBridgeHandler {
private final Logger logger = LoggerFactory.getLogger(PLCBridgeHandler.class);
private Map<ChannelUID, @Nullable String> oldValues = new HashMap<>();
private Map<ChannelUID, String> oldValues = new HashMap<>();
@Nullable
private volatile PLCLogoClient client; // S7 client used for communication with Logo!
@ -94,7 +94,7 @@ public class PLCBridgeHandler extends BaseBridgeHandler {
@Override
public void run() {
PLCLogoClient localClient = client;
Map<?, @Nullable Layout> memory = LOGO_MEMORY_BLOCK.get(getLogoFamily());
Map<?, Layout> memory = LOGO_MEMORY_BLOCK.get(getLogoFamily());
Layout layout = (memory != null) ? memory.get(MEMORY_SIZE) : null;
if ((layout != null) && (localClient != null)) {
try {
@ -172,7 +172,7 @@ public class PLCBridgeHandler extends BaseBridgeHandler {
rtc.set(clock);
updateState(channelUID, new DateTimeType(clock));
} else if (DAIGNOSTICS_CHANNEL.equals(channelId)) {
Map<Integer, @Nullable String> states = LOGO_STATES.get(getLogoFamily());
Map<Integer, String> states = LOGO_STATES.get(getLogoFamily());
if (states != null) {
for (Integer key : states.keySet()) {
String message = states.get(buffer[0] & key.intValue());

View File

@ -96,7 +96,7 @@ public abstract class PLCCommonHandler extends BaseThingHandler {
String family = getLogoFamily();
logger.debug("Get start address of {} LOGO! for {} blocks.", family, kind);
Map<?, @Nullable Layout> memory = LOGO_MEMORY_BLOCK.get(family);
Map<?, Layout> memory = LOGO_MEMORY_BLOCK.get(family);
Layout layout = (memory != null) ? memory.get(kind) : null;
return layout != null ? layout.address : INVALID;
}
@ -111,7 +111,7 @@ public abstract class PLCCommonHandler extends BaseThingHandler {
String family = getLogoFamily();
logger.debug("Get data buffer length of {} LOGO! for {} blocks.", family, kind);
Map<?, @Nullable Layout> memory = LOGO_MEMORY_BLOCK.get(family);
Map<?, Layout> memory = LOGO_MEMORY_BLOCK.get(family);
Layout layout = (memory != null) ? memory.get(kind) : null;
return layout != null ? layout.length : 0;
}
@ -186,7 +186,7 @@ public abstract class PLCCommonHandler extends BaseThingHandler {
logger.debug("Get base address of {} LOGO! for block {} .", family, name);
String block = name.split("\\.")[0];
Map<?, @Nullable Layout> memory = LOGO_MEMORY_BLOCK.get(family);
Map<?, Layout> memory = LOGO_MEMORY_BLOCK.get(family);
if (isValid(name) && !block.isEmpty() && (memory != null)) {
if (Character.isDigit(block.charAt(1))) {
layout = memory.get(block.substring(0, 1));

View File

@ -22,7 +22,6 @@ import java.util.Set;
import java.util.concurrent.atomic.AtomicReference;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.openhab.binding.plclogo.internal.PLCLogoClient;
import org.openhab.binding.plclogo.internal.config.PLCDigitalConfiguration;
import org.openhab.core.config.core.Configuration;
@ -61,18 +60,18 @@ public class PLCDigitalHandler extends PLCCommonHandler {
private final Logger logger = LoggerFactory.getLogger(PLCDigitalHandler.class);
private AtomicReference<PLCDigitalConfiguration> config = new AtomicReference<>();
private static final Map<String, @Nullable Integer> LOGO_BLOCKS_0BA7;
private static final Map<String, Integer> LOGO_BLOCKS_0BA7;
static {
Map<String, @Nullable Integer> buffer = new HashMap<>();
Map<String, Integer> buffer = new HashMap<>();
buffer.put(I_DIGITAL, 24); // 24 digital inputs
buffer.put(Q_DIGITAL, 16); // 16 digital outputs
buffer.put(M_DIGITAL, 27); // 27 digital markers
LOGO_BLOCKS_0BA7 = Collections.unmodifiableMap(buffer);
}
private static final Map<String, @Nullable Integer> LOGO_BLOCKS_0BA8;
private static final Map<String, Integer> LOGO_BLOCKS_0BA8;
static {
Map<String, @Nullable Integer> buffer = new HashMap<>();
Map<String, Integer> buffer = new HashMap<>();
buffer.put(I_DIGITAL, 24); // 24 digital inputs
buffer.put(Q_DIGITAL, 20); // 20 digital outputs
buffer.put(M_DIGITAL, 64); // 64 digital markers
@ -81,9 +80,9 @@ public class PLCDigitalHandler extends PLCCommonHandler {
LOGO_BLOCKS_0BA8 = Collections.unmodifiableMap(buffer);
}
private static final Map<String, @Nullable Map<String, @Nullable Integer>> LOGO_BLOCK_NUMBER;
private static final Map<String, Map<String, Integer>> LOGO_BLOCK_NUMBER;
static {
Map<String, @Nullable Map<String, @Nullable Integer>> buffer = new HashMap<>();
Map<String, Map<String, Integer>> buffer = new HashMap<>();
buffer.put(LOGO_0BA7, LOGO_BLOCKS_0BA7);
buffer.put(LOGO_0BA8, LOGO_BLOCKS_0BA8);
LOGO_BLOCK_NUMBER = Collections.unmodifiableMap(buffer);
@ -227,7 +226,7 @@ public class PLCDigitalHandler extends PLCCommonHandler {
String family = getLogoFamily();
logger.debug("Get block number of {} LOGO! for {} blocks.", family, kind);
Map<?, @Nullable Integer> blocks = LOGO_BLOCK_NUMBER.get(family);
Map<?, Integer> blocks = LOGO_BLOCK_NUMBER.get(family);
Integer number = (blocks != null) ? blocks.get(kind) : null;
return (number != null) ? number.intValue() : 0;
}

View File

@ -48,7 +48,7 @@ import org.osgi.service.component.annotations.Reference;
@Component(service = ThingHandlerFactory.class, configurationPid = "binding.plugwise")
public class PlugwiseHandlerFactory extends BaseThingHandlerFactory {
private final Map<ThingUID, @Nullable ServiceRegistration<?>> discoveryServiceRegistrations = new HashMap<>();
private final Map<ThingUID, ServiceRegistration<?>> discoveryServiceRegistrations = new HashMap<>();
private final SerialPortManager serialPortManager;

View File

@ -102,7 +102,7 @@ public class PlugwiseThingDiscoveryService extends AbstractDiscoveryService
private @Nullable ScheduledFuture<?> watchJob;
private CurrentRoleCall currentRoleCall = new CurrentRoleCall();
private final Map<MACAddress, @Nullable DiscoveredNode> discoveredNodes = new ConcurrentHashMap<>();
private final Map<MACAddress, DiscoveredNode> discoveredNodes = new ConcurrentHashMap<>();
public PlugwiseThingDiscoveryService(PlugwiseStickHandler stickHandler) throws IllegalArgumentException {
super(DISCOVERED_THING_TYPES_UIDS, 1, true);
@ -309,16 +309,16 @@ public class PlugwiseThingDiscoveryService extends AbstractDiscoveryService
}
}
Iterator<Entry<MACAddress, @Nullable DiscoveredNode>> it = discoveredNodes.entrySet().iterator();
Iterator<Entry<MACAddress, DiscoveredNode>> it = discoveredNodes.entrySet().iterator();
while (it.hasNext()) {
Entry<MACAddress, @Nullable DiscoveredNode> entry = it.next();
Entry<MACAddress, DiscoveredNode> entry = it.next();
DiscoveredNode node = entry.getValue();
if (node != null && (System.currentTimeMillis() - node.lastRequestMillis) > (MESSAGE_TIMEOUT * 1000)
if (System.currentTimeMillis() - node.lastRequestMillis > (MESSAGE_TIMEOUT * 1000)
&& node.attempts < MESSAGE_RETRY_ATTEMPTS) {
logger.debug("Resending timed out information request message to node ({})", node.macAddress);
updateInformation(node.macAddress);
node.attempts++;
} else if (node != null && node.attempts >= MESSAGE_RETRY_ATTEMPTS) {
} else if (node.attempts >= MESSAGE_RETRY_ATTEMPTS) {
logger.debug("Giving up on information request for node ({})", node.macAddress);
it.remove();
}

View File

@ -49,7 +49,7 @@ import org.osgi.service.component.annotations.Reference;
@Component(service = ThingHandlerFactory.class, configurationPid = "binding.powermax")
public class PowermaxHandlerFactory extends BaseThingHandlerFactory {
private final Map<ThingUID, @Nullable ServiceRegistration<?>> discoveryServiceRegs = new HashMap<>();
private final Map<ThingUID, ServiceRegistration<?>> discoveryServiceRegs = new HashMap<>();
private final SerialPortManager serialPortManager;
private final TimeZoneProvider timeZoneProvider;

View File

@ -60,12 +60,12 @@ public class SagerCasterDiscoveryService extends AbstractDiscoveryService {
}
@Override
protected void activate(@Nullable Map<String, @Nullable Object> configProperties) {
protected void activate(@Nullable Map<String, Object> configProperties) {
super.activate(configProperties);
}
@Override
protected void modified(@Nullable Map<String, @Nullable Object> configProperties) {
protected void modified(@Nullable Map<String, Object> configProperties) {
super.modified(configProperties);
}

View File

@ -20,7 +20,6 @@ import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -38,7 +37,7 @@ public class EventDispatcher {
private final Set<SatelEventListener> eventListeners = new CopyOnWriteArraySet<>();
@SuppressWarnings("unchecked")
private final Map<Class<? extends SatelEvent>, @Nullable Method> eventHandlers = Stream
private final Map<Class<? extends SatelEvent>, Method> eventHandlers = Stream
.of(SatelEventListener.class.getDeclaredMethods())
.filter(m -> m.getParameterCount() == 1 && SatelEvent.class.isAssignableFrom(m.getParameterTypes()[0]))
.collect(Collectors.toMap(m -> (Class<SatelEvent>) m.getParameterTypes()[0], m -> m));

View File

@ -70,7 +70,7 @@ public class RdsDataPoints {
* the Map, and b) by pointClass (which we do indirectly "double dereferenced"
* via this index
*/
private final Map<String, @Nullable String> indexClassToId = new HashMap<>();
private final Map<String, String> indexClassToId = new HashMap<>();
@SerializedName("totalCount")
private @Nullable String totalCount;
@ -323,11 +323,11 @@ public class RdsDataPoints {
throw new RdsCloudException("existing vs. new point class mismatch");
}
myPoint.refreshValueFrom((BasePoint) newPoint);
myPoint.refreshValueFrom(newPoint);
if (logger.isDebugEnabled()) {
logger.debug("refresh {}.{}: {} << {}", getDescription(), myPoint.getPointClass(),
myPoint.getState(), ((BasePoint) newPoint).getState());
myPoint.getState(), newPoint.getState());
}
}
}
@ -349,9 +349,7 @@ public class RdsDataPoints {
if (points != null) {
indexClassToId.clear();
for (Entry<String, @Nullable BasePoint> entry : points.entrySet()) {
@Nullable
String pointKey = entry.getKey();
@Nullable
BasePoint pointValue = entry.getValue();
if (pointValue != null) {
indexClassToId.put(pointValue.getPointClass(), pointKey);

View File

@ -19,7 +19,6 @@ import java.util.HashMap;
import java.util.Map;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
/**
* The {@link RdsDebouncer} determines if change events should be forwarded to a
@ -30,10 +29,8 @@ import org.eclipse.jdt.annotation.Nullable;
@NonNullByDefault
public class RdsDebouncer {
private final Map<String, @Nullable DebounceDelay> channels = new HashMap<>();
private final Map<String, DebounceDelay> channels = new HashMap<>();
@SuppressWarnings("null")
@NonNullByDefault
static class DebounceDelay {
private long expireTime;
@ -58,10 +55,9 @@ public class RdsDebouncer {
public Boolean timeExpired(String channelId) {
if (channels.containsKey(channelId)) {
@Nullable
DebounceDelay debounceDelay = channels.get(channelId);
if (debounceDelay != null) {
return ((DebounceDelay) debounceDelay).timeExpired();
return debounceDelay.timeExpired();
}
}
return true;

View File

@ -47,7 +47,7 @@ public class RdsHandlerFactory extends BaseThingHandlerFactory {
private static final Set<ThingTypeUID> SUPPORTED_THING_TYPES_UIDS = Collections
.unmodifiableSet(new HashSet<>(Arrays.asList(THING_TYPE_CLOUD, THING_TYPE_RDS)));
private final Map<ThingUID, @Nullable ServiceRegistration<?>> discos = new HashMap<>();
private final Map<ThingUID, ServiceRegistration<?>> discos = new HashMap<>();
@Override
public boolean supportsThingType(ThingTypeUID thingTypeUID) {

View File

@ -28,9 +28,9 @@ import org.eclipse.jdt.annotation.Nullable;
@NonNullByDefault
public class Forecast implements Comparable<Forecast> {
private final ZonedDateTime validTime;
private final Map<String, @Nullable BigDecimal> parameters;
private final Map<String, BigDecimal> parameters;
public Forecast(ZonedDateTime validTime, Map<String, @Nullable BigDecimal> parameters) {
public Forecast(ZonedDateTime validTime, Map<String, BigDecimal> parameters) {
this.validTime = validTime;
this.parameters = parameters;
}
@ -39,7 +39,7 @@ public class Forecast implements Comparable<Forecast> {
return validTime;
}
public Map<String, @Nullable BigDecimal> getParameters() {
public Map<String, BigDecimal> getParameters() {
return parameters;
}

Some files were not shown because too many files have changed in this diff Show More