/** * Copyright (c) 2010-2016 by the respective copyright holders. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html */ package org.openhab.binding.sonos.internal; import org.joda.time.DateTime; import org.joda.time.Period; /** * * SonosAlarm represents Alarms (as in Alarm Clock). Sonos devices have a alarm clock functionality that can * be used to set alarms (e.g. wake up,...) in a multi-room fashion * * @author Karel Goderis * @since 1.1.0 * */ public class SonosAlarm implements Cloneable { @Override public Object clone() { try { return super.clone(); } catch (Exception e) { return null; } } public int getID() { return ID; } public DateTime getStartTime() { return startTime; } /** * @param startTime the startTime to set */ public void setStartTime(DateTime startTime) { this.startTime = startTime; } public Period getDuration() { return duration; } public String getRecurrence() { return recurrence; } public boolean getEnabled() { return enabled; } /** * @param enabled the enabled to set */ public void setEnabled(boolean enabled) { this.enabled = enabled; } public String getRoomUUID() { return roomUUID; } public String getProgramURI() { return programURI; } public String getProgramMetaData() { return programMetaData; } public String getPlayMode() { return playMode; } public int getVolume() { return volume; } public boolean getIncludeLinkedZones() { return includeLinkedZones; } private final int ID; private DateTime startTime; private final Period duration; private final String recurrence; private boolean enabled; private final String roomUUID; private final String programURI; private final String programMetaData; private final String playMode; private final int volume; private final boolean includeLinkedZones; public SonosAlarm(int ID, DateTime startTime, Period duration, String recurrence, boolean enabled, String roomUUID, String programURI, String programMetaData, String playMode, int volume, boolean includeLinkedZones) { this.ID = ID; this.startTime = startTime; this.duration = duration; this.recurrence = recurrence; this.enabled = enabled; this.roomUUID = roomUUID; this.programURI = programURI; this.programMetaData = programMetaData; this.playMode = playMode; this.volume = volume; this.includeLinkedZones = includeLinkedZones; } @Override public String toString() { return "SonosAlarm [ID=" + ID + ", start=" + startTime + ", duration=" + duration + ", enabled=" + enabled + ", UUID=" + roomUUID + "]"; } }