]> git.basschouten.com Git - openhab-addons.git/commitdiff
Fix/suppress PMD CompareObjectsWithEquals findings (#11476)
authorWouter Born <github@maindrain.net>
Tue, 2 Nov 2021 09:43:53 +0000 (10:43 +0100)
committerGitHub <noreply@github.com>
Tue, 2 Nov 2021 09:43:53 +0000 (10:43 +0100)
Newer PMD versions discover more CompareObjectsWithEquals findings.

Related to https://github.com/openhab/static-code-analysis/pull/423

Signed-off-by: Wouter Born <github@maindrain.net>
82 files changed:
bundles/org.openhab.automation.pwm/src/main/java/org/openhab/automation/pwm/internal/handler/state/State.java
bundles/org.openhab.binding.amazondashbutton/src/main/java/org/openhab/binding/amazondashbutton/internal/capturing/PacketCapturingService.java
bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/AccountServlet.java
bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/handler/FlashBriefingProfileHandler.java
bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/net/SocketChannelSession.java
bundles/org.openhab.binding.atlona/src/main/java/org/openhab/binding/atlona/internal/pro3/AtlonaPro3PortocolHandler.java
bundles/org.openhab.binding.autelis/src/main/java/org/openhab/binding/autelis/internal/handler/AutelisHandler.java
bundles/org.openhab.binding.bluetooth.bluez/src/main/java/org/openhab/binding/bluetooth/bluez/internal/BlueZBluetoothDevice.java
bundles/org.openhab.binding.bluetooth.roaming/src/main/java/org/openhab/binding/bluetooth/roaming/internal/RoamingBluetoothDevice.java
bundles/org.openhab.binding.bluetooth.roaming/src/main/java/org/openhab/binding/bluetooth/roaming/internal/RoamingBridgeHandler.java
bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/ConnectedBluetoothHandler.java
bundles/org.openhab.binding.bluetooth/src/main/java/org/openhab/binding/bluetooth/util/HeritableFuture.java
bundles/org.openhab.binding.bmwconnecteddrive/src/main/java/org/openhab/binding/bmwconnecteddrive/internal/handler/ConnectedDriveProxy.java
bundles/org.openhab.binding.bticinosmarther/src/main/java/org/openhab/binding/bticinosmarther/internal/api/dto/Enums.java
bundles/org.openhab.binding.caddx/src/main/java/org/openhab/binding/caddx/internal/handler/CaddxBaseThingHandler.java
bundles/org.openhab.binding.comfoair/src/main/java/org/openhab/binding/comfoair/internal/ComfoAirCommandType.java
bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/manager/impl/DeviceStatusManagerImpl.java
bundles/org.openhab.binding.dmx/src/main/java/org/openhab/binding/dmx/internal/handler/TunableWhiteThingHandler.java
bundles/org.openhab.binding.dscalarm/src/main/java/org/openhab/binding/dscalarm/internal/handler/DSCAlarmBaseThingHandler.java
bundles/org.openhab.binding.dscalarm/src/main/java/org/openhab/binding/dscalarm/internal/handler/KeypadThingHandler.java
bundles/org.openhab.binding.dscalarm/src/main/java/org/openhab/binding/dscalarm/internal/handler/PanelThingHandler.java
bundles/org.openhab.binding.dscalarm/src/main/java/org/openhab/binding/dscalarm/internal/handler/PartitionThingHandler.java
bundles/org.openhab.binding.dsmr/src/main/java/org/openhab/binding/dsmr/internal/device/DSMRSerialAutoDevice.java
bundles/org.openhab.binding.dwdunwetter/src/main/java/org/openhab/binding/dwdunwetter/internal/dto/SeverityComparator.java
bundles/org.openhab.binding.ecobee/src/main/java/org/openhab/binding/ecobee/internal/dto/SelectionDTO.java
bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/Command.java
bundles/org.openhab.binding.elerotransmitterstick/src/main/java/org/openhab/binding/elerotransmitterstick/internal/stick/DelayedCommand.java
bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_3F/A5_3F_7F_Universal.java
bundles/org.openhab.binding.gce/src/main/java/org/openhab/binding/gce/internal/handler/Ipx800v3Handler.java
bundles/org.openhab.binding.gpstracker/src/main/java/org/openhab/binding/gpstracker/internal/message/LocationMessage.java
bundles/org.openhab.binding.gree/src/main/java/org/openhab/binding/gree/internal/handler/GreeAirDevice.java
bundles/org.openhab.binding.haywardomnilogic/src/main/java/org/openhab/binding/haywardomnilogic/internal/discovery/HaywardDiscoveryService.java
bundles/org.openhab.binding.heliosventilation/src/main/java/org/openhab/binding/heliosventilation/internal/HeliosVentilationDataPoint.java
bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/type/OnOffTypeConverter.java
bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/type/OpenClosedTypeConverter.java
bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/converter/type/PercentTypeConverter.java
bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/misc/MiscUtils.java
bundles/org.openhab.binding.homematic/src/main/java/org/openhab/binding/homematic/internal/type/MetadataUtils.java
bundles/org.openhab.binding.iaqualink/src/main/java/org/openhab/binding/iaqualink/internal/handler/IAqualinkHandler.java
bundles/org.openhab.binding.innogysmarthome/src/main/java/org/openhab/binding/innogysmarthome/internal/client/entity/device/Device.java
bundles/org.openhab.binding.insteon/src/main/java/org/openhab/binding/insteon/internal/device/CommandHandler.java
bundles/org.openhab.binding.insteon/src/main/java/org/openhab/binding/insteon/internal/device/MessageDispatcher.java
bundles/org.openhab.binding.ipcamera/src/main/java/org/openhab/binding/ipcamera/internal/handler/IpCameraHandler.java
bundles/org.openhab.binding.jeelink/src/main/java/org/openhab/binding/jeelink/internal/JeeLinkHandler.java
bundles/org.openhab.binding.kostalinverter/src/main/java/org/openhab/binding/kostalinverter/internal/secondgeneration/SecondGenerationConfigurationHandler.java
bundles/org.openhab.binding.lcn/src/main/java/org/openhab/binding/lcn/internal/LcnModuleDiscoveryService.java
bundles/org.openhab.binding.lcn/src/main/java/org/openhab/binding/lcn/internal/subhandler/LcnModuleRvarSetpointSubHandler.java
bundles/org.openhab.binding.lcn/src/main/java/org/openhab/binding/lcn/internal/subhandler/LcnModuleVariableSubHandler.java
bundles/org.openhab.binding.lifx/src/main/java/org/openhab/binding/lifx/internal/dto/Effect.java
bundles/org.openhab.binding.luxtronikheatpump/src/main/java/org/openhab/binding/luxtronikheatpump/internal/ChannelUpdaterJob.java
bundles/org.openhab.binding.modbus.helioseasycontrols/src/main/java/org/openhab/binding/modbus/helioseasycontrols/internal/HeliosEasyControlsHandler.java
bundles/org.openhab.binding.mqtt.homie/src/main/java/org/openhab/binding/mqtt/homie/internal/homie300/Property.java
bundles/org.openhab.binding.mqtt/src/main/java/org/openhab/binding/mqtt/handler/SystemBrokerHandler.java
bundles/org.openhab.binding.netatmo/src/main/java/org/openhab/binding/netatmo/internal/thermostat/NATherm1Handler.java
bundles/org.openhab.binding.oceanic/src/main/java/org/openhab/binding/oceanic/internal/handler/OceanicThingHandler.java
bundles/org.openhab.binding.openthermgateway/src/main/java/org/openhab/binding/openthermgateway/handler/OpenThermGatewayHandler.java
bundles/org.openhab.binding.openuv/src/main/java/org/openhab/binding/openuv/internal/handler/OpenUVReportHandler.java
bundles/org.openhab.binding.openwebnet/src/main/java/org/openhab/binding/openwebnet/internal/discovery/OpenWebNetDeviceDiscoveryService.java
bundles/org.openhab.binding.openwebnet/src/main/java/org/openhab/binding/openwebnet/internal/handler/OpenWebNetBridgeHandler.java
bundles/org.openhab.binding.pentair/src/main/java/org/openhab/binding/pentair/internal/handler/PentairEasyTouchHandler.java
bundles/org.openhab.binding.plclogo/src/main/java/org/openhab/binding/plclogo/internal/handler/PLCBridgeHandler.java
bundles/org.openhab.binding.plugwise/src/main/java/org/openhab/binding/plugwise/internal/handler/AbstractPlugwiseThingHandler.java
bundles/org.openhab.binding.plugwise/src/main/java/org/openhab/binding/plugwise/internal/handler/PlugwiseStickHandler.java
bundles/org.openhab.binding.qbus/src/main/java/org/openhab/binding/qbus/internal/handler/QbusDimmerHandler.java
bundles/org.openhab.binding.qbus/src/main/java/org/openhab/binding/qbus/internal/handler/QbusRolHandler.java
bundles/org.openhab.binding.satel/src/main/java/org/openhab/binding/satel/internal/handler/SatelOutputHandler.java
bundles/org.openhab.binding.satel/src/main/java/org/openhab/binding/satel/internal/handler/SatelStateThingHandler.java
bundles/org.openhab.binding.satel/src/main/java/org/openhab/binding/satel/internal/handler/SatelZoneHandler.java
bundles/org.openhab.binding.sensibo/src/main/java/org/openhab/binding/sensibo/internal/handler/SensiboSkyHandler.java
bundles/org.openhab.binding.sonos/src/main/java/org/openhab/binding/sonos/internal/handler/ZonePlayerHandler.java
bundles/org.openhab.binding.valloxmv/src/main/java/org/openhab/binding/valloxmv/internal/ValloxMVHandler.java
bundles/org.openhab.binding.velux/src/main/java/org/openhab/binding/velux/internal/discovery/VeluxDiscoveryService.java
bundles/org.openhab.binding.velux/src/main/java/org/openhab/binding/velux/internal/factory/VeluxHandlerFactory.java
bundles/org.openhab.binding.velux/src/main/java/org/openhab/binding/velux/internal/handler/ChannelActuatorPosition.java
bundles/org.openhab.binding.velux/src/main/java/org/openhab/binding/velux/internal/handler/ChannelVShutterPosition.java
bundles/org.openhab.binding.velux/src/main/java/org/openhab/binding/velux/internal/handler/utils/Thing2VeluxActuator.java
bundles/org.openhab.binding.ventaair/src/main/java/org/openhab/binding/ventaair/internal/VentaThingHandler.java
bundles/org.openhab.binding.wled/src/main/java/org/openhab/binding/wled/internal/WLedHandler.java
bundles/org.openhab.io.hueemulation/src/main/java/org/openhab/io/hueemulation/internal/HueEmulationService.java
bundles/org.openhab.persistence.jdbc/src/main/java/org/openhab/persistence/jdbc/dto/ItemVO.java
bundles/org.openhab.voice.mactts/src/test/java/org/openhab/voice/mactts/internal/MacTTSVoiceTest.java
itests/org.openhab.binding.nest.tests/src/main/java/org/openhab/binding/nest/internal/wwn/dto/WWNDataUtil.java

index 2bf490b5e9aab67f4dd141fa3b9cf471b1fdb924..2461cc74e3a953333777bc0a01e7eae878b9d55c 100644 (file)
@@ -50,6 +50,7 @@ public abstract class State {
     /**
      * Sets a new state in the state machine.
      */
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     public synchronized void nextState(Function<StateMachine, ? extends State> nextState) {
         if (context.getState() != this) { // compare identity
             return;
index 68c834955a4a762f488625faf850b9403367928d..0d671cb8607aaa5e05bf5c0242c51f614dc2008e 100644 (file)
@@ -137,6 +137,7 @@ public class PacketCapturingService {
      * @param packet The packet to be checked
      * @return Returns true, if the packet should be captured, otherwise false
      */
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     private boolean shouldCapture(final Packet packet) {
         if (packet.contains(ArpPacket.class)) {
             ArpPacket arpPacket = packet.get(ArpPacket.class);
index d81d2a19abbb78268e936b7da9ea58a49bd314f7..6ebc28406eb53033a83ef09f6986211173ff8109 100644 (file)
@@ -173,7 +173,7 @@ public class AccountServlet extends HttpServlet {
                     + uri.substring(PROXY_URI_PART.length());
 
             String postData = null;
-            if (verb == "POST" || verb == "PUT") {
+            if ("POST".equals(verb) || "PUT".equals(verb)) {
                 postData = req.getReader().lines().collect(Collectors.joining(System.lineSeparator()));
             }
 
index b665efacad920986b2512aeebb2b79175a33083c..865c9953ac72badf7452b8f2a0fd50fe4ffad209 100644 (file)
@@ -157,6 +157,7 @@ public class FlashBriefingProfileHandler extends BaseThingHandler {
         }
     }
 
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     public boolean initialize(AccountHandler handler, String currentConfigurationJson) {
         updateState(CHANNEL_SAVE, OnOffType.OFF);
         if (updatePlayOnDevice) {
index f437eab8a2938831fb5f67e09ec10156e245a180..63148ac6cbc1c9525558b3ebeed3cecf88a4f437 100644 (file)
@@ -319,6 +319,7 @@ public class SocketChannelSession implements SocketSession {
          * Stops the reader. Will wait 5 seconds for the runnable to stop (should stop within 1 second based on the poll
          * timeout below)
          */
+        @SuppressWarnings("PMD.CompareObjectsWithEquals")
         public void stopRunning() {
             if (isRunning.getAndSet(false)) {
                 // only wait if stopRunning didn't get called as part of processing a message
index 5bf66f38c64b4b96b435ec20aa24b0880e38a449..4192aa946dd559565c92e23a14157ee9b8dd4de8 100644 (file)
@@ -1088,7 +1088,7 @@ class AtlonaPro3PortocolHandler {
 
         @Override
         public void responseReceived(String response) {
-            if (response == null || response == "") {
+            if (response == null || response.isEmpty()) {
                 return;
             }
 
index 0766da21fc19cdbe12e81c5a9f47000786e40782..0591007d8971f48fe0441920ab89bdbdcd5a7a24 100644 (file)
@@ -554,6 +554,6 @@ public class AutelisHandler extends BaseThingHandler {
     }
 
     private boolean isJandy() {
-        return getThing().getThingTypeUID() == AutelisBindingConstants.JANDY_THING_TYPE_UID;
+        return AutelisBindingConstants.JANDY_THING_TYPE_UID.equals(getThing().getThingTypeUID());
     }
 }
index 4f865323a26d465ea7ba4fcbfba1ef43771db4e5..531769122ceda81b3ffbd54c56fe659cc4346107 100644 (file)
@@ -83,6 +83,7 @@ public class BlueZBluetoothDevice extends BaseBluetoothDevice implements BlueZEv
         logger.debug("Creating DBusBlueZ device with address '{}'", address);
     }
 
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     public synchronized void updateBlueZDevice(@Nullable BluetoothDevice blueZDevice) {
         if (this.device != null && this.device == blueZDevice) {
             return;
index 4ad7a0b255a8dcea76231e1263f8f31b728333c7..ef3a976825c134af2a8d775eef470b013113e392 100644 (file)
@@ -104,6 +104,7 @@ public class RoamingBluetoothDevice extends DelegateBluetoothDevice {
         return getAdapter(currentDelegateRef.get());
     }
 
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     private class Listener implements BluetoothDeviceListener {
 
         private BluetoothDevice device;
index 2fea7a33e6a95a173659ab0d1c5f4d8020ffb425..b1bacfbf431cd03fc41292c06eb7272e92365b9a 100644 (file)
@@ -143,6 +143,7 @@ public class RoamingBridgeHandler extends BaseBridgeHandler implements RoamingBl
     }
 
     @Override
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     public void addBluetoothAdapter(BluetoothAdapter adapter) {
         if (adapter == this) {
             return;
@@ -164,6 +165,7 @@ public class RoamingBridgeHandler extends BaseBridgeHandler implements RoamingBl
     }
 
     @Override
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     public void removeBluetoothAdapter(BluetoothAdapter adapter) {
         if (adapter == this) {
             return;
index 556b23ee2f11bee3401dff367a69530cc1b0602d..b53f30219fb9a059f44ce64ff02e07061c47334d 100644 (file)
@@ -109,6 +109,7 @@ public class ConnectedBluetoothHandler extends BeaconBluetoothHandler {
     }
 
     @Override
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     public void dispose() {
         cancel(reconnectJob, true);
         reconnectJob = null;
@@ -181,6 +182,7 @@ public class ConnectedBluetoothHandler extends BeaconBluetoothHandler {
         return characteristic;
     }
 
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     private <T> CompletableFuture<T> executeWithConnection(UUID serviceUUID, UUID characteristicUUID,
             Function<BluetoothCharacteristic, CompletableFuture<T>> callable) {
         if (connectionTaskExecutor == scheduler) {
index 2b96d2f1fd1d429e1c2c06c2a316daf7a74aef52..c7337da9d78dbfaf64ee177ea2e574eb80f387fd 100644 (file)
@@ -67,6 +67,7 @@ public class HeritableFuture<T> extends CompletableFuture<T> {
         return new HeritableFuture<>(this);
     }
 
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     protected void setParentFuture(Supplier<@Nullable Future<?>> futureSupplier) {
         synchronized (futureLock) {
             var future = futureSupplier.get();
index dd383a3a470dc3c2f0a1ec3ab9f6f69d6ce8a311..0a8c80e57736c321dfc572e4508b21dc4c40c1b1 100644 (file)
@@ -291,7 +291,7 @@ public class ConnectedDriveProxy {
             ContentResponse authResponse = authRequest.timeout(HTTP_TIMEOUT_SEC, TimeUnit.SECONDS).send();
             String authResponseString = URLDecoder.decode(authResponse.getContentAsString(), Charset.defaultCharset());
             String authCode = getAuthCode(authResponseString);
-            if (authCode != Constants.EMPTY) {
+            if (!Constants.EMPTY.equals(authCode)) {
                 MultiMap<String> codeChallenge = getTokenBaseValues();
                 codeChallenge.put(AUTHORIZATION, authCode);
 
index 2dfa4c2db99cda0341218374d928988e8c2ca15b..e0cb83d1f20097ca26f1f4e4198b1a1f473a4e44 100644 (file)
@@ -171,11 +171,11 @@ public class Enums {
          * @return the enum value representing the given measure unit
          */
         public static MeasureUnit fromUnit(Unit<?> unit) {
-            if (unit == SIUnits.CELSIUS) {
+            if (SIUnits.CELSIUS.equals(unit)) {
                 return CELSIUS;
-            } else if (unit == ImperialUnits.FAHRENHEIT) {
+            } else if (ImperialUnits.FAHRENHEIT.equals(unit)) {
                 return FAHRENHEIT;
-            } else if (unit == Units.PERCENT) {
+            } else if (Units.PERCENT.equals(unit)) {
                 return PERCENTAGE;
             } else {
                 return DIMENSIONLESS;
index ef1bcd09d127e9292f6776fdd813332acf687792..aa0d8bae73b92222ba64718d146a80cc6d1becd6 100644 (file)
@@ -235,7 +235,7 @@ public abstract class CaddxBaseThingHandler extends BaseThingHandler {
         List<Channel> channels = getThing().getChannels();
 
         for (Channel ch : channels) {
-            if (channelUID == ch.getUID()) {
+            if (channelUID.equals(ch.getUID())) {
                 channel = ch;
                 break;
             }
index 61aa83511037bf422ebfd46b911e7fae6b59a74c..18db27fe879e16905bd63b5b071fe88945cd0711 100644 (file)
@@ -786,6 +786,7 @@ public enum ComfoAirCommandType {
      *            new state
      * @return initialized ComfoAirCommand
      */
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     public static @Nullable ComfoAirCommand getChangeCommand(String key, Command command) {
         ComfoAirCommandType commandType = getCommandTypeByKey(key);
         State value = UnDefType.NULL;
index cf6989436f5bfe8d08a5dde5ee50c939bbe9cfb5..af9689936040ff1a69b665406894fb155a8b3a50 100644 (file)
@@ -19,6 +19,7 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
+import java.util.Objects;
 import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.ScheduledFuture;
@@ -463,8 +464,8 @@ public class DeviceStatusManagerImpl implements DeviceStatusManager {
             }
             sendComandsToDSS(device, intDeviceStateUpdate);
             if (nextDeviceStateUpdate != null) {
-                if (intDeviceStateUpdate.getType() == DeviceStateUpdate.UPDATE_SCENE_CONFIG
-                        || intDeviceStateUpdate.getType() == DeviceStateUpdate.UPDATE_SCENE_OUTPUT) {
+                if (DeviceStateUpdate.UPDATE_SCENE_CONFIG.equals(intDeviceStateUpdate.getType())
+                        || DeviceStateUpdate.UPDATE_SCENE_OUTPUT.equals(intDeviceStateUpdate.getType())) {
                     updateSceneData(device, intDeviceStateUpdate);
                 } else {
                     sendComandsToDSS(device, intDeviceStateUpdate);
@@ -625,7 +626,7 @@ public class DeviceStatusManagerImpl implements DeviceStatusManager {
         // to
         // OFFLINE.
         // An alternate algorithm is responsible for deletion.
-        if (newDevice.isPresent() != internalDevice.isPresent()) {
+        if (!Objects.equals(newDevice.isPresent(), internalDevice.isPresent())) {
             internalDevice.setIsPresent(newDevice.isPresent());
         }
         if (newDevice.getMeterDSID() != null && !newDevice.getMeterDSID().equals(internalDevice.getMeterDSID())) {
@@ -757,9 +758,9 @@ public class DeviceStatusManagerImpl implements DeviceStatusManager {
         while (!device.isDeviceUpToDate()) {
             DeviceStateUpdate deviceStateUpdate = device.getNextDeviceUpdateState();
             if (deviceStateUpdate != null) {
-                if (deviceStateUpdate.getType() != DeviceStateUpdate.OUTPUT) {
-                    if (deviceStateUpdate.getType() == DeviceStateUpdate.UPDATE_SCENE_CONFIG
-                            || deviceStateUpdate.getType() == DeviceStateUpdate.UPDATE_SCENE_OUTPUT) {
+                if (!DeviceStateUpdate.OUTPUT.equals(deviceStateUpdate.getType())) {
+                    if (DeviceStateUpdate.UPDATE_SCENE_CONFIG.equals(deviceStateUpdate.getType())
+                            || DeviceStateUpdate.UPDATE_SCENE_OUTPUT.equals(deviceStateUpdate.getType())) {
                         updateSceneData(device, deviceStateUpdate);
                     } else {
                         sendComandsToDSS(device, deviceStateUpdate);
@@ -767,14 +768,14 @@ public class DeviceStatusManagerImpl implements DeviceStatusManager {
                 } else {
                     DeviceStateUpdate nextDeviceStateUpdate = device.getNextDeviceUpdateState();
                     while (nextDeviceStateUpdate != null
-                            && nextDeviceStateUpdate.getType() == DeviceStateUpdate.OUTPUT) {
+                            && DeviceStateUpdate.OUTPUT.equals(nextDeviceStateUpdate.getType())) {
                         deviceStateUpdate = nextDeviceStateUpdate;
                         nextDeviceStateUpdate = device.getNextDeviceUpdateState();
                     }
                     sendComandsToDSS(device, deviceStateUpdate);
                     if (nextDeviceStateUpdate != null) {
-                        if (deviceStateUpdate.getType() == DeviceStateUpdate.UPDATE_SCENE_CONFIG
-                                || deviceStateUpdate.getType() == DeviceStateUpdate.UPDATE_SCENE_OUTPUT) {
+                        if (DeviceStateUpdate.UPDATE_SCENE_CONFIG.equals(deviceStateUpdate.getType())
+                                || DeviceStateUpdate.UPDATE_SCENE_OUTPUT.equals(deviceStateUpdate.getType())) {
                             updateSceneData(device, deviceStateUpdate);
                         } else {
                             sendComandsToDSS(device, deviceStateUpdate);
index 3f363e8e53e3a7844c200d8e2993139cd32382f4..9c3b34d808808604e9acd67f90c9df2be858ee94 100644 (file)
@@ -314,7 +314,7 @@ public class TunableWhiteThingHandler extends DmxThingHandler {
 
     private void updateCurrentBrightnessAndTemperature() {
         currentBrightness = Util.toPercentValue(Util.toDmxValue(currentValues.get(0) + currentValues.get(1)));
-        if (currentBrightness != PercentType.ZERO) {
+        if (!PercentType.ZERO.equals(currentBrightness)) {
             currentColorTemperature = new PercentType(
                     100 * currentValues.get(1) / (currentValues.get(0) + currentValues.get(1)));
         }
index 4355dee06408b56942e2cfa5962815689db414b0..98616e9961716c33e61513c89106759af99e3866 100644 (file)
@@ -322,7 +322,7 @@ public abstract class DSCAlarmBaseThingHandler extends BaseThingHandler {
         List<Channel> channels = getThing().getChannels();
 
         for (Channel ch : channels) {
-            if (channelUID == ch.getUID()) {
+            if (ch.getUID().equals(channelUID)) {
                 channel = ch;
                 break;
             }
index 08558ceb773e70adcdfa14dc5353d9a400d77341..426d13513187fb2bfdfa4f3c0a83ed68c463b756 100644 (file)
@@ -100,40 +100,34 @@ public class KeypadThingHandler extends DSCAlarmBaseThingHandler {
         String[] channelTypes = { KEYPAD_READY_LED, KEYPAD_ARMED_LED, KEYPAD_MEMORY_LED, KEYPAD_BYPASS_LED,
                 KEYPAD_TROUBLE_LED, KEYPAD_PROGRAM_LED, KEYPAD_FIRE_LED, KEYPAD_BACKLIGHT_LED };
 
-        String channel;
-        ChannelUID channelUID = null;
         DSCAlarmCode dscAlarmCode = DSCAlarmCode
                 .getDSCAlarmCodeValue(dscAlarmMessage.getMessageInfo(DSCAlarmMessageInfoType.CODE));
 
+        int bitCount = 8;
         int bitField = Integer.decode("0x" + dscAlarmMessage.getMessageInfo(DSCAlarmMessageInfoType.DATA));
         int[] masks = { 1, 2, 4, 8, 16, 32, 64, 128 };
-        int[] bits = new int[8];
+        int[] bits = new int[bitCount];
 
-        for (int i = 0; i < 8; i++) {
+        for (int i = 0; i < bitCount; i++) {
             bits[i] = bitField & masks[i];
-
-            channel = channelTypes[i];
-
-            if (channel != "") {
-                channelUID = new ChannelUID(getThing().getUID(), channel);
-
-                switch (dscAlarmCode) {
-                    case KeypadLEDState: /* 510 */
-                        updateChannel(channelUID, bits[i] != 0 ? 1 : 0, "");
-                        break;
-                    case KeypadLEDFlashState: /* 511 */
-                        if (bits[i] != 0) {
-                            updateChannel(channelUID, 2, "");
-                        }
-                        break;
-                    default:
-                        break;
-                }
+            ChannelUID channelUID = new ChannelUID(getThing().getUID(), channelTypes[i]);
+            switch (dscAlarmCode) {
+                case KeypadLEDState: /* 510 */
+                    updateChannel(channelUID, bits[i] != 0 ? 1 : 0, "");
+                    break;
+                case KeypadLEDFlashState: /* 511 */
+                    if (bits[i] != 0) {
+                        updateChannel(channelUID, 2, "");
+                    }
+                    break;
+                default:
+                    break;
             }
         }
     }
 
     @Override
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     public void dscAlarmEventReceived(EventObject event, Thing thing) {
         if (thing != null) {
             if (getThing() == thing) {
index 32ba7a16cd50b0536f0ad851425171ce8b36360d..0d1c1ec3b625cea73b44d1e766d1a7a02cf57c00 100644 (file)
@@ -257,19 +257,11 @@ public class PanelThingHandler extends DSCAlarmBaseThingHandler {
      * @param timeStamp
      */
     private void setTimeStampState(String timeStamp) {
-        int state = 0;
-        ChannelUID channelUID = new ChannelUID(getThing().getUID(), PANEL_TIME_STAMP);
-
-        boolean isTimeStamp = timeStamp != "";
-
-        if ((timeStamp == "" && !isTimeStamp) || (timeStamp != "" && isTimeStamp)) {
-            logger.debug("setTimeStampState(): Already Set: {}", timeStamp);
-            return;
-        } else if (timeStamp != "") {
-            state = 1;
+        if (timeStamp != null) {
+            ChannelUID channelUID = new ChannelUID(getThing().getUID(), PANEL_TIME_STAMP);
+            int state = timeStamp.isEmpty() ? 0 : 1;
+            updateChannel(channelUID, state, "");
         }
-
-        updateChannel(channelUID, state, "");
     }
 
     /**
@@ -391,19 +383,15 @@ public class PanelThingHandler extends DSCAlarmBaseThingHandler {
         String channel;
         ChannelUID channelUID = null;
 
+        int bitCount = 8;
         int bitField = Integer.decode("0x" + dscAlarmMessage.getMessageInfo(DSCAlarmMessageInfoType.DATA));
         int[] masks = { 1, 2, 4, 8, 16, 32, 64, 128 };
-        int[] bits = new int[8];
+        int[] bits = new int[bitCount];
 
-        for (int i = 0; i < 8; i++) {
+        for (int i = 0; i < bitCount; i++) {
+            channelUID = new ChannelUID(getThing().getUID(), channelTypes[i]);
             bits[i] = bitField & masks[i];
-
-            channel = channelTypes[i];
-
-            if (channel != "") {
-                channelUID = new ChannelUID(getThing().getUID(), channel);
-                updateChannel(channelUID, bits[i] != 0 ? 1 : 0, "");
-            }
+            updateChannel(channelUID, bits[i] != 0 ? 1 : 0, "");
         }
     }
 
@@ -436,6 +424,7 @@ public class PanelThingHandler extends DSCAlarmBaseThingHandler {
     }
 
     @Override
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     public void dscAlarmEventReceived(EventObject event, Thing thing) {
         if (thing != null) {
             DSCAlarmEvent dscAlarmEvent = (DSCAlarmEvent) event;
index 36cbcc40ae1968ab840919bb4b2116c04e36082d..3664ea2a2fdd8c15ac21dd8a542fe8dbe4340c42 100644 (file)
@@ -184,6 +184,7 @@ public class PartitionThingHandler extends DSCAlarmBaseThingHandler {
     }
 
     @Override
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     public void dscAlarmEventReceived(EventObject event, Thing thing) {
         if (thing != null) {
             if (getThing() == thing) {
index fd757870fbb27dca44a2e48c0932df7e19ee2b6b..d3faca924d4fcecd1107d91cd9ddc1021329a758 100644 (file)
@@ -223,6 +223,7 @@ public class DSMRSerialAutoDevice implements DSMRDevice, DSMREventListener {
     /**
      * Switches the baudrate on the serial port.
      */
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     private void switchBaudrate() {
         if (lastSwitchedBaudrateNanos + SWITCHING_BAUDRATE_TIMEOUT_NANOS > System.nanoTime()) {
             // Ignore switching baudrate if this is called within the timeout after a previous switch.
index feb67406038117215a5918893901472d30bfaf54..5f2c67e9d20f05a3c955c90116e7a21ee752c642 100644 (file)
@@ -13,6 +13,7 @@
 package org.openhab.binding.dwdunwetter.internal.dto;
 
 import java.util.Comparator;
+import java.util.Objects;
 
 /**
  * Comperator to sort a Warning first by Severity, second by the onSet date.
@@ -28,7 +29,7 @@ public class SeverityComparator implements Comparator<DwdWarningData> {
 
         int result = Integer.compare(o1.getSeverity().getOrder(), o2.getSeverity().getOrder());
         if (result == 0) {
-            if (o1.getOnset() == o2.getOnset()) {
+            if (Objects.equals(o1.getOnset(), o2.getOnset())) {
                 return 0;
             } else if (o1.getOnset() == null) {
                 return -1;
index 0714a88981643096840b0f903bc668a292cc4455..cbf5cc97fc99b447b23e5815e676a83b7fdee84e 100644 (file)
@@ -193,27 +193,28 @@ public class SelectionDTO {
         this.includeRuntime = Boolean.TRUE;
         this.includeSensors = Boolean.TRUE;
 
-        this.includeAudio = selection.includeAudio == Boolean.TRUE ? Boolean.TRUE : includeAudio;
-        this.includeDevice = selection.includeDevice == Boolean.TRUE ? Boolean.TRUE : includeDevice;
-        this.includeElectricity = selection.includeElectricity == Boolean.TRUE ? Boolean.TRUE : includeElectricity;
-        this.includeEnergy = selection.includeEnergy == Boolean.TRUE ? Boolean.TRUE : includeEnergy;
-        this.includeExtendedRuntime = selection.includeExtendedRuntime == Boolean.TRUE ? Boolean.TRUE
+        this.includeAudio = Boolean.TRUE.equals(selection.includeAudio) ? Boolean.TRUE : includeAudio;
+        this.includeDevice = Boolean.TRUE.equals(selection.includeDevice) ? Boolean.TRUE : includeDevice;
+        this.includeElectricity = Boolean.TRUE.equals(selection.includeElectricity) ? Boolean.TRUE : includeElectricity;
+        this.includeEnergy = Boolean.TRUE.equals(selection.includeEnergy) ? Boolean.TRUE : includeEnergy;
+        this.includeExtendedRuntime = Boolean.TRUE.equals(selection.includeExtendedRuntime) ? Boolean.TRUE
                 : includeExtendedRuntime;
-        this.includeHouseDetails = selection.includeHouseDetails == Boolean.TRUE ? Boolean.TRUE : includeHouseDetails;
-        this.includeLocation = selection.includeLocation == Boolean.TRUE ? Boolean.TRUE : includeLocation;
-        this.includeManagement = selection.includeManagement == Boolean.TRUE ? Boolean.TRUE : includeManagement;
-        this.includeNotificationSettings = selection.includeNotificationSettings == Boolean.TRUE ? Boolean.TRUE
+        this.includeHouseDetails = Boolean.TRUE.equals(selection.includeHouseDetails) ? Boolean.TRUE
+                : includeHouseDetails;
+        this.includeLocation = Boolean.TRUE.equals(selection.includeLocation) ? Boolean.TRUE : includeLocation;
+        this.includeManagement = Boolean.TRUE.equals(selection.includeManagement) ? Boolean.TRUE : includeManagement;
+        this.includeNotificationSettings = Boolean.TRUE.equals(selection.includeNotificationSettings) ? Boolean.TRUE
                 : includeNotificationSettings;
-        this.includeOemCfg = selection.includeOemCfg == Boolean.TRUE ? Boolean.TRUE : includeOemCfg;
-        this.includePrivacy = selection.includePrivacy == Boolean.TRUE ? Boolean.TRUE : includePrivacy;
-        this.includeReminders = selection.includeReminders == Boolean.TRUE ? Boolean.TRUE : includeReminders;
-        this.includeSecuritySettings = selection.includeSecuritySettings == Boolean.TRUE ? Boolean.TRUE
+        this.includeOemCfg = Boolean.TRUE.equals(selection.includeOemCfg) ? Boolean.TRUE : includeOemCfg;
+        this.includePrivacy = Boolean.TRUE.equals(selection.includePrivacy) ? Boolean.TRUE : includePrivacy;
+        this.includeReminders = Boolean.TRUE.equals(selection.includeReminders) ? Boolean.TRUE : includeReminders;
+        this.includeSecuritySettings = Boolean.TRUE.equals(selection.includeSecuritySettings) ? Boolean.TRUE
                 : includeSecuritySettings;
-        this.includeSettings = selection.includeSettings == Boolean.TRUE ? Boolean.TRUE : includeSettings;
-        this.includeTechnician = selection.includeTechnician == Boolean.TRUE ? Boolean.TRUE : includeTechnician;
-        this.includeUtility = selection.includeUtility == Boolean.TRUE ? Boolean.TRUE : includeUtility;
-        this.includeVersion = selection.includeVersion == Boolean.TRUE ? Boolean.TRUE : includeVersion;
-        this.includeWeather = selection.includeWeather == Boolean.TRUE ? Boolean.TRUE : includeWeather;
+        this.includeSettings = Boolean.TRUE.equals(selection.includeSettings) ? Boolean.TRUE : includeSettings;
+        this.includeTechnician = Boolean.TRUE.equals(selection.includeTechnician) ? Boolean.TRUE : includeTechnician;
+        this.includeUtility = Boolean.TRUE.equals(selection.includeUtility) ? Boolean.TRUE : includeUtility;
+        this.includeVersion = Boolean.TRUE.equals(selection.includeVersion) ? Boolean.TRUE : includeVersion;
+        this.includeWeather = Boolean.TRUE.equals(selection.includeWeather) ? Boolean.TRUE : includeWeather;
         return this;
     }
 
index a42032a5a2c687254327be283fd97b19de4a808a..9c587e26a67653fb0874ccd7bba8cceaa964ac80 100644 (file)
@@ -47,6 +47,7 @@ public class Command implements Delayed {
     }
 
     @Override
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     public int compareTo(Delayed delayed) {
         if (delayed == this) {
             return 0;
index d921e513b2e8895db5021d9055a78de0913287d6..0b2f448b72a2cbe05c3b5b61446cbe9136beda7c 100644 (file)
@@ -30,6 +30,7 @@ public class DelayedCommand extends Command {
     }
 
     @Override
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     public int compareTo(Delayed delayed) {
         if (delayed == this) {
             return 0;
index da1150c187b8d889b40a61c880af1e69007b2fe8..8911b6666b90c5923fcbc23692438e8cdf07cc6a 100644 (file)
@@ -49,7 +49,7 @@ public class A5_3F_7F_Universal extends _4BSMessage {
                 String c = Transformation.transform(transformationInfo.transformationType,
                         transformationInfo.transformationFunction, command.toString());
 
-                if (c != null && c != command.toString()) {
+                if (c != null && !c.equals(command.toString())) {
                     setData(HexUtils.hexToBytes(c));
                 }
 
index 510345631223a055e39affcaa0dcac34687a5bf6..04d39d086b38033ec1263d9af385b81212c5e266 100644 (file)
@@ -97,6 +97,7 @@ public class Ipx800v3Handler extends BaseThingHandler implements Ipx800EventList
         }
 
         @Override
+        @SuppressWarnings("PMD.CompareObjectsWithEquals")
         public void run() {
             PortData currentData = portDatas.get(port);
             if (currentData != null && currentData.getValue() == 1 && currentData.getTimestamp() == referenceTime) {
index 1b23e57181ca2edfb6358fcfe8699321a354c33e..5e78b88da18121395662ea56d1b7256d8ee843b1 100644 (file)
@@ -103,7 +103,7 @@ public class LocationMessage {
      * @return Conversion result
      */
     public State getTrackerLocation() {
-        if (latitude != BigDecimal.ZERO && longitude != BigDecimal.ZERO) {
+        if (!BigDecimal.ZERO.equals(latitude) && !BigDecimal.ZERO.equals(longitude)) {
             return new PointType(new DecimalType(latitude), new DecimalType(longitude));
         }
         return UnDefType.UNDEF;
index 13cc61ca8ab94155f618defb2e71bf0f89f3ead0..52657ed61fdd9c010f10ae77e045893e6279b3da 100644 (file)
@@ -25,6 +25,7 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.Optional;
 
 import org.eclipse.jdt.annotation.NonNullByDefault;
@@ -277,8 +278,8 @@ public class GreeAirDevice {
         // If commanding Fahrenheit set halfStep to 1 or 0 to tell the A/C which F integer
         // temperature to use as celsius alone is ambigious
         double newVal = temp.doubleValue();
-        int CorF = temp.getUnit() == SIUnits.CELSIUS ? TEMP_UNIT_CELSIUS : TEMP_UNIT_FAHRENHEIT; // 0=Celsius,
-                                                                                                 // 1=Fahrenheit
+        int CorF = SIUnits.CELSIUS.equals(temp.getUnit()) ? TEMP_UNIT_CELSIUS : TEMP_UNIT_FAHRENHEIT; // 0=Celsius,
+        // 1=Fahrenheit
         if (((CorF == TEMP_UNIT_CELSIUS) && (newVal < TEMP_MIN_C || newVal > TEMP_MAX_C))
                 || ((CorF == TEMP_UNIT_FAHRENHEIT) && (newVal < TEMP_MIN_F || newVal > TEMP_MAX_F))) {
             throw new IllegalArgumentException("Temp Value out of Range");
@@ -404,7 +405,7 @@ public class GreeAirDevice {
         }
 
         // Finally Compare the values
-        return currvalList.get(currvalueArrayposition) != prevvalList.get(prevvalueArrayposition);
+        return !Objects.equals(currvalList.get(currvalueArrayposition), prevvalList.get(prevvalueArrayposition));
     }
 
     protected void executeCommand(DatagramSocket clientSocket, Map<String, Integer> parameters) throws GreeException {
index 93fe883f06b16af9d421dc7d8edd40eb0a3de1e1..a6bea2b114ee613cc186fa443f78214d8c790b5f 100644 (file)
@@ -170,7 +170,7 @@ public class HaywardDiscoveryService extends AbstractDiscoveryService implements
         List<String> names;
 
         // Set Virtual Heater Name
-        if (thingType == HaywardBindingConstants.THING_TYPE_VIRTUALHEATER) {
+        if (HaywardBindingConstants.THING_TYPE_VIRTUALHEATER.equals(thingType)) {
             names = new ArrayList<>(systemIDs);
             Collections.fill(names, "Heater");
         } else {
index 247ab2652cecbb880dc81d8b9184bc735168ae1c..0252890830e7eac46fab917f0cdaa99ac25a1da0 100644 (file)
@@ -309,6 +309,7 @@ public class HeliosVentilationDataPoint {
      *
      * @param next is the sister datapoint
      */
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     public void append(HeliosVentilationDataPoint next) {
         HeliosVentilationDataPoint existing = this.next;
         if (this == next) {
index 579e72293a48d0525c50d0f3098d2f0d50b80595..7dce5752033d3efca58ecd26269d05a7d6810c8c 100644 (file)
@@ -42,7 +42,7 @@ public class OnOffTypeConverter extends AbstractTypeConverter<OnOffType> {
 
     @Override
     protected OnOffType fromBinding(HmDatapoint dp) throws ConverterException {
-        return (((Boolean) dp.getValue()) == Boolean.FALSE) != isInvert(dp) ? OnOffType.OFF : OnOffType.ON;
+        return Boolean.FALSE.equals(dp.getValue()) != isInvert(dp) ? OnOffType.OFF : OnOffType.ON;
     }
 
     /**
index ebd4af835e75aed48695b838d870f5717947f68e..55680b2f2ee1dc6e037efb5daca3619c6e69c705 100644 (file)
@@ -42,8 +42,7 @@ public class OpenClosedTypeConverter extends AbstractTypeConverter<OpenClosedTyp
 
     @Override
     protected OpenClosedType fromBinding(HmDatapoint dp) throws ConverterException {
-        return (((Boolean) dp.getValue()) == Boolean.FALSE) != isInvert(dp) ? OpenClosedType.CLOSED
-                : OpenClosedType.OPEN;
+        return Boolean.FALSE.equals(dp.getValue()) != isInvert(dp) ? OpenClosedType.CLOSED : OpenClosedType.OPEN;
     }
 
     /**
index db43a02bc1a2a3783ff69929bd30edcc23bdfdf9..d08caf8ea2501f3af77b3ba9bb98d913128e6e79 100644 (file)
@@ -71,9 +71,9 @@ public class PercentTypeConverter extends AbstractTypeConverter<PercentType> {
         Double number = (type.doubleValue() / 100) * maxValue;
 
         if (MetadataUtils.isRollerShutter(dp)) {
-            if (type == PercentType.HUNDRED) { // means DOWN
+            if (PercentType.HUNDRED.equals(type)) { // means DOWN
                 return dp.getMinValue().doubleValue();
-            } else if (type == PercentType.ZERO) { // means UP
+            } else if (PercentType.ZERO.equals(type)) { // means UP
                 return maxValue;
             }
             return maxValue - number;
index d41aaad9e5a98ee5ccd321c70426ec348df00f0f..9621bf39da6f42d36203179b865bcd24771be920 100644 (file)
@@ -41,14 +41,14 @@ public class MiscUtils {
      * Returns true, if the value is not null and true.
      */
     public static boolean isTrueValue(Object value) {
-        return value != null && value == Boolean.TRUE;
+        return Boolean.TRUE.equals(value);
     }
 
     /**
      * Returns true, if the value is not null and false.
      */
     public static boolean isFalseValue(Object value) {
-        return value != null && value == Boolean.FALSE;
+        return Boolean.FALSE.equals(value);
     }
 
     /**
index 664c9508f1c920cb4cb425f92c7dc453b6a62e8c..719f03442949f7e9c21ee3311dc9928bd206167a 100644 (file)
@@ -175,7 +175,7 @@ public class MetadataUtils {
         if ("%%".equals(unit)) {
             return "%d %%";
         }
-        if (unit != null && unit != "") {
+        if (unit != null && !unit.isEmpty()) {
             String pattern = getPattern(dp);
             if (pattern != null) {
                 return String.format("%s %s", pattern, "%unit%");
index 50a4e189bf465c578e75823345da3eb2f31bd7b5..9a763b7f81e5074367bcf93ab2f1f74aaff28ffd 100644 (file)
@@ -206,7 +206,9 @@ public class IAqualinkHandler extends BaseThingHandler {
                     Optional<Auxiliary> optional = Arrays.stream(auxs).filter(o -> o.getName().equals(channelName))
                             .findFirst();
                     if (optional.isPresent()) {
-                        if (toState(channelName, "Switch", optional.get().getState()) != command) {
+                        OnOffType onOffCommand = (OnOffType) command;
+                        State currentState = toState(channelName, "Switch", optional.get().getState());
+                        if (!currentState.equals(onOffCommand)) {
                             client.auxSetCommand(serialNumber, sessionId, channelName);
                         }
                     }
@@ -225,20 +227,23 @@ public class IAqualinkHandler extends BaseThingHandler {
                     }
                 }
             } else if (command instanceof OnOffType) {
+                OnOffType onOffCommand = (OnOffType) command;
                 // these are toggle commands and require we have the current state to turn on/off
                 if (channelName.startsWith("onetouch_")) {
                     OneTouch[] ota = client.getOneTouch(serialNumber, sessionId);
                     Optional<OneTouch> optional = Arrays.stream(ota).filter(o -> o.getName().equals(channelName))
                             .findFirst();
                     if (optional.isPresent()) {
-                        if (toState(channelName, "Switch", optional.get().getState()) != command) {
+                        State currentState = toState(channelName, "Switch", optional.get().getState());
+                        if (!currentState.equals(onOffCommand)) {
                             logger.debug("Sending command {} to {}", command, channelName);
                             client.oneTouchSetCommand(serialNumber, sessionId, channelName);
                         }
                     }
                 } else if (channelName.endsWith("heater") || channelName.endsWith("pump")) {
                     String value = client.getHome(serialNumber, sessionId).getSerializedMap().get(channelName);
-                    if (toState(channelName, "Switch", value) != command) {
+                    State currentState = toState(channelName, "Switch", value);
+                    if (!currentState.equals(onOffCommand)) {
                         logger.debug("Sending command {} to {}", command, channelName);
                         client.homeScreenSetCommand(serialNumber, sessionId, channelName);
                     }
index 1f658dca2c7d68a3edeee49d865a80857647211e..ef230a448d7dedaa135f770565ba4d08c504d0d2 100644 (file)
@@ -190,7 +190,7 @@ public class Device {
      * @return
      */
     public boolean hasSerialNumber() {
-        return (serialnumber != null && serialnumber != "");
+        return serialnumber != null && !serialnumber.isEmpty();
     }
 
     /**
index 00abaa6ac63c1ee5d93d967cef064140d5c18c5d..c60e6d9cb8d936d0e1a2fabba6b3a5dcb9ba3c66 100644 (file)
@@ -731,7 +731,7 @@ public abstract class CommandHandler {
                 int ilevel = dc * intFactor;
                 byte level = (byte) (ilevel > 255 ? 0xFF : ((ilevel < 0) ? 0 : ilevel));
                 String vfield = getStringParameter("value", "");
-                if (vfield == "") {
+                if (vfield == null || vfield.isEmpty()) {
                     logger.warn("{} has no value field specified", nm());
                 }
                 //
index 96810f396c3ea06e2f6a07ff53f0e0b12dfcba29..419de631147f472a96e8c113e788db7c76658c20 100644 (file)
@@ -107,6 +107,7 @@ public abstract class MessageDispatcher {
      * @param msg
      * @return true;
      */
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     boolean isMyDirectAck(Msg msg) {
         return msg.isAckOfDirect() && (feature.getQueryStatus() == DeviceFeature.QueryStatus.QUERY_PENDING)
                 && feature.getDevice().getFeatureQueried() == feature;
index f88f669094841aefb7d8fc36c7f852badb6efa06..d0e90dd75906d8da842255c55dc7f35b1225ea48 100644 (file)
@@ -359,6 +359,7 @@ public class IpCameraHandler extends BaseThingHandler {
         }
 
         @Override
+        @SuppressWarnings("PMD.CompareObjectsWithEquals")
         public void userEventTriggered(@Nullable ChannelHandlerContext ctx, @Nullable Object evt) throws Exception {
             if (ctx == null) {
                 return;
@@ -700,6 +701,7 @@ public class IpCameraHandler extends BaseThingHandler {
      * open large amounts of channels. This may help to keep it under control and WARN the user every 8 seconds this is
      * still occurring.
      */
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     private void cleanChannels() {
         for (Channel channel : openChannels) {
             boolean oldChannel = true;
index 5cf1936ef242791b2633f84afe7c449878f77e63..9841f3519e89cc16ff4ae4d91f2a9099d3883e72 100644 (file)
@@ -170,7 +170,7 @@ public class JeeLinkHandler extends BaseBridgeHandler implements BridgeHandler,
                 // this is the first handler for this reading class => also setup converter
                 readingClassHandlerMap.put(h.getReadingClass(), handlers);
 
-                if (SensorDefinition.ALL_TYPE == h.getSensorType()) {
+                if (SensorDefinition.ALL_TYPE.equals(h.getSensorType())) {
                     converters.addAll(SensorDefinition.getDiscoveryConverters());
                 } else {
                     JeeLinkReadingConverter<?> c = SensorDefinition.getConverter(h.getSensorType());
@@ -200,7 +200,7 @@ public class JeeLinkHandler extends BaseBridgeHandler implements BridgeHandler,
                     // this was the last handler for this reading class => also remove converter
                     readingClassHandlerMap.remove(h.getReadingClass());
 
-                    if (SensorDefinition.ALL_TYPE == h.getSensorType()) {
+                    if (SensorDefinition.ALL_TYPE.equals(h.getSensorType())) {
                         converters.removeAll(SensorDefinition.getDiscoveryConverters());
                     } else {
                         JeeLinkReadingConverter<?> c = SensorDefinition.getConverter(h.getSensorType());
index d045056555beff2d35dd4ae9efefde55864392b3..357cebaf52f77f9811e2296f5d14c35415344651 100644 (file)
@@ -135,7 +135,7 @@ public class SecondGenerationConfigurationHandler {
         if (size > 0) {
             extractSessionId = extractJsonArraySessionId.get(size - 1).getAsJsonObject().get("sessionId").getAsString();
         }
-        if (extractSessionId == "0") {
+        if ("0".equals(extractSessionId)) {
             sessionIdLogger.debug(" Login Post Json Reponse not OK! , inverter answered with sessionId like: {}",
                     extractSessionId);
         }
@@ -152,7 +152,7 @@ public class SecondGenerationConfigurationHandler {
         if (size > 0) {
             extractCode = extractJsonArrayCode.get(size - 1).getAsJsonObject().get("code").getAsString();
         }
-        if (extractCode != "0") {
+        if (!"0".equals(extractCode)) {
             codeLogger.debug(" Login Post Json Reponse not OK! , inverter answered with status code like: {}",
                     extractCode);
         }
index bc3f0d646deee32e8d4d0999edc75de70ac57b97..2ea0a43f7047c361ba6cb9bd00e71db1346ec125 100644 (file)
@@ -99,6 +99,7 @@ public class LcnModuleDiscoveryService extends AbstractDiscoveryService
     }
 
     @Override
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     protected void startScan() {
         synchronized (this) {
             PckGatewayHandler localBridgeHandler = bridgeHandler;
index 19370b2c58540a43e7bdaaef2023688f13f73778..ba059c41e5eadb007fb1053fc6aafbf858014326 100644 (file)
@@ -54,6 +54,7 @@ public class LcnModuleRvarSetpointSubHandler extends AbstractLcnModuleVariableSu
     }
 
     @Override
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     public void handleStatusMessage(Matcher matcher) throws LcnException {
         Variable variable;
         if (matcher.pattern() == PATTERN) {
index 5a9e77d4a3e905a57d18b2c302cf580b099486f6..ed389f11bd0ab8619d53070b170bc02941051399 100644 (file)
@@ -66,6 +66,7 @@ public class LcnModuleVariableSubHandler extends AbstractLcnModuleVariableSubHan
     }
 
     @Override
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     public void handleStatusMessage(Matcher matcher) throws LcnException {
         Variable variable;
         if (matcher.pattern() == PATTERN) {
index 2490e22633585378db86638db1f72f17c1225abe..7e4e9dc0b746ce5e9d632d889031ebab22b83385 100644 (file)
@@ -12,6 +12,8 @@
  */
 package org.openhab.binding.lifx.internal.dto;
 
+import java.util.Arrays;
+
 import org.eclipse.jdt.annotation.NonNullByDefault;
 import org.eclipse.jdt.annotation.Nullable;
 import org.openhab.binding.lifx.internal.LifxBindingConstants;
@@ -153,7 +155,7 @@ public class Effect {
         }
         Effect n = (Effect) o;
         return n.getType().equals(this.getType()) && n.duration.equals(this.duration) && n.speed.equals(this.speed)
-                && n.palette == this.palette;
+                && Arrays.equals(n.palette, this.palette);
     }
 
     @Override
index 7bca5ae90aad5e997e002bbf42fa49354bd9ab6e..9af167988dffec7916aebf07092218056bad853d 100644 (file)
@@ -134,14 +134,14 @@ public class ChannelUpdaterJob implements SchedulerRunnable, Runnable {
             if (unit == null) {
                 return new DecimalType(rawValue);
             }
-            if (unit == SIUnits.CELSIUS || unit == Units.KELVIN || unit == Units.KILOWATT_HOUR || unit == Units.PERCENT
-                    || unit == Units.HOUR) {
+            if (SIUnits.CELSIUS.equals(unit) || Units.KELVIN.equals(unit) || Units.KILOWATT_HOUR.equals(unit)
+                    || Units.PERCENT.equals(unit) || Units.HOUR.equals(unit)) {
                 return new QuantityType<>((double) rawValue / 10, unit);
-            } else if (unit == Units.HERTZ || unit == Units.SECOND) {
+            } else if (Units.HERTZ.equals(unit) || Units.SECOND.equals(unit)) {
                 return new QuantityType<>((double) rawValue, unit);
-            } else if (unit == Units.LITRE_PER_MINUTE) {
+            } else if (Units.LITRE_PER_MINUTE.equals(unit)) {
                 return new QuantityType<>((double) rawValue / 60, unit);
-            } else if (unit == Units.BAR || unit == Units.VOLT) {
+            } else if (Units.BAR.equals(unit) || Units.VOLT.equals(unit)) {
                 return new QuantityType<>((double) rawValue / 100, unit);
             }
 
@@ -222,7 +222,7 @@ public class ChannelUpdaterJob implements SchedulerRunnable, Runnable {
         var longState = String.format("%s - %s %s - %s", state, getStateTranslation("menuStateLine2", row2),
                 formatHours(time), getStateTranslation("menuStateLine3", row3));
 
-        handleEventType((State) new StringType(longState), HeatpumpChannel.CHANNEL_HEATPUMP_STATUS);
+        handleEventType(new StringType(longState), HeatpumpChannel.CHANNEL_HEATPUMP_STATUS);
     }
 
     private void updateProperties(Integer[] heatpumpValues) {
index dc1c9aa524710510e81b435d88a79d042ec8ae56..017f7f96294b6cde132999eb210506f34af87b1c 100644 (file)
@@ -854,8 +854,8 @@ public class HeliosEasyControlsHandler extends BaseThingHandler {
                     }
                     switch (itemType) {
                         case "Number":
-                            if (((variableType.equals(HeliosVariable.TYPE_INTEGER))
-                                    || (variableType == HeliosVariable.TYPE_FLOAT)) && (!value.equals("-"))) {
+                            if (((HeliosVariable.TYPE_INTEGER.equals(variableType))
+                                    || (HeliosVariable.TYPE_FLOAT.equals(variableType))) && (!value.equals("-"))) {
                                 State state = null;
                                 if (v.getUnit() == null) {
                                     state = DecimalType.valueOf(value);
index bf07a6c83dd435063977bee93f8b4499eb7a9aea..1abca7c846807d6d6a2f9ffe78d35c6efdd1cedc 100644 (file)
@@ -177,7 +177,7 @@ public class Property implements AttributeChanged {
         Value value;
         Boolean isDecimal = null;
 
-        if (attributes.name == "") {
+        if (attributes.name.isEmpty()) {
             attributes.name = propertyID;
         }
 
index 83b1012d9ec58637bc1428327b2447a9b91e4d63..8a37c1705520feb9c474296c070285e5ca514fed 100644 (file)
@@ -93,6 +93,7 @@ public class SystemBrokerHandler extends AbstractBrokerHandler implements MqttSe
      * is no connection established yet.
      */
     @Override
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     public void brokerAdded(String connectionName, MqttBrokerConnection addedConnection) {
         if (!connectionName.equals(brokerID) || connection == addedConnection) {
             return;
index 2ee50012768238282ab3898e889d385ca485b834..01987073de047b016ac8689401d9e99cd358d246 100644 (file)
@@ -128,7 +128,7 @@ public class NATherm1Handler extends NetatmoModuleHandler<NAThermostat> {
                 String currentPlanning = "-";
                 if (thermostat.isPresent()) {
                     for (NAThermProgram program : nonNullList(thermostat.get().getThermProgramList())) {
-                        if (program.isSelected() == Boolean.TRUE) {
+                        if (Boolean.TRUE.equals(program.isSelected())) {
                             currentPlanning = program.getProgramId();
                         }
                     }
index af944440ee9bf4fb8b224a6409984b04770eddea..3e0b24efdb08e369c6752b4977b97356a4ddc12a 100644 (file)
@@ -69,7 +69,7 @@ public abstract class OceanicThingHandler extends BaseThingHandler {
                         if (aChannel.getUID().equals(theChannelUID)
                                 && selector.getTypeValue() == OceanicChannelSelector.ValueSelectorType.GET) {
                             String response = requestResponse(selector.name());
-                            if (response != null && response != "") {
+                            if (response != null && !response.isEmpty()) {
                                 if (selector.isProperty()) {
                                     logger.debug("Updating the property '{}' with value '{}'", selector.toString(),
                                             selector.convertValue(response));
index b515d2fbf34cff31a8c904cac18c9a4c2835eaf7..733af53449c294ef7ded44c68bad99accb839c7b 100644 (file)
@@ -111,14 +111,14 @@ public class OpenThermGatewayHandler extends BaseThingHandler implements OpenThe
             if (conn != null && conn.isConnected()) {
                 conn.sendCommand(gatewayCommand);
 
-                if (code == GatewayCommandCode.ControlSetpoint) {
+                if (GatewayCommandCode.ControlSetpoint.equals(code)) {
                     if (gatewayCommand.getMessage().equals("0.0")) {
                         updateState(OpenThermGatewayBindingConstants.CHANNEL_OVERRIDE_CENTRAL_HEATING_WATER_SETPOINT,
                                 UnDefType.UNDEF);
                     }
                     updateState(OpenThermGatewayBindingConstants.CHANNEL_OVERRIDE_CENTRAL_HEATING_ENABLED,
                             OnOffType.from(!gatewayCommand.getMessage().equals("0.0")));
-                } else if (code == GatewayCommandCode.ControlSetpoint2) {
+                } else if (GatewayCommandCode.ControlSetpoint2.equals(code)) {
                     if (gatewayCommand.getMessage().equals("0.0")) {
                         updateState(OpenThermGatewayBindingConstants.CHANNEL_OVERRIDE_CENTRAL_HEATING2_WATER_SETPOINT,
                                 UnDefType.UNDEF);
index 7a8488ebc80233155e4db286f72c8a983ec4311e..7135155732f354597fbe4aed49ba050855ba2b05 100644 (file)
@@ -181,7 +181,7 @@ public class OpenUVReportHandler extends BaseThingHandler {
             });
         } else if (ELEVATION.equals(channelUID.getId()) && command instanceof QuantityType) {
             QuantityType<?> qtty = (QuantityType<?>) command;
-            if (qtty.getUnit() == Units.DEGREE_ANGLE) {
+            if (Units.DEGREE_ANGLE.equals(qtty.getUnit())) {
                 suspendUpdates = qtty.doubleValue() < 0;
             } else {
                 logger.info("The OpenUV Report handles Sun Elevation of Number:Angle type, {} does not fit.", command);
index e92e684833aaf9d4c266bd36eaa2d37045860908..e6857d837de468f325ac9403f05046e3eb74d6d8 100644 (file)
@@ -176,7 +176,7 @@ public class OpenWebNetDeviceDiscoveryService extends AbstractDiscoveryService
         }
 
         String ownId = bridgeHandler.ownIdFromWhoWhere(deviceWho, where);
-        if (thingTypeUID == OpenWebNetBindingConstants.THING_TYPE_BUS_ON_OFF_SWITCH) {
+        if (OpenWebNetBindingConstants.THING_TYPE_BUS_ON_OFF_SWITCH.equals(thingTypeUID)) {
             if (bridgeHandler.getRegisteredDevice(ownId) != null) {
                 logger.debug("dimmer/switch with WHERE={} already registered, skipping this discovery result", where);
                 return;
@@ -204,7 +204,7 @@ public class OpenWebNetDeviceDiscoveryService extends AbstractDiscoveryService
         Map<String, Object> properties = new HashMap<>(2);
         properties.put(OpenWebNetBindingConstants.CONFIG_PROPERTY_WHERE, whereConfig);
         properties.put(OpenWebNetBindingConstants.PROPERTY_OWNID, ownId);
-        if (thingTypeUID == OpenWebNetBindingConstants.THING_TYPE_GENERIC_DEVICE) {
+        if (OpenWebNetBindingConstants.THING_TYPE_GENERIC_DEVICE.equals(thingTypeUID)) {
             thingLabel = thingLabel + " (WHO=" + deviceWho + ", WHERE=" + whereConfig + ")";
         } else {
             thingLabel = thingLabel + " (WHERE=" + whereConfig + ")";
index c2e21d82a377b13ef7ddaf42f175c96a5aa02062..7908f63d84b163f1d5fb18aa660082f02d86282c 100644 (file)
@@ -17,6 +17,7 @@ import static org.openhab.binding.openwebnet.internal.OpenWebNetBindingConstants
 import java.util.Collection;
 import java.util.Collections;
 import java.util.Map;
+import java.util.Objects;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ScheduledFuture;
@@ -458,13 +459,13 @@ public class OpenWebNetBridgeHandler extends ConfigStatusBridgeHandler implement
             logger.info("---- CONNECTED to BUS gateway bridge '{}' ({}:{})", thing.getUID(),
                     ((BUSGateway) gw).getHost(), ((BUSGateway) gw).getPort());
             // update serial number property (with MAC address)
-            if (properties.get(PROPERTY_SERIAL_NO) != gw.getMACAddr().toUpperCase()) {
+            if (!Objects.equals(properties.get(PROPERTY_SERIAL_NO), gw.getMACAddr().toUpperCase())) {
                 properties.put(PROPERTY_SERIAL_NO, gw.getMACAddr().toUpperCase());
                 propertiesChanged = true;
                 logger.debug("updated property gw serialNumber: {}", properties.get(PROPERTY_SERIAL_NO));
             }
         }
-        if (properties.get(PROPERTY_FIRMWARE_VERSION) != gw.getFirmwareVersion()) {
+        if (!Objects.equals(properties.get(PROPERTY_FIRMWARE_VERSION), gw.getFirmwareVersion())) {
             properties.put(PROPERTY_FIRMWARE_VERSION, gw.getFirmwareVersion());
             propertiesChanged = true;
             logger.debug("updated property gw firmware version: {}", properties.get(PROPERTY_FIRMWARE_VERSION));
index cf25382debfed7e264ae608b81688bf8c25387d3..360f3a997691c97e493068df53bc7d2c6f441da0 100644 (file)
@@ -16,6 +16,7 @@ import static org.openhab.binding.pentair.internal.PentairBindingConstants.*;
 
 import java.math.BigDecimal;
 import java.util.List;
+import java.util.Objects;
 
 import org.openhab.binding.pentair.internal.PentairBindingConstants;
 import org.openhab.binding.pentair.internal.PentairPacket;
@@ -454,7 +455,7 @@ public class PentairEasyTouchHandler extends PentairBaseThingHandler {
                 }
                 break;
             case EASYTOUCH_SPAHEATMODESTR:
-                if (phsp == null || (phsp.spaheatmodestr != phspcur.spaheatmodestr)) {
+                if (phsp == null || (!Objects.equals(phsp.spaheatmodestr, phspcur.spaheatmodestr))) {
                     if (phspcur.spaheatmodestr != null) {
                         updateState(channel, new StringType(phspcur.spaheatmodestr));
                     }
@@ -466,7 +467,7 @@ public class PentairEasyTouchHandler extends PentairBaseThingHandler {
                 }
                 break;
             case EASYTOUCH_POOLHEATMODESTR:
-                if (phsp == null || (phsp.poolheatmodestr != phspcur.poolheatmodestr)) {
+                if (phsp == null || (!Objects.equals(phsp.poolheatmodestr, phspcur.poolheatmodestr))) {
                     if (phspcur.poolheatmodestr != null) {
                         updateState(channel, new StringType(phspcur.poolheatmodestr));
                     }
index 7957436253f26aa62665d9132c59973145bc8a8f..2d2e8941c24f48548a627cc92f32f65b3895b06f 100644 (file)
@@ -22,6 +22,7 @@ import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.Set;
 import java.util.concurrent.ScheduledFuture;
 import java.util.concurrent.TimeUnit;
@@ -177,7 +178,7 @@ public class PLCBridgeHandler extends BaseBridgeHandler {
                         for (Integer key : states.keySet()) {
                             String message = states.get(buffer[0] & key.intValue());
                             synchronized (oldValues) {
-                                if ((message != null) && (oldValues.get(channelUID) != message)) {
+                                if (message != null && !Objects.equals(oldValues.get(channelUID), message)) {
                                     updateState(channelUID, new StringType(message));
                                     oldValues.put(channelUID, message);
                                 }
@@ -187,7 +188,7 @@ public class PLCBridgeHandler extends BaseBridgeHandler {
                 } else if (DAY_OF_WEEK_CHANNEL.equals(channelId)) {
                     String value = DAY_OF_WEEK.get(Integer.valueOf(buffer[0]));
                     synchronized (oldValues) {
-                        if ((value != null) && (oldValues.get(channelUID) != value)) {
+                        if (value != null && !Objects.equals(oldValues.get(channelUID), value)) {
                             updateState(channelUID, new StringType(value));
                             oldValues.put(channelUID, value);
                         }
index eaf14a3349fb4e56a6f88dccd7dd1098d09b2448..cce19a28d77f159a92f896ac6177b3e26c92264c 100644 (file)
@@ -287,7 +287,7 @@ public abstract class AbstractPlugwiseThingHandler extends BaseThingHandler impl
 
     protected void updateTask(PlugwiseDeviceTask task) {
         if (task.shouldBeScheduled()) {
-            if (!task.isScheduled() || task.getConfiguredInterval() != task.getInterval()) {
+            if (!task.isScheduled() || !task.getConfiguredInterval().equals(task.getInterval())) {
                 if (task.isScheduled()) {
                     task.stop();
                 }
index 2a8e14dec70d2d12ca8df2fa4547247c434ebdc9..62c30d20cc97a11037462df4e5d44dbd4a5286f0 100644 (file)
@@ -262,7 +262,7 @@ public class PlugwiseStickHandler extends BaseBridgeHandler implements PlugwiseM
 
     protected void updateTask(PlugwiseDeviceTask task) {
         if (task.shouldBeScheduled()) {
-            if (!task.isScheduled() || task.getConfiguredInterval() != task.getInterval()) {
+            if (!task.isScheduled() || !task.getConfiguredInterval().equals(task.getInterval())) {
                 if (task.isScheduled()) {
                     task.stop();
                 }
index fc91c6a3f2984461aed9d522c459a222fddefbce..52520ffbbf9fdd63ada6e37607818501e406ba9b 100644 (file)
@@ -244,7 +244,7 @@ public class QbusDimmerHandler extends QbusGlobalHandler {
                 }
             } else if (command instanceof PercentType) {
                 int percentToInt = ((PercentType) command).intValue();
-                if (command == PercentType.ZERO) {
+                if (PercentType.ZERO.equals(command)) {
                     qDimmer.execute(0, snr);
                 } else {
                     qDimmer.execute(percentToInt, snr);
index 0a1a532f11347855c2bccc5e7513aae96ef45296..8f30e673491c20a6b4b64200573d308d0f4174c1 100644 (file)
@@ -218,7 +218,7 @@ public class QbusRolHandler extends QbusGlobalHandler {
             } else if (command instanceof PercentType) {
                 PercentType p = (PercentType) command;
                 int pp = p.intValue();
-                if (p == PercentType.ZERO) {
+                if (PercentType.ZERO.equals(p)) {
                     qRol.execute(0, snr);
                 } else {
                     qRol.execute(pp, snr);
@@ -264,7 +264,7 @@ public class QbusRolHandler extends QbusGlobalHandler {
                 }
             } else if (command instanceof PercentType) {
                 int percentToInt = ((PercentType) command).intValue();
-                if (command == PercentType.ZERO) {
+                if (PercentType.ZERO.equals(command)) {
                     qRol.executeSlats(0, snr);
                 } else {
                     qRol.executeSlats(percentToInt, snr);
index 6600b99eb9d283a880a93b84e6d05b57c33a775b..522e3d62122cadc9d8de001623af200813ec9af3 100644 (file)
@@ -61,6 +61,7 @@ public class SatelOutputHandler extends WirelessChannelsHandler {
     }
 
     @Override
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     protected StateType getStateType(String channelId) {
         StateType result = super.getStateType(channelId);
         if (result == StateType.NONE) {
index 704b4452c916bbd53d946f447e2ab988f013160d..04c50d915c438963ff8e9922008147c59510c476 100644 (file)
@@ -90,6 +90,7 @@ public abstract class SatelStateThingHandler extends SatelThingHandler {
     }
 
     @Override
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     public void incomingEvent(IntegraStateEvent event) {
         logger.trace("Handling incoming event: {}", event);
         // update thing's state unless it should accept commands only
@@ -162,6 +163,7 @@ public abstract class SatelStateThingHandler extends SatelThingHandler {
      * @param event list of state changes since last refresh
      * @return collection of {@link IntegraStateCommand}
      */
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     protected Collection<SatelCommand> getRefreshCommands(NewStatesEvent event) {
         final boolean hasExtPayload = getBridgeHandler().getIntegraType().hasExtPayload();
         final Collection<SatelCommand> result = new LinkedList<>();
index 88c941eee2b246260d42821ab389e4da02a05a64..c5f42f4f1a625b9e407d63b36b8aecdbf5b2c245 100644 (file)
@@ -75,6 +75,7 @@ public class SatelZoneHandler extends WirelessChannelsHandler {
     }
 
     @Override
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     protected StateType getStateType(String channelId) {
         StateType result = super.getStateType(channelId);
         if (result == StateType.NONE) {
index 9fb8b60a99c2de50c22d8d61e41dfc0b53c4a1e3..a66224ec4a873dc6b04cb769a83e060075e140f4 100644 (file)
@@ -421,7 +421,7 @@ public class SensiboSkyHandler extends SensiboBaseThingHandler implements Channe
                 case TARGET_TEMPERATURE_PROPERTY:
                     Unit<Temperature> temperatureUnit = sensiboSky.getTemperatureUnit();
                     TemperatureDTO validTemperatures = currentModeCapabilities.temperatures
-                            .get(temperatureUnit == SIUnits.CELSIUS ? "C" : "F");
+                            .get(SIUnits.CELSIUS.equals(temperatureUnit) ? "C" : "F");
                     DecimalType rawValue = (DecimalType) newPropertyValue;
                     stateChange.updateValue(rawValue.intValue());
                     if (!validTemperatures.validValues.contains(rawValue.intValue())) {
index 822f09078fd0ff821c21260a02ea9012e4b9c76e..b04a8417f28c3f27cab40f54011d5da101ff6321 100644 (file)
@@ -2541,6 +2541,7 @@ public class ZonePlayerHandler extends BaseThingHandler implements UpnpIOPartici
         }
     }
 
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     public boolean publicAddress(LineInType lineInType) {
         // check if sourcePlayer has a line-in connected
         if ((lineInType != LineInType.DIGITAL && isAnalogLineInConnected())
index aaa539dbc9928b17a1ea5bbf81acc481b4eedcb0..1a86a1f770544a861b7a1d392b916c00b325a8ac 100644 (file)
@@ -124,7 +124,7 @@ public class ValloxMVHandler extends BaseThingHandler {
                 // Not writable channel
                 return;
             }
-            if (strUpdateValue != "") {
+            if (!strUpdateValue.isEmpty()) {
                 if (readDataJob != null) {
                     // Re-schedule readDataJob to read device values after data write
                     // Avoid re-scheduling job several times in case of subsequent data writes
index 53ec7faadabaa66fc427e7b9356519001e165dd3..6c5c706b176dd4d2df36ac527ed43601499049b5 100644 (file)
@@ -68,6 +68,7 @@ public class VeluxDiscoveryService extends AbstractDiscoveryService implements R
 
     // Private
 
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     private void updateLocalization() {
         if (localization == Localization.UNKNOWN && localeProvider != null && i18nProvider != null) {
             logger.trace("updateLocalization(): creating Localization based on locale={},translation={}).",
index 58025f8a7c2baaa8692e0cb5f5bca51b92b5a160..3e210a17931dcd44aea87f9c940e939e17f53696 100644 (file)
@@ -125,6 +125,7 @@ public class VeluxHandlerFactory extends BaseThingHandlerFactory {
         });
     }
 
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     private void updateLocalization() {
         if (localization == Localization.UNKNOWN && localeProvider != null && i18nProvider != null) {
             logger.trace("updateLocalization(): creating Localization based on locale={},translation={}).",
index b636b605118d782647d6e75766dc2eefc78a5ce6..30f2bc9e2d7acebdb7ee9cf6055a0018be09416a 100644 (file)
@@ -129,6 +129,7 @@ final class ChannelActuatorPosition extends ChannelHandlerTemplate {
      *            information for this channel.
      * @return newValue ...
      */
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     static @Nullable Command handleCommand(ChannelUID channelUID, String channelId, Command command,
             VeluxBridgeHandler thisBridgeHandler) {
         LOGGER.debug("handleCommand({},{},{},{}) called.", channelUID, channelId, command, thisBridgeHandler);
index 59c8fc647a51fa550268c88c7ed1a7367438ea03..16272cb3e788dd9e7f564056f19cff8344ff649a 100644 (file)
@@ -107,6 +107,7 @@ final class ChannelVShutterPosition extends ChannelHandlerTemplate {
      *            information for this channel.
      * @return newValue ...
      */
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     static @Nullable Command handleCommand(ChannelUID channelUID, String channelId, Command command,
             VeluxBridgeHandler thisBridgeHandler) {
         LOGGER.debug("handleCommand({},{},{},{}) called.", channelUID, channelId, command, thisBridgeHandler);
index a225da45db0986b69d32cfc9de73f3ed74e0792c..00964d9680caeaf41eb99337990528893ca33650 100644 (file)
@@ -135,6 +135,7 @@ public class Thing2VeluxActuator {
      *
      * @return <b>bridgeProductIndex</B> for accessing the Velux device (or ProductBridgeIndex.UNKNOWN if not found).
      */
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     public ProductBridgeIndex getProductBridgeIndex() {
         if (thisProduct == VeluxProduct.UNKNOWN) {
             mapThing2Velux();
@@ -151,6 +152,7 @@ public class Thing2VeluxActuator {
      *
      * @return <b>isKnown</B> as boolean.
      */
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     public boolean isKnown() {
         return (!(this.getProductBridgeIndex() == ProductBridgeIndex.UNKNOWN));
     }
@@ -162,6 +164,7 @@ public class Thing2VeluxActuator {
      *
      * @return <b>isInverted</B> for handling of values of the Velux device (or false if not found)..
      */
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     public boolean isInverted() {
         if (thisProduct == VeluxProduct.UNKNOWN) {
             mapThing2Velux();
index ede6692f680cce5d0a9eb251cb7b8b28b9f3d31d..396c37c20d75ef91220f34b79c7c1195c019a3ab 100644 (file)
@@ -159,7 +159,7 @@ public class VentaThingHandler extends BaseThingHandler {
         if (config.macAddress.isEmpty()) {
             return "Mac Address not set, use discovery to find the correct one";
         }
-        if (config.deviceType == BigDecimal.ZERO) {
+        if (BigDecimal.ZERO.equals(config.deviceType)) {
             return "Device Type not set, use discovery to find the correct one";
         }
         if (config.pollingTime.compareTo(BigDecimal.ZERO) <= 0) {
index 0f08a076c9610a68ad1c2da42f4aae31d2d485ac..d61d890f540f0d09934234c88579d32c4bb867f2 100644 (file)
@@ -318,7 +318,7 @@ public class WLedHandler extends BaseThingHandler {
                         }
                     }
                 } else if (command instanceof HSBType) {
-                    if ((((HSBType) command).getBrightness()) == PercentType.ZERO) {
+                    if (PercentType.ZERO.equals(((HSBType) command).getBrightness())) {
                         sendGetRequest("/win&TT=500&T=0");
                     }
                     primaryColor = (HSBType) command;
index 1bc783b70ca442c168838402c5beb2428bc70eaf..9ce8ac1be0b6a93b85d4bd6445ee98170f4e000c 100644 (file)
@@ -87,7 +87,7 @@ public class HueEmulationService implements EventHandler {
              * Jetty returns 415 on any GET request if a client sends the Content-Type header.
              * This is a workaround - stripping it away in the preMatching stage.
              */
-            if (requestContext.getMethod() == HttpMethod.GET
+            if (HttpMethod.GET.equals(requestContext.getMethod())
                     && requestContext.getHeaders().containsKey(HttpHeader.CONTENT_TYPE.asString())) {
                 requestContext.getHeaders().remove(HttpHeader.CONTENT_TYPE.asString());
             }
index a7cec8960c9e194ddd6c65574550bf0957257f4c..8620ee58cf7a45d19f8717c2afc4adad7e6ede51 100644 (file)
@@ -14,6 +14,7 @@ package org.openhab.persistence.jdbc.dto;
 
 import java.io.Serializable;
 import java.util.Date;
+import java.util.Objects;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -140,7 +141,7 @@ public class ItemVO implements Serializable {
         } else if (!value.equals(other.value)) {
             return false;
         }
-        return time == other.time;
+        return Objects.equals(time, other.time);
     }
 
     @Override
index 8816b9881893876f46ebeecddbf2c808c05b5c6e..54927dd6fafa4281e98e5af788e5d0d410ee9a8f 100644 (file)
@@ -82,7 +82,7 @@ public class MacTTSVoiceTest {
      */
     @Test
     public void getLocaleTest() throws IOException {
-        assumeTrue("Mac OS X" == System.getProperty("os.name"));
+        assumeTrue("Mac OS X".equals(System.getProperty("os.name")));
         Process process = Runtime.getRuntime().exec("say -v ?");
         try (InputStreamReader inputStreamReader = new InputStreamReader(process.getInputStream());
                 BufferedReader bufferedReader = new BufferedReader(inputStreamReader)) {
index b69895eba913d1794ace2d137017cd2dfd027f0e..53e5eb129570a15ec9667bc44cca4888e3c8b00a 100644 (file)
@@ -80,9 +80,9 @@ public final class WWNDataUtil {
 
     public static String fromFile(String fileName, Unit<Temperature> temperatureUnit) throws IOException {
         String json = fromFile(fileName);
-        if (temperatureUnit == SIUnits.CELSIUS) {
+        if (SIUnits.CELSIUS.equals(temperatureUnit)) {
             json = json.replace("\"temperature_scale\": \"F\"", "\"temperature_scale\": \"C\"");
-        } else if (temperatureUnit == ImperialUnits.FAHRENHEIT) {
+        } else if (ImperialUnits.FAHRENHEIT.equals(temperatureUnit)) {
             json = json.replace("\"temperature_scale\": \"C\"", "\"temperature_scale\": \"F\"");
         }
         return json;