2 * Copyright (c) 2010-2023 Contributors to the openHAB project
4 * See the NOTICE file(s) distributed with this work for additional
7 * This program and the accompanying materials are made available under the
8 * terms of the Eclipse Public License 2.0 which is available at
9 * http://www.eclipse.org/legal/epl-2.0
11 * SPDX-License-Identifier: EPL-2.0
13 package org.openhab.binding.hue.internal.handler;
15 import java.util.List;
17 import org.eclipse.jdt.annotation.NonNullByDefault;
18 import org.openhab.binding.hue.internal.dto.FullGroup;
19 import org.openhab.binding.hue.internal.dto.Scene;
22 * The {@link GroupStatusListener} is notified when a group status has changed or a group has been removed or added.
24 * @author Laurent Garnier - Initial contribution
27 public interface GroupStatusListener {
30 * This method returns the group id of listener
32 * @return groupId String
37 * This method is called whenever the state of the given group has changed. The new state can be obtained by
38 * {@link FullGroup#getState()}.
40 * @param group The group which received the state update.
43 boolean onGroupStateChanged(FullGroup group);
46 * This method is called whenever a group is removed.
48 void onGroupRemoved();
51 * This method is called whenever a group is reported as gone.
56 * This method is called whenever a group is added.
58 * @param group The added group
60 void onGroupAdded(FullGroup group);
63 * This method is called whenever the list of available scenes is updated.
65 * @param updatedScenes available scenes
67 void onScenesUpdated(List<Scene> scenes);