OH3 MainUI-rule condition: only if all members are ON

Any time you touch on something from openHAB itself (Group, Item, Action, etc.) you are working with the core Java Objects even though your rule is written in some other language (in this case Rules DSL.

So looking at the openHAB Java Docs for Group Item: GroupItem (openHAB Core 5.1.0-SNAPSHOT API)

We see that getMembers() returns a Set<Item>. You can even click on that and it will take you to the doc for Set which shows all the methods available to you.

One place where it gets a little weird though is that Xtend, the base language for Rules DSL provides a bunch of wrappers around the core Java Collection Classes to make interacting with the Java Collections Stream API a little easier. Unfortunately that stuff really isn’t documented well by Xtend even which is why I wrote Design Pattern: Working with Groups in Rules.

Note: in some of the rules languages like JS Scripting and jRuby, a pure native abstraction layer is provided so that you never have to mess with the Java stuff directly. In these cases, if you look at the reference docs for the add-on and just generic references for the language you will get everything you need.