*/
package org.openhab.binding.phc.internal;
-import org.apache.commons.lang3.StringUtils;
import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.openhab.binding.phc.internal.util.StringUtils;
import org.openhab.core.thing.ThingTypeUID;
import org.openhab.core.thing.ThingUID;
*/
public static ThingUID getThingUIDreverse(ThingTypeUID thingTypeUID, byte moduleAddr) {
// convert to 5-bit binary string and reverse in second step
- String thingID = StringUtils.leftPad(StringUtils.trim(Integer.toBinaryString(moduleAddr & 0xFF)), 5, '0');
+ String thingID = StringUtils.padLeft(Integer.toBinaryString(moduleAddr & 0xFF).trim(), 5, "0");
thingID = new StringBuilder(thingID).reverse().toString();
ThingUID thingUID = new ThingUID(thingTypeUID, thingID);
public static Object bytesToBinaryString(byte[] bytes) {
StringBuilder bin = new StringBuilder();
for (byte b : bytes) {
- bin.append(StringUtils.leftPad(StringUtils.trim(Integer.toBinaryString(b & 0xFF)), 8, '0'));
+ bin.append(StringUtils.padLeft(Integer.toBinaryString(b & 0xFF).trim(), 8, "0"));
bin.append(' ');
}
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ScheduledThreadPoolExecutor;
-import org.apache.commons.lang3.StringUtils;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.openhab.binding.phc.internal.PHCBindingConstants;
import org.openhab.binding.phc.internal.PHCHelper;
+import org.openhab.binding.phc.internal.util.StringUtils;
import org.openhab.core.io.transport.serial.PortInUseException;
import org.openhab.core.io.transport.serial.SerialPort;
import org.openhab.core.io.transport.serial.SerialPortEvent;
private void handleIncomingCommand(byte moduleAddress, int channel, OnOffType onOff) {
ThingUID uid = PHCHelper.getThingUIDreverse(PHCBindingConstants.THING_TYPE_EM, moduleAddress);
Thing thing = getThing().getThing(uid);
- String channelId = "em#" + StringUtils.leftPad(Integer.toString(channel), 2, '0');
+ String channelId = "em#" + StringUtils.padLeft(Integer.toString(channel), 2, "0");
if (thing != null && thing.getHandler() != null) {
logger.debug("Input: {}, {}, {}", thing.getUID(), channelId, onOff);
--- /dev/null
+/**
+ * Copyright (c) 2010-2023 Contributors to the openHAB project
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ */
+package org.openhab.binding.phc.internal.util;
+
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.eclipse.jdt.annotation.Nullable;
+
+/**
+ * The {@link StringUtils} class defines some static string utility methods
+ *
+ * @author Leo Siepel - Initial contribution
+ */
+@NonNullByDefault
+public class StringUtils {
+
+ public static String padLeft(@Nullable String input, int minSize, String padString) {
+ if (input == null) {
+ input = "";
+ }
+ return String.format("%" + minSize + "s", input).replace(" ", padString);
+ }
+}
--- /dev/null
+/**
+ * Copyright (c) 2010-2023 Contributors to the openHAB project
+ *
+ * See the NOTICE file(s) distributed with this work for additional
+ * information.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ */
+
+package org.openhab.binding.phc.internal.util;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.junit.jupiter.api.Test;
+
+/**
+ * The {@link StringUtils} class defines some static string utility methods
+ *
+ * @author Leo Siepel - Initial contribution
+ */
+@NonNullByDefault
+public class StringUtilsTest {
+
+ @Test
+ public void padLeft() {
+ assertEquals("000000", StringUtils.padLeft("", 6, "0"));
+ assertEquals("000000", StringUtils.padLeft(null, 6, "0"));
+ assertEquals("000teststr", StringUtils.padLeft("teststr", 10, "0"));
+ assertEquals("AAAAAAp3RF@CT", StringUtils.padLeft("p3RF@CT", 13, "A"));
+ assertEquals("nopaddingshouldhappen", StringUtils.padLeft("nopaddingshouldhappen", 21, "x"));
+ assertEquals("LongerStringThenMinSize", StringUtils.padLeft("LongerStringThenMinSize", 10, "x"));
+ }
+}