[OmniLink] Use for each loop in getChildThing() (#9963)

* Use for each loop in getChildThing()

Signed-off-by: Ethan Dye <mrtops03@gmail.com>

* Further refine getChildThing() using stream map

Signed-off-by: Ethan Dye <mrtops03@gmail.com>

* Fix spotless errors

Signed-off-by: Ethan Dye <mrtops03@gmail.com>
pull/9977/head
Ethan Dye 2021-01-26 09:20:39 -07:00 committed by GitHub
parent a49b3487fa
commit e8ba8ec47b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 18 deletions

View File

@ -185,4 +185,6 @@ public class OmnilinkBindingConstants {
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);
}

View File

@ -568,24 +568,8 @@ public class OmnilinkBridgeHandler extends BaseBridgeHandler implements Notifica
}
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() {