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.digitalstrom.internal.lib.structure;
15 import java.util.List;
17 import org.openhab.binding.digitalstrom.internal.lib.structure.devices.Device;
20 * The {@link Zone} represents a digitalSTROM-Zone.
22 * @author Alexander Betker - Initial contribution
23 * @author Michael Ochel - add java-doc
24 * @author Matthias Siegele - add java-doc
26 public interface Zone {
29 * Returns the zone id of this {@link Zone}.
36 * Sets the zone id of this {@link Zone}.
40 void setZoneId(int id);
43 * Returns the zone name of this {@link Zone}.
50 * Sets the zone name of this {@link Zone}.
54 void setName(String name);
57 * Returns the {@link List} of all included groups as {@link DetailedGroupInfo}.
59 * @return list of all groups
61 List<DetailedGroupInfo> getGroups();
64 * Adds a group as {@link DetailedGroupInfo}.
68 void addGroup(DetailedGroupInfo group);
71 * Returns a {@link List} of all included {@link Device}'s.
75 List<Device> getDevices();
78 * Adds a {@link Device} to this {@link Zone}.
80 * @param device to add
82 void addDevice(Device device);