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:
Holger Friedrich
2023-09-05 22:30:16 +02:00
committed by GitHub
parent a0dc5c05f2
commit cf10b3e9c7
486 changed files with 2053 additions and 1955 deletions

View File

@@ -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);
}

View File

@@ -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);

View File

@@ -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;

View File

@@ -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<>();

View File

@@ -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 {