summaryrefslogtreecommitdiff
path: root/src/com/google/wireless/gdata/calendar/data/EventEntry.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/google/wireless/gdata/calendar/data/EventEntry.java')
-rw-r--r--src/com/google/wireless/gdata/calendar/data/EventEntry.java315
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');
+ }
+ }
+ }
+}