Java 17 features (A-G) (#15516)
- add missing @override - Java style array syntax - remove redundant modifiers - always move String constants to left side in comparisons - simplify lambda expressions and return statements - use replace instead of replaceAll w/o regex - instanceof matching and multiline strings Signed-off-by: Holger Friedrich <mail@holger-friedrich.de>
This commit is contained in:
@@ -78,9 +78,9 @@ public class DBQueryActions implements IDBQueryActions, ThingActions {
|
||||
@RuleAction(label = "Set query parameters", description = "Set query parameters for a query")
|
||||
public void setQueryParameters(@ActionInput(name = "parameters") Map<String, @Nullable Object> parameters) {
|
||||
logger.debug("setQueryParameters {}", parameters);
|
||||
var queryHandler = getThingHandler();
|
||||
if (queryHandler instanceof QueryHandler) {
|
||||
((QueryHandler) queryHandler).setParameters(parameters);
|
||||
var thingHandler = getThingHandler();
|
||||
if (thingHandler instanceof QueryHandler queryHandler) {
|
||||
queryHandler.setParameters(parameters);
|
||||
} else {
|
||||
logger.warn("setQueryParameters called on wrong Thing, it must be a Query Thing");
|
||||
}
|
||||
@@ -100,10 +100,10 @@ public class DBQueryActions implements IDBQueryActions, ThingActions {
|
||||
|
||||
@Override
|
||||
public void setThingHandler(ThingHandler thingHandler) {
|
||||
if (thingHandler instanceof QueryHandler) {
|
||||
this.queryHandler = ((QueryHandler) thingHandler);
|
||||
} else if (thingHandler instanceof DatabaseBridgeHandler) {
|
||||
this.databaseBridgeHandler = ((DatabaseBridgeHandler) thingHandler);
|
||||
if (thingHandler instanceof QueryHandler queryHandler) {
|
||||
this.queryHandler = queryHandler;
|
||||
} else if (thingHandler instanceof DatabaseBridgeHandler databaseBridgeHandler) {
|
||||
this.databaseBridgeHandler = databaseBridgeHandler;
|
||||
} else {
|
||||
throw new UnnexpectedCondition("Not expected thing handler " + thingHandler);
|
||||
}
|
||||
|
||||
@@ -193,13 +193,11 @@ public class QueryHandler extends BaseThingHandler {
|
||||
|
||||
private void updateStateWithParentBridgeStatus() {
|
||||
final @Nullable Bridge bridge = getBridge();
|
||||
DatabaseBridgeHandler databaseBridgeHandler;
|
||||
|
||||
if (bridge != null) {
|
||||
@Nullable
|
||||
BridgeHandler bridgeHandler = bridge.getHandler();
|
||||
if (bridgeHandler instanceof DatabaseBridgeHandler) {
|
||||
databaseBridgeHandler = (DatabaseBridgeHandler) bridgeHandler;
|
||||
if (bridgeHandler instanceof DatabaseBridgeHandler databaseBridgeHandler) {
|
||||
database = databaseBridgeHandler.getDatabase();
|
||||
if (bridge.getStatus() == ThingStatus.ONLINE) {
|
||||
updateStatus(ThingStatus.ONLINE);
|
||||
|
||||
@@ -75,12 +75,12 @@ public class Value2StateConverter {
|
||||
}
|
||||
|
||||
private State convert2DateTime(Object value) {
|
||||
if (value instanceof Instant) {
|
||||
return new DateTimeType(ZonedDateTime.ofInstant((Instant) value, ZoneId.systemDefault()));
|
||||
} else if (value instanceof Date) {
|
||||
return new DateTimeType(ZonedDateTime.ofInstant(((Date) value).toInstant(), ZoneId.systemDefault()));
|
||||
} else if (value instanceof String) {
|
||||
return new DateTimeType((String) value);
|
||||
if (value instanceof Instant instant) {
|
||||
return new DateTimeType(ZonedDateTime.ofInstant(instant, ZoneId.systemDefault()));
|
||||
} else if (value instanceof Date date) {
|
||||
return new DateTimeType(ZonedDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault()));
|
||||
} else if (value instanceof String string) {
|
||||
return new DateTimeType(string);
|
||||
} else {
|
||||
logger.warn("Can't convert {} to DateTimeType", value);
|
||||
return UnDefType.NULL;
|
||||
@@ -96,16 +96,16 @@ public class Value2StateConverter {
|
||||
return new DecimalType((Float) value);
|
||||
} else if (value instanceof Double) {
|
||||
return new DecimalType((Double) value);
|
||||
} else if (value instanceof BigDecimal) {
|
||||
return new DecimalType((BigDecimal) value);
|
||||
} else if (value instanceof BigInteger) {
|
||||
return new DecimalType(new BigDecimal((BigInteger) value));
|
||||
} else if (value instanceof Number) {
|
||||
return new DecimalType(((Number) value).longValue());
|
||||
} else if (value instanceof String) {
|
||||
return DecimalType.valueOf((String) value);
|
||||
} else if (value instanceof Duration) {
|
||||
return new DecimalType(((Duration) value).toMillis());
|
||||
} else if (value instanceof BigDecimal decimal) {
|
||||
return new DecimalType(decimal);
|
||||
} else if (value instanceof BigInteger integer) {
|
||||
return new DecimalType(new BigDecimal(integer));
|
||||
} else if (value instanceof Number number) {
|
||||
return new DecimalType(number.longValue());
|
||||
} else if (value instanceof String string) {
|
||||
return DecimalType.valueOf(string);
|
||||
} else if (value instanceof Duration duration) {
|
||||
return new DecimalType(duration.toMillis());
|
||||
} else {
|
||||
logger.warn("Can't convert {} to DecimalType", value);
|
||||
return UnDefType.NULL;
|
||||
@@ -113,25 +113,24 @@ public class Value2StateConverter {
|
||||
}
|
||||
|
||||
private State convert2String(Object value) {
|
||||
if (value instanceof String) {
|
||||
return new StringType((String) value);
|
||||
} else if (value instanceof byte[]) {
|
||||
return new StringType(Base64.getEncoder().encodeToString((byte[]) value));
|
||||
} else if (value instanceof QueryResult) {
|
||||
return new StringType(jsonEncoder.encode((QueryResult) value));
|
||||
if (value instanceof String string) {
|
||||
return new StringType(string);
|
||||
} else if (value instanceof byte[] bytes) {
|
||||
return new StringType(Base64.getEncoder().encodeToString(bytes));
|
||||
} else if (value instanceof QueryResult result) {
|
||||
return new StringType(jsonEncoder.encode(result));
|
||||
} else {
|
||||
return new StringType(String.valueOf(value));
|
||||
}
|
||||
}
|
||||
|
||||
private @Nullable Boolean convert2Boolean(Object value) {
|
||||
if (value instanceof Boolean) {
|
||||
return (Boolean) value;
|
||||
} else if (value instanceof Number) {
|
||||
return ((Number) value).doubleValue() != 0d;
|
||||
} else if (value instanceof String) {
|
||||
var svalue = (String) value;
|
||||
return Boolean.parseBoolean(svalue) || (svalue.equalsIgnoreCase("on")) || svalue.equals("1");
|
||||
if (value instanceof Boolean boolean1) {
|
||||
return boolean1;
|
||||
} else if (value instanceof Number number) {
|
||||
return number.doubleValue() != 0d;
|
||||
} else if (value instanceof String svalue) {
|
||||
return Boolean.parseBoolean(svalue) || ("on".equalsIgnoreCase(svalue)) || "1".equals(svalue);
|
||||
} else {
|
||||
logger.warn("Can't convert {} to OnOffType or OpenClosedType", value);
|
||||
return null;
|
||||
|
||||
@@ -81,8 +81,7 @@ public class Influx2Database implements Database {
|
||||
@Override
|
||||
public CompletableFuture<QueryResult> executeQuery(Query query) {
|
||||
try {
|
||||
if (query instanceof Influx2QueryFactory.Influx2Query) {
|
||||
Influx2QueryFactory.Influx2Query influxQuery = (Influx2QueryFactory.Influx2Query) query;
|
||||
if (query instanceof Influx2QueryFactory.Influx2Query influxQuery) {
|
||||
|
||||
CompletableFuture<QueryResult> asyncResult = new CompletableFuture<>();
|
||||
List<FluxRecord> records = new ArrayList<>();
|
||||
|
||||
@@ -90,16 +90,16 @@ public class DBQueryJSONEncoder {
|
||||
}
|
||||
|
||||
private static JsonElement convertValueToJsonPrimitive(@Nullable Object value) {
|
||||
if (value instanceof Number) {
|
||||
return new JsonPrimitive((Number) value);
|
||||
} else if (value instanceof Boolean) {
|
||||
return new JsonPrimitive((Boolean) value);
|
||||
if (value instanceof Number number) {
|
||||
return new JsonPrimitive(number);
|
||||
} else if (value instanceof Boolean boolean1) {
|
||||
return new JsonPrimitive(boolean1);
|
||||
} else if (value instanceof Character) {
|
||||
return new JsonPrimitive((Character) value);
|
||||
} else if (value instanceof Date) {
|
||||
return new JsonPrimitive(DateTimeFormatter.ISO_INSTANT.format(((Date) value).toInstant()));
|
||||
} else if (value instanceof Instant) {
|
||||
return new JsonPrimitive(DateTimeFormatter.ISO_INSTANT.format((Instant) value));
|
||||
} else if (value instanceof Date date) {
|
||||
return new JsonPrimitive(DateTimeFormatter.ISO_INSTANT.format(date.toInstant()));
|
||||
} else if (value instanceof Instant instant) {
|
||||
return new JsonPrimitive(DateTimeFormatter.ISO_INSTANT.format(instant));
|
||||
} else if (value != null) {
|
||||
return new JsonPrimitive(value.toString());
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user