Rework more commons-lang usages (#10314)

* Reworks many commons-lang usages to use standard Java
* Updates all remaining commons.lang imports to commons.lang3

Related to openhab/openhab-addons#7722

Signed-off-by: Wouter Born <github@maindrain.net>
This commit is contained in:
Wouter Born
2021-03-16 12:38:16 +01:00
committed by GitHub
parent 16fba31556
commit f3503430b4
257 changed files with 906 additions and 1125 deletions

View File

@@ -12,16 +12,15 @@
*/
package org.openhab.binding.bsblan.internal.api;
import static org.openhab.binding.bsblan.internal.BsbLanBindingConstants.*;
import static org.openhab.binding.bsblan.internal.BsbLanBindingConstants.API_TIMEOUT;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.Charset;
import java.util.HashSet;
import java.util.Set;
import java.util.stream.Collectors;
import org.apache.commons.lang.StringUtils;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.openhab.binding.bsblan.internal.api.dto.BsbLanApiContentDTO;
@@ -50,17 +49,14 @@ public class BsbLanApiCaller {
}
public @Nullable BsbLanApiParameterQueryResponseDTO queryParameter(Integer parameterId) {
Set<Integer> parameters = new HashSet<>();
parameters.add(parameterId);
return queryParameters(parameters);
return queryParameters(Set.of(parameterId));
}
public @Nullable BsbLanApiParameterQueryResponseDTO queryParameters(Set<Integer> parameterIds) {
// note: make the request even if parameterIds is empty as
// thing OFFLINE/ONLINE detection relies on a response
String apiPath = String.format("/JQ=%s", StringUtils.join(parameterIds, ","));
String apiPath = String.format("/JQ=%s",
parameterIds.stream().map(String::valueOf).collect(Collectors.joining(",")));
return makeRestCall(BsbLanApiParameterQueryResponseDTO.class, "GET", apiPath, null);
}
@@ -96,21 +92,21 @@ public class BsbLanApiCaller {
}
private String createApiBaseUrl() {
final String host = StringUtils.trimToEmpty(bridgeConfig.host);
final String username = StringUtils.trimToEmpty(bridgeConfig.username);
final String password = StringUtils.trimToEmpty(bridgeConfig.password);
final String passkey = StringUtils.trimToEmpty(bridgeConfig.passkey);
final String host = bridgeConfig.host == null ? "" : bridgeConfig.host.trim();
final String username = bridgeConfig.username == null ? "" : bridgeConfig.username.trim();
final String password = bridgeConfig.password == null ? "" : bridgeConfig.password.trim();
final String passkey = bridgeConfig.passkey == null ? "" : bridgeConfig.passkey.trim();
StringBuilder url = new StringBuilder();
url.append("http://");
if (StringUtils.isNotBlank(username) && StringUtils.isNotBlank(password)) {
if (!username.isBlank() && !password.isBlank()) {
url.append(username).append(":").append(password).append("@");
}
url.append(host);
if (bridgeConfig.port != 80) {
url.append(":").append(bridgeConfig.port);
}
if (StringUtils.isNotBlank(passkey)) {
if (!passkey.isBlank()) {
url.append("/").append(passkey);
}
return url.toString();
@@ -134,7 +130,7 @@ public class BsbLanApiCaller {
if (request != null) {
String content = BsbLanApiContentConverter.toJson(request);
logger.trace("api request content: '{}'", content);
if (StringUtils.isNotBlank(content)) {
if (!content.isBlank()) {
contentStream = new ByteArrayInputStream(content.getBytes(Charset.forName("UTF-8")));
contentType = "application/json";
}

View File

@@ -18,9 +18,8 @@ import java.util.HashSet;
import java.util.Set;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;
import java.util.stream.*;
import java.util.stream.Collectors;
import org.apache.commons.lang.StringUtils;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.openhab.binding.bsblan.internal.api.BsbLanApiCaller;
@@ -78,7 +77,8 @@ public class BsbLanBridgeHandler extends BaseBridgeHandler {
bridgeConfig = getConfigAs(BsbLanBridgeConfiguration.class);
// validate 'host' configuration
if (StringUtils.isBlank(bridgeConfig.host)) {
String host = bridgeConfig.host;
if (host == null || host.isBlank()) {
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR,
"Parameter 'host' is mandatory and must be configured");
return;
@@ -128,8 +128,10 @@ public class BsbLanBridgeHandler extends BaseBridgeHandler {
BsbLanApiCaller apiCaller = new BsbLanApiCaller(bridgeConfig);
// refresh all parameters
Set<Integer> parameterIds = things.stream().filter(thing -> thing instanceof BsbLanParameterHandler)
.map(thing -> (BsbLanParameterHandler) thing).map(thing -> thing.getParameterId())
Set<Integer> parameterIds = things.stream() //
.filter(thing -> thing instanceof BsbLanParameterHandler) //
.map(thing -> (BsbLanParameterHandler) thing) //
.map(thing -> thing.getParameterId()) //
.collect(Collectors.toSet());
cachedParameterQueryResponse = apiCaller.queryParameters(parameterIds);

View File

@@ -14,10 +14,11 @@ package org.openhab.binding.bsblan.internal.helper;
import static org.openhab.binding.bsblan.internal.BsbLanBindingConstants.*;
import org.apache.commons.lang.StringEscapeUtils;
import org.apache.commons.lang3.StringEscapeUtils;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable;
import org.openhab.binding.bsblan.internal.api.dto.BsbLanApiParameterDTO;
import org.openhab.binding.bsblan.internal.handler.BsbLanParameterHandler;
import org.openhab.core.library.types.DecimalType;
import org.openhab.core.library.types.OnOffType;
import org.openhab.core.library.types.StringType;
@@ -74,7 +75,7 @@ public class BsbLanParameterConverter {
}
private static State getStateForUnitChannel(BsbLanApiParameterDTO parameter) {
String value = StringEscapeUtils.unescapeHtml(parameter.unit);
String value = StringEscapeUtils.unescapeHtml4(parameter.unit);
return new StringType(value);
}
@@ -110,7 +111,7 @@ public class BsbLanParameterConverter {
/**
* Converts a Command back to a value which is sent to the BSB-LAN device afterwards.
*
*
* @param channelId
* @param command
* @return null if conversion fails or channel is readonly.