public class VEvent extends CalendarComponent
4.6.1 Event Component Component Name: "VEVENT" Purpose: Provide a grouping of component properties that describe an event. Format Definition: A "VEVENT" calendar component is defined by the following notation: eventc = "BEGIN" ":" "VEVENT" CRLF eventprop *alarmc "END" ":" "VEVENT" CRLF eventprop = *( ; the following are optional, ; but MUST NOT occur more than once class / created / description / dtstart / geo / last-mod / location / organizer / priority / dtstamp / seq / status / summary / transp / uid / url / recurid / ; either 'dtend' or 'duration' may appear in ; a 'eventprop', but 'dtend' and 'duration' ; MUST NOT occur in the same 'eventprop' dtend / duration / ; the following are optional, ; and MAY occur more than once attach / attendee / categories / comment / contact / exdate / exrule / rstatus / related / resources / rdate / rrule / x-prop )Example 1 - Creating a new all-day event:
java.util.Calendar cal = java.util.Calendar.getInstance();
cal.set(java.util.Calendar.MONTH, java.util.Calendar.DECEMBER);
cal.set(java.util.Calendar.DAY_OF_MONTH, 25);
VEvent christmas = new VEvent(cal.getTime(), "Christmas Day");
// initialise as an all-day event..
christmas.getProperties().getProperty(Property.DTSTART).getParameters().add(
Value.DATE);
// add timezone information..
VTimeZone tz = VTimeZone.getDefault();
TzId tzParam = new TzId(tz.getProperties().getProperty(Property.TZID)
.getValue());
christmas.getProperties().getProperty(Property.DTSTART).getParameters().add(
tzParam);
Example 2 - Creating an event of one (1) hour duration:
java.util.Calendar cal = java.util.Calendar.getInstance();
// tomorrow..
cal.add(java.util.Calendar.DAY_OF_MONTH, 1);
cal.set(java.util.Calendar.HOUR_OF_DAY, 9);
cal.set(java.util.Calendar.MINUTE, 30);
VEvent meeting = new VEvent(cal.getTime(), 1000 * 60 * 60, "Progress Meeting");
// add timezone information..
VTimeZone tz = VTimeZone.getDefault();
TzId tzParam = new TzId(tz.getProperties().getProperty(Property.TZID)
.getValue());
meeting.getProperties().getProperty(Property.DTSTART).getParameters().add(
tzParam);
Example 3 - Retrieve a list of periods representing a recurring event in a specified range:
Calendar weekday9AM = Calendar.getInstance();
weekday9AM.set(2005, Calendar.MARCH, 7, 9, 0, 0);
weekday9AM.set(Calendar.MILLISECOND, 0);
Calendar weekday5PM = Calendar.getInstance();
weekday5PM.set(2005, Calendar.MARCH, 7, 17, 0, 0);
weekday5PM.set(Calendar.MILLISECOND, 0);
// Do the recurrence until December 31st.
Calendar untilCal = Calendar.getInstance();
untilCal.set(2005, Calendar.DECEMBER, 31);
untilCal.set(Calendar.MILLISECOND, 0);
// 9:00AM to 5:00PM Rule
Recur recur = new Recur(Recur.WEEKLY, untilCal.getTime());
recur.getDayList().add(WeekDay.MO);
recur.getDayList().add(WeekDay.TU);
recur.getDayList().add(WeekDay.WE);
recur.getDayList().add(WeekDay.TH);
recur.getDayList().add(WeekDay.FR);
recur.setInterval(3);
recur.setWeekStartDay(WeekDay.MO.getDay());
RRule rrule = new RRule(recur);
Summary summary = new Summary("TEST EVENTS THAT HAPPEN 9-5 MON-FRI");
weekdayNineToFiveEvents = new VEvent();
weekdayNineToFiveEvents.getProperties().add(rrule);
weekdayNineToFiveEvents.getProperties().add(summary);
weekdayNineToFiveEvents.getProperties().add(new DtStart(weekday9AM.getTime()));
weekdayNineToFiveEvents.getProperties().add(new DtEnd(weekday5PM.getTime()));
// Test Start 04/01/2005, End One month later.
// Query Calendar Start and End Dates.
Calendar queryStartDate = Calendar.getInstance();
queryStartDate.set(2005, Calendar.APRIL, 1, 14, 47, 0);
queryStartDate.set(Calendar.MILLISECOND, 0);
Calendar queryEndDate = Calendar.getInstance();
queryEndDate.set(2005, Calendar.MAY, 1, 11, 15, 0);
queryEndDate.set(Calendar.MILLISECOND, 0);
// This range is monday to friday every three weeks, starting from
// March 7th 2005, which means for our query dates we need
// April 18th through to the 22nd.
PeriodList periods = weekdayNineToFiveEvents.getPeriods(queryStartDate
.getTime(), queryEndDate.getTime());
Modifier and Type | Class and Description |
---|---|
static class |
VEvent.Factory |
EMPTY_VALIDATOR
Constructor and Description |
---|
VEvent()
Default constructor.
|
VEvent(boolean initialise) |
VEvent(Date start,
Date end,
java.lang.String summary)
Constructs a new VEVENT instance starting and ending at the specified times with the specified summary.
|
VEvent(Date start,
java.lang.String summary)
Constructs a new VEVENT instance starting at the specified time with the specified summary.
|
VEvent(Date start,
java.time.temporal.TemporalAmount duration,
java.lang.String summary)
Constructs a new VEVENT instance starting at the specified times, for the specified duration, with the specified
summary.
|
VEvent(PropertyList properties)
Constructor.
|
VEvent(PropertyList properties,
ComponentList<VAlarm> alarms)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
Component |
copy()
Overrides default copy method to add support for copying alarm sub-components.
|
boolean |
equals(java.lang.Object arg0) |
ComponentList<VAlarm> |
getAlarms()
Returns the list of alarms for this event.
|
Clazz |
getClassification() |
PeriodList |
getConsumedTime(Date rangeStart,
Date rangeEnd)
Returns a normalised list of periods representing the consumed time for this event.
|
PeriodList |
getConsumedTime(Date rangeStart,
Date rangeEnd,
boolean normalise)
Returns a list of periods representing the consumed time for this event in the specified range.
|
Created |
getCreated() |
DtStamp |
getDateStamp() |
Description |
getDescription() |
Duration |
getDuration() |
DtEnd |
getEndDate()
Returns the end date of this event.
|
DtEnd |
getEndDate(boolean deriveFromDuration)
Convenience method to pull the DTEND out of the property list.
|
Geo |
getGeographicPos() |
LastModified |
getLastModified() |
Location |
getLocation() |
VEvent |
getOccurrence(Date date)
Returns a single occurrence of a recurring event.
|
Organizer |
getOrganizer() |
Priority |
getPriority() |
RecurrenceId |
getRecurrenceId() |
Sequence |
getSequence() |
DtStart |
getStartDate()
Convenience method to pull the DTSTART out of the property list.
|
Status |
getStatus() |
Summary |
getSummary() |
Transp |
getTransparency() |
Uid |
getUid()
Returns the UID property of this component if available.
|
Url |
getUrl() |
protected Validator |
getValidator(Method method) |
int |
hashCode() |
java.lang.String |
toString() |
void |
validate(boolean recurse)
Perform validation on a component.
|
validate, validateAdd, validateCancel, validateCounter, validateDeclineCounter, validatePublish, validateRefresh, validateReply, validateRequest
calculateRecurrenceSet, getName, getProperties, getProperties, getProperty, getRequiredProperty, validate, validateProperties
public VEvent()
public VEvent(boolean initialise)
public VEvent(PropertyList properties)
properties
- a list of propertiespublic VEvent(PropertyList properties, ComponentList<VAlarm> alarms)
properties
- a list of propertiesalarms
- a list of alarmspublic VEvent(Date start, java.lang.String summary)
start
- the start date of the new eventsummary
- the event summarypublic VEvent(Date start, Date end, java.lang.String summary)
start
- the start date of the new eventend
- the end date of the new eventsummary
- the event summarypublic VEvent(Date start, java.time.temporal.TemporalAmount duration, java.lang.String summary)
start
- the start date of the new eventduration
- the duration of the new eventsummary
- the event summarypublic final ComponentList<VAlarm> getAlarms()
public final void validate(boolean recurse) throws ValidationException
validate
in class Component
recurse
- indicates whether to validate the component's propertiesValidationException
- where the component is not in a valid stateprotected Validator getValidator(Method method)
getValidator
in class CalendarComponent
method
- a method to validate onpublic final PeriodList getConsumedTime(Date rangeStart, Date rangeEnd)
rangeStart
- the start of a rangerangeEnd
- the end of a rangegetConsumedTime(Date, Date, boolean)
public final PeriodList getConsumedTime(Date rangeStart, Date rangeEnd, boolean normalise)
rangeStart
- the start of the range to check for consumed timerangeEnd
- the end of the range to check for consumed timenormalise
- indicate whether the returned list of periods should be normalisedpublic final VEvent getOccurrence(Date date) throws java.io.IOException, java.net.URISyntaxException, java.text.ParseException
date
- a date on which the occurence should occurjava.io.IOException
- where an error occurs reading datajava.net.URISyntaxException
- where an invalid URI is encounteredjava.text.ParseException
- where an error occurs parsing datapublic final Clazz getClassification()
public final Created getCreated()
public final Description getDescription()
public final DtStart getStartDate()
public final Geo getGeographicPos()
public final LastModified getLastModified()
public final Location getLocation()
public final Organizer getOrganizer()
public final Priority getPriority()
public final DtStamp getDateStamp()
public final Sequence getSequence()
public final Status getStatus()
public final Summary getSummary()
public final Transp getTransparency()
public final Url getUrl()
public final RecurrenceId getRecurrenceId()
public final DtEnd getEndDate()
public final DtEnd getEndDate(boolean deriveFromDuration)
deriveFromDuration
- specifies whether to derive an end date from the event duration where an end date is
not foundpublic final Duration getDuration()
public final Uid getUid()
public Component copy() throws java.text.ParseException, java.io.IOException, java.net.URISyntaxException
copy
in class Component
java.text.ParseException
- where values in the instance cannot be parsedjava.io.IOException
- where values in the instance cannot be readjava.net.URISyntaxException
- where an invalid URI value is encountered in the instanceComponent.copy()