var volumeCharacteristic = getCharacteristic(VolumeCharacteristic.class);
var volumeSelectorCharacteristic = getCharacteristic(VolumeSelectorCharacteristic.class);
- if (!volumeControlTypeCharacteristic.isPresent()) {
+ if (volumeControlTypeCharacteristic.isEmpty()) {
VolumeControlTypeEnum type;
if (volumeCharacteristic.isPresent()) {
type = VolumeControlTypeEnum.ABSOLUTE;
import java.net.SocketException;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.List;
+import java.util.Set;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.ResponseBuilder;
public static Response singleError(Gson gson, UriInfo uri, int type, @Nullable String message) {
HueResponse e = new HueResponse(
new HueErrorMessage(type, uri.getPath().replace("/api", ""), message != null ? message : ""));
- String str = gson.toJson(Collections.singleton(e), new TypeToken<List<?>>() {
+ String str = gson.toJson(Set.of(e), new TypeToken<List<?>>() {
}.getType());
int httpCode = 500;
switch (type) {
*/
package org.openhab.io.hueemulation.internal.rest;
-import java.util.Collections;
import java.util.List;
+import java.util.Set;
import javax.ws.rs.GET;
import javax.ws.rs.PUT;
public Response catchAll(@Context UriInfo uri) {
HueResponse e = new HueResponse(
new HueErrorMessage(HueResponse.INVALID_JSON, uri.getPath().replace("/api", ""), "Invalid request: "));
- String str = cs.gson.toJson(Collections.singleton(e), new TypeToken<List<?>>() {
+ String str = cs.gson.toJson(Set.of(e), new TypeToken<List<?>>() {
}.getType());
return Response.status(404).entity(str).build();
}
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Objects;
if (groupItem == null) {
return NetworkUtils.singleError(cs.gson, uri, HueResponse.ARGUMENTS_INVALID, "Group does not exist!");
}
- List<Action> actions = Collections
- .singletonList(actionFromState(cs.mapItemUIDtoHueID(groupItem), groupItem.getState()));
+ List<Action> actions = List.of(actionFromState(cs.mapItemUIDtoHueID(groupItem), groupItem.getState()));
builder.withActions(actions);
}
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
-import java.util.Collections;
import java.util.List;
+import java.util.Set;
import java.util.UUID;
import javax.ws.rs.DELETE;
String clientKey = UUID.randomUUID().toString();
addUser(apiKey, clientKey, userRequest.devicetype);
HueSuccessResponseCreateUser h = new HueSuccessResponseCreateUser(apiKey, clientKey);
- String result = cs.gson.toJson(Collections.singleton(new HueResponse(h)), new TypeToken<List<?>>() {
+ String result = cs.gson.toJson(Set.of(new HueResponse(h)), new TypeToken<List<?>>() {
}.getType());
return Response.ok(result).build();
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.URI;
-import java.util.Collections;
import java.util.Dictionary;
import java.util.Hashtable;
+import java.util.Map;
+import java.util.Set;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeoutException;
} else {
cs = new ConfigStoreWithoutMetadata(networkAddressService, configAdmin, scheduler);
}
- cs.activate(Collections.singletonMap("uuid", "a668dc9b-7172-49c3-832f-acb07dda2a20"));
- cs.switchFilter = Collections.singleton("Switchable");
- cs.whiteFilter = Collections.singleton("Switchable");
- cs.colorFilter = Collections.singleton("ColorLighting");
+ cs.activate(Map.of("uuid", "a668dc9b-7172-49c3-832f-acb07dda2a20"));
+ cs.switchFilter = Set.of("Switchable");
+ cs.whiteFilter = Set.of("Switchable");
+ cs.colorFilter = Set.of("ColorLighting");
userManagement = Mockito.spy(new UserManagement(storageService, cs));
import static org.mockito.Mockito.mock;
import java.io.IOException;
-import java.util.Collections;
+import java.util.Map;
import java.util.concurrent.ScheduledExecutorService;
import org.eclipse.jdt.annotation.NonNullByDefault;
// Pretend there is a metadata entry for the imaginary item "demo1" with hueid 10
commonSetup.metadataRegistry.add(new Metadata(new MetadataKey(ConfigStore.METAKEY, "demo1"), "10", null));
- cs.activate(Collections.singletonMap("uuid", "demouuid"));
+ cs.activate(Map.of("uuid", "demouuid"));
assertThat(cs.getHighestAssignedHueID(), CoreMatchers.is(10));
}
import java.io.IOException;
import java.lang.reflect.Type;
-import java.util.Collections;
+import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Random;
configuration.put("time", "12:12:00");
trigger = TriggerBuilder.create().withId("absolutetrigger").withTypeUID("timer.AbsoluteDateTimeTrigger")
.withConfiguration(configuration).build();
- timeString = RuleUtils.timeStringFromTrigger(Collections.singletonList(trigger));
+ timeString = RuleUtils.timeStringFromTrigger(List.of(trigger));
assertThat(timeString, is("2020-02-01T12:12:00"));
configuration.put("randomizeTime", "14:12:34");
trigger = TriggerBuilder.create().withId("absolutetrigger").withTypeUID("timer.AbsoluteDateTimeTrigger")
.withConfiguration(configuration).build();
- timeString = RuleUtils.timeStringFromTrigger(Collections.singletonList(trigger));
+ timeString = RuleUtils.timeStringFromTrigger(List.of(trigger));
assertThat(timeString, is("2020-02-01T12:12:00A14:12:34"));
configuration.put("cronExpression", "15 12 * * 6,7");
trigger = TriggerBuilder.create().withId("crontrigger").withTypeUID("timer.GenericCronTrigger")
.withConfiguration(configuration).build();
- timeString = RuleUtils.timeStringFromTrigger(Collections.singletonList(trigger));
+ timeString = RuleUtils.timeStringFromTrigger(List.of(trigger));
assertThat(timeString, is("W3/T12:15:00"));
configuration.put("cronExpression", "15 14 * * 1,2,3,4,5,6,7");
trigger = TriggerBuilder.create().withId("crontrigger").withTypeUID("timer.GenericCronTrigger")
.withConfiguration(configuration).build();
- timeString = RuleUtils.timeStringFromTrigger(Collections.singletonList(trigger));
+ timeString = RuleUtils.timeStringFromTrigger(List.of(trigger));
assertThat(timeString, is("W127/T14:15:00"));
configuration.put("time", "12:12:00");
trigger = TriggerBuilder.create().withId("timertrigger").withTypeUID("timer.TimerTrigger")
.withConfiguration(configuration).build();
- timeString = RuleUtils.timeStringFromTrigger(Collections.singletonList(trigger));
+ timeString = RuleUtils.timeStringFromTrigger(List.of(trigger));
assertThat(timeString, is("PT12:12:00"));
configuration.put("randomizeTime", "14:12:34");
trigger = TriggerBuilder.create().withId("timertrigger").withTypeUID("timer.TimerTrigger")
.withConfiguration(configuration).build();
- timeString = RuleUtils.timeStringFromTrigger(Collections.singletonList(trigger));
+ timeString = RuleUtils.timeStringFromTrigger(List.of(trigger));
assertThat(timeString, is("PT12:12:00A14:12:34"));
configuration.put("repeat", -1);
trigger = TriggerBuilder.create().withId("timertrigger").withTypeUID("timer.TimerTrigger")
.withConfiguration(configuration).build();
- timeString = RuleUtils.timeStringFromTrigger(Collections.singletonList(trigger));
+ timeString = RuleUtils.timeStringFromTrigger(List.of(trigger));
assertThat(timeString, is("R/PT12:12:00"));
configuration.put("repeat", 12);
trigger = TriggerBuilder.create().withId("timertrigger").withTypeUID("timer.TimerTrigger")
.withConfiguration(configuration).build();
- timeString = RuleUtils.timeStringFromTrigger(Collections.singletonList(trigger));
+ timeString = RuleUtils.timeStringFromTrigger(List.of(trigger));
assertThat(timeString, is("R12/PT12:12:00A14:12:34"));
}
*/
@Override
public Set<String> getSubscribedEventTypes() {
- return Collections.singleton(ItemStateChangedEvent.TYPE);
+ return Set.of(ItemStateChangedEvent.TYPE);
}
@Override
final String format = channel.getValue();
// HSBType must be done before the others since it inherits from DecimalType
- if (state instanceof HSBType) {
- final HSBType hsb = (HSBType) state;
+ if (state instanceof HSBType hsb) {
switch (channel.getSubType()) {
case HUE:
return new NeeoItemValue(hsb.getHue().toBigDecimal());
convertedState = UnDefType.UNDEF;
break;
case SLIDER:
- if (state instanceof PercentType) {
- convertedState = new DecimalType(((PercentType) state).toBigDecimal());
+ if (state instanceof PercentType type) {
+ convertedState = new DecimalType(type.toBigDecimal());
} else {
convertedState = state.as(DecimalType.class);
}
} else if (convertedState instanceof UpDownType) {
return new NeeoItemValue(convertedState == UpDownType.UP);
- } else if (convertedState instanceof DecimalType) {
+ } else if (convertedState instanceof DecimalType type) {
if (format == null || format.isEmpty() || channel.getType() == NeeoCapabilityType.SLIDER) {
- return new NeeoItemValue(((DecimalType) convertedState).toBigDecimal());
+ return new NeeoItemValue(type.toBigDecimal());
}
} else if (convertedState instanceof UnDefType) {
return new NeeoItemValue("-");
compPath + "/textlabel/actor", new JsonPrimitive(sensorItemName));
capObj.addProperty("isLabelVisible",
- channel instanceof NeeoDeviceChannelText ? ((NeeoDeviceChannelText) channel).isLabelVisible()
- : true);
+ channel instanceof NeeoDeviceChannelText ndct ? ndct.isLabelVisible() : true);
capabilities.add(capObj);
}
- if (chnl instanceof NeeoDeviceChannelText) {
- jo.addProperty("labelVisible", ((NeeoDeviceChannelText) chnl).isLabelVisible());
- } else if (chnl instanceof NeeoDeviceChannelDirectory) {
- jo.add("listItems", jsonContext.serialize(((NeeoDeviceChannelDirectory) chnl).getListItems()));
+ if (chnl instanceof NeeoDeviceChannelText text) {
+ jo.addProperty("labelVisible", text.isLabelVisible());
+ } else if (chnl instanceof NeeoDeviceChannelDirectory directory) {
+ jo.add("listItems", jsonContext.serialize(directory.getListItems()));
}
return jo;
}
} else {
- if (channel instanceof NeeoDeviceChannelDirectory) {
+ if (channel instanceof NeeoDeviceChannelDirectory directoryChannel) {
final NeeoDirectoryRequest discoveryRequest = gson.fromJson(req.getReader(),
NeeoDirectoryRequest.class);
- final NeeoDeviceChannelDirectory directoryChannel = (NeeoDeviceChannelDirectory) channel;
NeeoUtil.write(resp, gson.toJson(new NeeoDirectoryResult(discoveryRequest, directoryChannel)));
} else {
logger.debug("Channel definition for '{}' not found to directory set value ({})",
})//
.on(Manager.EVENT_CONNECT_ERROR, args -> {
if (args.length > 0) {
- if (args[0] instanceof Exception) {
- Exception e = (Exception) args[0];
+ if (args[0] instanceof Exception e) {
logger.debug(
"Error connecting to the openHAB Cloud instance: {} {}. Should reconnect automatically.",
e.getClass().getSimpleName(), e.getMessage());
.on(Manager.EVENT_PACKET, args -> {
int packetTypeIndex = -1;
String type = "<unexpected packet type>";
- if (args.length == 1 && args[0] instanceof Packet<?>) {
- packetTypeIndex = ((Packet<?>) args[0]).type;
+ if (args.length == 1 && args[0] instanceof Packet<?> packet) {
+ packetTypeIndex = packet.type;
if (packetTypeIndex < Parser.types.length) {
type = Parser.types[packetTypeIndex];
.on(Socket.EVENT_RECONNECT,
args -> logger.debug("Socket.IO re-connected successfully (attempt {})", args[0]))//
.on(Socket.EVENT_RECONNECT_ERROR, args -> {
- if (args[0] instanceof Exception) {
- Exception e = (Exception) args[0];
+ if (args[0] instanceof Exception e) {
logger.debug("Socket.IO re-connect attempt error: {} {}", e.getClass().getSimpleName(),
e.getMessage());
} else {
.on(Socket.EVENT_ERROR, args -> {
if (CloudClient.this.socket.connected()) {
if (args.length > 0) {
- if (args[0] instanceof Exception) {
- Exception e = (Exception) args[0];
+ if (args[0] instanceof Exception e) {
logger.warn("Error during communication: {} {}", e.getClass().getSimpleName(),
e.getMessage());
} else {
long delay = reconnectBackoff.duration();
// Try reconnecting on connection errors
if (args.length > 0) {
- if (args[0] instanceof Exception) {
- Exception e = (Exception) args[0];
+ if (args[0] instanceof Exception e) {
logger.warn(
"Error connecting to the openHAB Cloud instance: {} {}. Reconnecting after {} ms.",
e.getClass().getSimpleName(), e.getMessage(), delay);
exposedItems = new HashSet<>();
Object expCfg = config.get(CFG_EXPOSE);
- if (expCfg instanceof String) {
- String value = (String) expCfg;
+ if (expCfg instanceof String value) {
while (value.startsWith("[")) {
value = value.substring(1);
}
for (String itemName : Arrays.asList((value).split(","))) {
exposedItems.add(itemName.trim());
}
- } else if (expCfg instanceof Iterable) {
- for (Object entry : ((Iterable<?>) expCfg)) {
+ } else if (expCfg instanceof Iterable iterable) {
+ for (Object entry : iterable) {
exposedItems.add(entry.toString());
}
}
@Override
protected @Nullable ModuleHandler internalCreate(Module module, String ruleUID) {
- if (module instanceof Action) {
+ if (module instanceof Action action) {
switch (module.getTypeUID()) {
case SendNotificationActionHandler.TYPE_ID:
case SendNotificationActionHandler.EXTENDED_TYPE_ID:
- return new SendNotificationActionHandler((Action) module, cloudService);
+ return new SendNotificationActionHandler(action, cloudService);
case SendBroadcastNotificationActionHandler.TYPE_ID:
case SendBroadcastNotificationActionHandler.EXTENDED_TYPE_ID:
- return new SendBroadcastNotificationActionHandler((Action) module, cloudService);
+ return new SendBroadcastNotificationActionHandler(action, cloudService);
case SendLogNotificationActionHandler.TYPE_ID:
case SendLogNotificationActionHandler.EXTENDED_TYPE_ID:
- return new SendLogNotificationActionHandler((Action) module, cloudService);
+ return new SendLogNotificationActionHandler(action, cloudService);
default:
break;
}