/* Copyright (c) 2008 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.google.gdata.data.calendar; import com.google.gdata.data.BaseEntry; import com.google.gdata.data.ExtensionProfile; import com.google.gdata.data.extensions.Where; import com.google.gdata.data.extensions.When; import java.util.List; /** * This represents a single calendar in a list of calendars. Use * CalendarEventEntry to represent a single event from a calendar. * * */ public class CalendarEntry extends BaseEntry<CalendarEntry> { /** * Constructs a new CalendarEntry instance */ public CalendarEntry() { super(); } /** * Constructs a new CalendarEntry instance by doing a shallow copy of data * from an existing BaseEntry instance. */ public CalendarEntry(BaseEntry sourceEntry) { super(sourceEntry); } /** * Initializes an ExtensionProfile based upon the extensions expected * by an EventEntry. */ public void declareExtensions(ExtensionProfile extProfile) { extProfile.declare(CalendarEntry.class, AccessLevelProperty.getDefaultDescription()); extProfile.declare(CalendarEntry.class, ColorProperty.getDefaultDescription()); extProfile.declare(CalendarEntry.class, HiddenProperty.getDefaultDescription()); extProfile.declare(CalendarEntry.class, OverrideNameProperty.getDefaultDescription()); extProfile.declare(CalendarEntry.class, SelectedProperty.getDefaultDescription()); extProfile.declare(CalendarEntry.class, TimeZoneProperty.getDefaultDescription()); extProfile.declare(CalendarEntry.class, TimesCleanedProperty.getDefaultDescription(false, false)); extProfile.declare(CalendarEntry.class, When.getDefaultDescription()); extProfile.declare(CalendarEntry.class, Where.getDefaultDescription()); } /** * Returns the list of calendar locations */ public List<Where> getLocations() { return getRepeatingExtension(Where.class); } /** * Adds a new calendar location. */ public void addLocation(Where location) { getLocations().add(location); } /** * Returns the calendar accesslevel. */ public AccessLevelProperty getAccessLevel() { return getExtension(AccessLevelProperty.class); } /** * Sets the calendar accesslevel. */ public void setAccessLevel(AccessLevelProperty accesslevel) { setExtension(accesslevel); } /** * Returns the calendar color. */ public ColorProperty getColor() { return getExtension(ColorProperty.class); } /** * Sets the calendar color. */ public void setColor(ColorProperty color) { setExtension(color); } /** * Returns the calendar hidden property. */ public HiddenProperty getHidden() { return getExtension(HiddenProperty.class); } /** * Sets the calendar hidden property. */ public void setHidden(HiddenProperty hidden) { setExtension(hidden); } /** * Returns the override name property. */ public OverrideNameProperty getOverrideName() { return getExtension(OverrideNameProperty.class); } /** * Sets the override name property. */ public void setOverrideName(OverrideNameProperty name) { setExtension(name); } /** * Returns the calendar selected property. */ public SelectedProperty getSelected() { return getExtension(SelectedProperty.class); } /** * Sets the calendar selected property. */ public void setSelected(SelectedProperty selected) { setExtension(selected); } /** * Returns the calendar timeZone property. */ public TimeZoneProperty getTimeZone() { return getExtension(TimeZoneProperty.class); } /** * Sets the calendar timeZone property. */ public void setTimeZone(TimeZoneProperty timeZone) { setExtension(timeZone); } /** * Returns the calendar timesCleaned property. */ public TimesCleanedProperty getTimesCleaned() { return getExtension(TimesCleanedProperty.class); } /** * Sets the calendar timesCleaned property. */ public void setTimesCleaned(TimesCleanedProperty timesCleaned) { setExtension(timesCleaned); } }