THING_TYPE_BUTTON, THING_TYPE_UNIT_UPB, THING_TYPE_THERMOSTAT, THING_TYPE_CONSOLE, THING_TYPE_AUDIO_ZONE,
THING_TYPE_AUDIO_SOURCE, THING_TYPE_TEMP_SENSOR, THING_TYPE_HUMIDITY_SENSOR, THING_TYPE_LOCK,
THING_TYPE_OUTPUT, THING_TYPE_UNIT, THING_TYPE_DIMMABLE);
+ public static final Set<ThingTypeUID> SUPPORTED_UNIT_TYPES_UIDS = Set.of(THING_TYPE_UNIT_UPB, THING_TYPE_ROOM,
+ THING_TYPE_FLAG, THING_TYPE_OUTPUT, THING_TYPE_DIMMABLE, THING_TYPE_UNIT);
}
}
private Optional<Thing> getUnitThing(int unitId) {
- Optional<Thing> theThing = getChildThing(THING_TYPE_UNIT_UPB, unitId);
- if (!(theThing.isPresent())) {
- theThing = getChildThing(THING_TYPE_ROOM, unitId);
- }
- if (!(theThing.isPresent())) {
- theThing = getChildThing(THING_TYPE_FLAG, unitId);
- }
- if (!(theThing.isPresent())) {
- theThing = getChildThing(THING_TYPE_OUTPUT, unitId);
- }
- if (!(theThing.isPresent())) {
- theThing = getChildThing(THING_TYPE_DIMMABLE, unitId);
- }
- if (!(theThing.isPresent())) {
- theThing = getChildThing(THING_TYPE_UNIT, unitId);
- }
-
- return theThing;
+ return SUPPORTED_UNIT_TYPES_UIDS.stream().map(uid -> getChildThing(uid, unitId)).flatMap(Optional::stream)
+ .findFirst();
}
public Optional<AudioPlayer> getAudioPlayer() {