diff options
Diffstat (limited to 'src/com/google/wireless/gdata/calendar/data/EventEntry.java')
-rw-r--r-- | src/com/google/wireless/gdata/calendar/data/EventEntry.java | 315 |
1 files changed, 315 insertions, 0 deletions
diff --git a/src/com/google/wireless/gdata/calendar/data/EventEntry.java b/src/com/google/wireless/gdata/calendar/data/EventEntry.java new file mode 100644 index 0000000..5f2f271 --- /dev/null +++ b/src/com/google/wireless/gdata/calendar/data/EventEntry.java @@ -0,0 +1,315 @@ +// Copyright 2007 The Android Open Source Project + +package com.google.wireless.gdata.calendar.data; + +import com.google.wireless.gdata.data.Entry; + +import java.util.Hashtable; +import java.util.Vector; +import java.util.Enumeration; + +/** + * Entry containing information about an event in a calendar. + */ +public class EventEntry extends Entry { + + // TODO: pack all of these enums into an int + + /** + * Status constant indicating that a user's attendance at an event is + * tentative. + */ + public static final byte STATUS_TENTATIVE = 0; + + /** + * Status constant indicating that a user's attendance at an event is + * confirmed. + */ + public static final byte STATUS_CONFIRMED = 1; + + /** + * Status constant indicating that an event has been cancelled. + */ + public static final byte STATUS_CANCELED = 2; + + /** + * Visibility constant indicating that an event uses the user's default + * visibility. + */ + public static final byte VISIBILITY_DEFAULT = 0; + + /** + * Visibility constant indicating that an event has been marked + * confidential. + */ + public static final byte VISIBILITY_CONFIDENTIAL = 1; + + /** + * Visibility constant indicating that an event has been marked private. + */ + public static final byte VISIBILITY_PRIVATE = 2; + + /** + * Visibility constant indicating that an event has been marked public. + */ + public static final byte VISIBILITY_PUBLIC = 3; + + /** + * Transparency constant indicating that an event has been marked opaque. + */ + public static final byte TRANSPARENCY_OPAQUE = 0; + + /** + * Transparency constant indicating that an event has been marked + * transparent. + */ + public static final byte TRANSPARENCY_TRANSPARENT = 1; + + private byte status = STATUS_TENTATIVE; + private String recurrence = null; + private byte visibility = VISIBILITY_DEFAULT; + private byte transparency = TRANSPARENCY_OPAQUE; + private Vector attendees = new Vector(); + private Vector whens = new Vector(); + private Vector reminders = null; + private String originalEventId = null; + private String originalEventStartTime = null; + private String where = null; + private String commentsUri = null; + private Hashtable extendedProperties = null; + + /** + * Creates a new empty event entry. + */ + public EventEntry() { + } + + /* + * (non-Javadoc) + * @see com.google.wireless.gdata.data.Entry#clear() + */ + public void clear() { + super.clear(); + status = STATUS_TENTATIVE; + recurrence = null; + visibility = VISIBILITY_DEFAULT; + transparency = TRANSPARENCY_OPAQUE; + attendees.removeAllElements(); + whens.removeAllElements(); + reminders = null; + originalEventId = null; + originalEventStartTime = null; + where = null; + commentsUri = null; + extendedProperties = null; + } + + /** + * @return the recurrence + */ + public String getRecurrence() { + return recurrence; + } + + /** + * @param recurrence the recurrence to set + */ + public void setRecurrence(String recurrence) { + this.recurrence = recurrence; + } + + /** + * @return the status + */ + public byte getStatus() { + return status; + } + + /** + * @param status the status to set + */ + public void setStatus(byte status) { + this.status = status; + } + + /** + * @return the transparency + */ + public byte getTransparency() { + return transparency; + } + + /** + * @param transparency the transparency to set + */ + public void setTransparency(byte transparency) { + this.transparency = transparency; + } + + /** + * @return the visibility + */ + public byte getVisibility() { + return visibility; + } + + /** + * @param visibility the visibility to set + */ + public void setVisibility(byte visibility) { + this.visibility = visibility; + } + + public void clearAttendees() { + attendees.clear(); + } + + public void addAttendee(Who attendee) { + attendees.add(attendee); + } + + public Vector getAttendees() { + return attendees; + } + + public void clearWhens() { + whens.clear(); + } + + public void addWhen(When when) { + whens.add(when); + } + + public Vector getWhens() { + return whens; + } + + public When getFirstWhen() { + if (whens.isEmpty()) { + return null; + } + return (When) whens.elementAt(0); + } + + public Vector getReminders() { + return reminders; + } + + public void addReminder(Reminder reminder) { + if (reminders == null) { + reminders = new Vector(); + } + reminders.add(reminder); + } + + public void clearReminders() { + reminders = null; + } + + public String getOriginalEventId() { + return originalEventId; + } + + public void setOriginalEventId(String originalEventId) { + this.originalEventId = originalEventId; + } + + public String getOriginalEventStartTime() { + return originalEventStartTime; + } + + public void setOriginalEventStartTime(String originalEventStartTime) { + this.originalEventStartTime = originalEventStartTime; + } + + /** + * @return the where + */ + public String getWhere() { + return where; + } + + /** + * @param where the where to set + */ + public void setWhere(String where) { + this.where = where; + } + + public Hashtable getExtendedProperties() { + return extendedProperties; + } + + public String getExtendedProperty(String name) { + if (extendedProperties == null) { + return null; + } + String value = null; + if (extendedProperties.containsKey(name)) { + value = (String) extendedProperties.get(name); + } + return value; + } + + public void addExtendedProperty(String name, String value) { + if (extendedProperties == null) { + extendedProperties = new Hashtable(); + } + extendedProperties.put(name, value); + } + + public void clearExtendedProperties() { + extendedProperties = null; + } + + public String getCommentsUri() { + return commentsUri; + } + + public void setCommentsUri(String commentsUri) { + this.commentsUri = commentsUri; + } + + public void toString(StringBuffer sb) { + super.toString(sb); + sb.append("STATUS: " + status + "\n"); + appendIfNotNull(sb, "RECURRENCE", recurrence); + sb.append("VISIBILITY: " + visibility + "\n"); + sb.append("TRANSPARENCY: " + transparency + "\n"); + + appendIfNotNull(sb, "ORIGINAL_EVENT_ID", originalEventId); + appendIfNotNull(sb, "ORIGINAL_START_TIME", originalEventStartTime); + + Enumeration whos = this.attendees.elements(); + while (whos.hasMoreElements()) { + Who who = (Who) whos.nextElement(); + who.toString(sb); + } + + Enumeration times = this.whens.elements(); + while (times.hasMoreElements()) { + When when = (When) times.nextElement(); + when.toString(sb); + } + if (reminders != null) { + Enumeration alarms = reminders.elements(); + while (alarms.hasMoreElements()) { + Reminder reminder = (Reminder) alarms.nextElement(); + reminder.toString(sb); + } + } + appendIfNotNull(sb, "WHERE", where); + appendIfNotNull(sb, "COMMENTS", commentsUri); + if (extendedProperties != null) { + Enumeration entryNames = extendedProperties.keys(); + while (entryNames.hasMoreElements()) { + String name = (String) entryNames.nextElement(); + String value = (String) extendedProperties.get(name); + sb.append(name); + sb.append(':'); + sb.append(value); + sb.append('\n'); + } + } + } +} |