public abstract class CalendarActivity extends Object
Modifier and Type | Class and Description |
---|---|
static class |
CalendarActivity.Recurring
Recurring information of calendar activity.
|
static class |
CalendarActivity.Reminder
Reminder information of calendar activity.
|
static class |
CalendarActivity.TimeType
Whether or not time (hours, minutes, etc) is relevant.
|
Constructor and Description |
---|
CalendarActivity() |
Modifier and Type | Method and Description |
---|---|
Map<String,Object> |
getCustomAttributes()
Gets the custom attributes of the activity.
|
long |
getDuration(Date date, TimeZone tz)
Gets the length of the duration activity in milli-seconds for the given date.
|
abstract Date |
getEndDate(TimeZone tz)
Gets the end date of the activity.
|
abstract String |
getId()
Gets the id of the actiivty, this should be unique per providerId.
|
String |
getLocation()
Gets the location of activity.
|
CalendarProvider |
getProvider()
Gets the provider, which represents the owner or source of the activity.
|
CalendarActivity.Recurring |
getRecurring()
Gets the Recurring information for the activity.
|
CalendarActivity.Reminder |
getReminder()
Gets the Reminder information for the activity.
|
abstract Date |
getStartDate(TimeZone tz)
Gets the start date of the activity.
|
Set<String> |
getTags()
Gets the tags associated with the activity.
|
CalendarActivity.TimeType |
getTimeType()
Gets the TimeType information for an activity.
|
String |
getTitle()
Gets the title of the activity.
|
boolean |
isReadOnly()
Whether the activity is read only.
|
void |
setDuration(Date date, TimeZone tz, long millis)
Sets the length of the duration activity in milli-seconds for the activity.
|
void |
setEndDate(Date endDate, TimeZone tz)
Sets the end date of the activity.
|
void |
setLocation(String location)
Sets the location of the activity.
|
void |
setRecurring(CalendarActivity.Recurring recurring)
Sets the Recurring information of the activity.
|
void |
setReminder(CalendarActivity.Reminder reminder)
Sets the Reminder information of the activity.
|
void |
setStartDate(Date startDate, TimeZone tz)
Sets the start date of the activity.
|
void |
setTags(Set<String> tags)
Sets the tags of the activity.
|
void |
setTimeType(CalendarActivity.TimeType timeType)
Sets the TimeType information of the activity.
|
void |
setTitle(String title)
Sets the title of the activity.
|
public abstract String getId()
public CalendarProvider getProvider()
public abstract Date getStartDate(TimeZone tz)
Allday and duration activities (TimeType = ALLDAY or DURATION) for May 3 2008 are required to return May 3 2008 12:00am for the start date.
Although java.util.Dates are mutable, the date returned should be stable per request. Also, the date returned is a new Date instance, changes to it will not change the underlying data.
public abstract Date getEndDate(TimeZone tz)
The end date is exclusive. Meaning if there are 2 activities, the first from 9-10am and the second from 10-11am, the start time of activity 2 does not conflict with the end time of activity 1, because the end time of activity 1 is not considered part of the activity. This also applies to all-day activities that last the full day, for example if an activity lasts all day on May 3 2008, then the end date should be May 4 2008 12:00am.
An all day activity (TimeType = ALLDAY) is required to return midnight the following day for the end date. For example an all day activity for May 3 2008 is required to return May 4 2008 12:00 am for the end date. Similarly a two day all day activity for May 3 and May 4 2008 would return May 5 2008 12:00 am. Note that the seconds and millisecond value should be zeroed out as well. The same rule applies to duration activities also (TimeType = DURATION)
Although java.util.Dates are mutable, the date returned should be stable per request. Also, the date returned is a new Date instance, changes to it will not change the underlying data.
public long getDuration(Date date, TimeZone tz)
date
- Date for which the duration is to be returnedtz
- the timezone for the datepublic Set<String> getTags()
Tags may be used to categorize an activity in some way, for example they may be used to style an activity.
public String getTitle()
public String getLocation()
public CalendarActivity.Reminder getReminder()
public CalendarActivity.Recurring getRecurring()
The Calendar model needs to generate separate CalendarActivity objects representing each recurring calendar activity.
The information returned from this method (getRecurring) is information the calendar component may use to do something like render an icon.
public CalendarActivity.TimeType getTimeType()
This information is used to know whether or not time (hours, minutes, etc) is relevant.
public Map<String,Object> getCustomAttributes()
The attributes with getters on CalendarActivity are those that are needed by a calendar component to render activities. However the activity doubtless has additional attributes that a calendar component is not aware of. For example there may be a list of attendees or a description. CustomAttributes allows access to custom attributes through the CalendarActivity api itself, without having to cast or refer to a subclass.
Application developers should use the custom attributes map for custom attributes rather than subclassing calendarActivity. In this way if additional attributes are added to calendarActivity it will not conflict with subclass methods.
Built in attributes like title, location, etc, are not in the custom attribute map.
public boolean isReadOnly()
The default value is true.
public void setStartDate(Date startDate, TimeZone tz)
Because java.util.Dates are mutable a new date instance will be stored, thus changes to the date instance passed in will not change the underlying data.
startDate
- the new start datetz
- the timezone for the new start dateUnsupportedOperationException
- if not implemented by the activity model.public void setEndDate(Date endDate, TimeZone tz)
Because java.util.Dates are mutable a new date instance will be stored, thus changes to the date instance passed in will not change the underlying data.
endDate
-tz
- the timezone for the new end dateUnsupportedOperationException
- if not overriden.public void setDuration(Date date, TimeZone tz, long millis)
date
- Date for which the duration is to be appliedtz
- the timezone for the datemillis
- duration in millisUnsupportedOperationException
- if not overriden.public void setTags(Set<String> tags)
tags
-UnsupportedOperationException
- if not overriden.public void setTitle(String title)
title
-UnsupportedOperationException
- if not overriden.public void setLocation(String location)
location
-UnsupportedOperationException
- if not overriden.public void setReminder(CalendarActivity.Reminder reminder)
reminder
-UnsupportedOperationException
- if not overriden.public void setRecurring(CalendarActivity.Recurring recurring)
recurring
-UnsupportedOperationException
- if not overriden.public void setTimeType(CalendarActivity.TimeType timeType)
timeType
-UnsupportedOperationException
- if not overriden.