Class VEvent
- java.lang.Object
-
- net.fortuna.ical4j.model.Component
-
- net.fortuna.ical4j.model.component.CalendarComponent
-
- net.fortuna.ical4j.model.component.VEvent
-
- All Implemented Interfaces:
Serializable,ComponentContainer<Component>,PropertyContainer
public class VEvent extends CalendarComponent implements ComponentContainer<Component>
$Id$ [Apr 5, 2004] Defines an iCalendar VEVENT component.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:
Example 2 - Creating an event of one (1) hour duration: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 3 - Retrieve a list of periods representing a recurring event in a specified range: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);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());- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classVEvent.Factory
-
Field Summary
-
Fields inherited from class net.fortuna.ical4j.model.component.CalendarComponent
EMPTY_VALIDATOR
-
Fields inherited from class net.fortuna.ical4j.model.Component
AVAILABLE, BEGIN, components, END, EXPERIMENTAL_PREFIX, PARTICIPANT, VALARM, VAVAILABILITY, VEVENT, VFREEBUSY, VJOURNAL, VLOCATION, VRESOURCE, VTIMEZONE, VTODO, VVENUE
-
-
Constructor Summary
Constructors Constructor Description VEvent()Default constructor.VEvent(boolean initialise)VEvent(Date start, String summary)Constructs a new VEVENT instance starting at the specified time with the specified summary.VEvent(Date start, TemporalAmount duration, String summary)Constructs a new VEVENT instance starting at the specified times, for the specified duration, with the specified summary.VEvent(Date start, Date end, String summary)Constructs a new VEVENT instance starting and ending at the specified times with the specified summary.VEvent(PropertyList properties)Constructor.VEvent(PropertyList properties, ComponentList<VAlarm> alarms)Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanequals(Object arg0)ComponentList<VAlarm>getAlarms()Returns the list of alarms for this event.ClazzgetClassification()ComponentList<Component>getComponents()PeriodListgetConsumedTime(Date rangeStart, Date rangeEnd)Returns a normalised list of periods representing the consumed time for this event.PeriodListgetConsumedTime(Date rangeStart, Date rangeEnd, boolean normalise)Returns a list of periods representing the consumed time for this event in the specified range.CreatedgetCreated()DtStampgetDateStamp()DescriptiongetDescription()DurationgetDuration()DtEndgetEndDate()Returns the end date of this event.DtEndgetEndDate(boolean deriveFromDuration)Convenience method to pull the DTEND out of the property list.GeogetGeographicPos()LastModifiedgetLastModified()LocationgetLocation()VEventgetOccurrence(Date date)Returns a single occurrence of a recurring event.OrganizergetOrganizer()PrioritygetPriority()RecurrenceIdgetRecurrenceId()SequencegetSequence()DtStartgetStartDate()Convenience method to pull the DTSTART out of the property list.StatusgetStatus()SummarygetSummary()TranspgetTransparency()UidgetUid()Returns the UID property of this component if available.UrlgetUrl()protected ValidatorgetValidator(Method method)inthashCode()voidvalidate(boolean recurse)Perform validation on a component.-
Methods inherited from class net.fortuna.ical4j.model.component.CalendarComponent
validate, validateAdd, validateCancel, validateCounter, validateDeclineCounter, validatePublish, validateRefresh, validateReply, validateRequest
-
Methods inherited from class net.fortuna.ical4j.model.Component
calculateRecurrenceSet, copy, getName, getProperties, getRequiredProperty, toString, validate, validateProperties
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface net.fortuna.ical4j.model.ComponentContainer
getComponent, getComponents
-
Methods inherited from interface net.fortuna.ical4j.model.PropertyContainer
getProperties, getProperty
-
-
-
-
Constructor Detail
-
VEvent
public VEvent()
Default constructor.
-
VEvent
public VEvent(boolean initialise)
-
VEvent
public VEvent(PropertyList properties)
Constructor.- Parameters:
properties- a list of properties
-
VEvent
public VEvent(PropertyList properties, ComponentList<VAlarm> alarms)
Constructor.- Parameters:
properties- a list of propertiesalarms- a list of alarms
-
VEvent
public VEvent(Date start, String summary)
Constructs a new VEVENT instance starting at the specified time with the specified summary.- Parameters:
start- the start date of the new eventsummary- the event summary
-
VEvent
public VEvent(Date start, Date end, String summary)
Constructs a new VEVENT instance starting and ending at the specified times with the specified summary.- Parameters:
start- the start date of the new eventend- the end date of the new eventsummary- the event summary
-
VEvent
public VEvent(Date start, TemporalAmount duration, String summary)
Constructs a new VEVENT instance starting at the specified times, for the specified duration, with the specified summary.- Parameters:
start- the start date of the new eventduration- the duration of the new eventsummary- the event summary
-
-
Method Detail
-
getAlarms
public final ComponentList<VAlarm> getAlarms()
Returns the list of alarms for this event.- Returns:
- a component list
-
getComponents
public ComponentList<Component> getComponents()
- Specified by:
getComponentsin interfaceComponentContainer<Component>
-
validate
public final void validate(boolean recurse) throws ValidationExceptionPerform validation on a component.- Specified by:
validatein classComponent- Parameters:
recurse- indicates whether to validate the component's properties- Throws:
ValidationException- where the component is not in a valid state
-
getValidator
protected Validator getValidator(Method method)
- Specified by:
getValidatorin classCalendarComponent- Parameters:
method- a method to validate on- Returns:
- a validator for the specified method or null if the method is not supported
-
getConsumedTime
public final PeriodList getConsumedTime(Date rangeStart, Date rangeEnd)
Returns a normalised list of periods representing the consumed time for this event.- Parameters:
rangeStart- the start of a rangerangeEnd- the end of a range- Returns:
- a normalised list of periods representing consumed time for this event
- See Also:
getConsumedTime(Date, Date, boolean)
-
getConsumedTime
public final PeriodList getConsumedTime(Date rangeStart, Date rangeEnd, boolean normalise)
Returns a list of periods representing the consumed time for this event in the specified range. Note that the returned list may contain a single period for non-recurring components or multiple periods for recurring components. If no time is consumed by this event an empty list is returned.- Parameters:
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 normalised- Returns:
- a list of periods representing consumed time for this event
-
getOccurrence
public final VEvent getOccurrence(Date date) throws IOException, URISyntaxException, ParseException
Returns a single occurrence of a recurring event.- Parameters:
date- a date on which the occurence should occur- Returns:
- a single non-recurring event instance for the specified date, or null if the event doesn't occur on the specified date
- Throws:
IOException- where an error occurs reading dataURISyntaxException- where an invalid URI is encounteredParseException- where an error occurs parsing data
-
getClassification
public final Clazz getClassification()
- Returns:
- the optional access classification property for an event
-
getCreated
public final Created getCreated()
- Returns:
- the optional creation-time property for an event
-
getDescription
public final Description getDescription()
- Returns:
- the optional description property for an event
-
getStartDate
public final DtStart getStartDate()
Convenience method to pull the DTSTART out of the property list.- Returns:
- The DtStart object representation of the start Date
-
getGeographicPos
public final Geo getGeographicPos()
- Returns:
- the optional geographic position property for an event
-
getLastModified
public final LastModified getLastModified()
- Returns:
- the optional last-modified property for an event
-
getLocation
public final Location getLocation()
- Returns:
- the optional location property for an event
-
getOrganizer
public final Organizer getOrganizer()
- Returns:
- the optional organizer property for an event
-
getPriority
public final Priority getPriority()
- Returns:
- the optional priority property for an event
-
getDateStamp
public final DtStamp getDateStamp()
- Returns:
- the optional date-stamp property
-
getSequence
public final Sequence getSequence()
- Returns:
- the optional sequence number property for an event
-
getStatus
public final Status getStatus()
- Returns:
- the optional status property for an event
-
getSummary
public final Summary getSummary()
- Returns:
- the optional summary property for an event
-
getTransparency
public final Transp getTransparency()
- Returns:
- the optional time transparency property for an event
-
getUrl
public final Url getUrl()
- Returns:
- the optional URL property for an event
-
getRecurrenceId
public final RecurrenceId getRecurrenceId()
- Returns:
- the optional recurrence identifier property for an event
-
getEndDate
public final DtEnd getEndDate()
Returns the end date of this event. Where an end date is not available it will be derived from the event duration.- Returns:
- a DtEnd instance, or null if one cannot be derived
-
getEndDate
public final DtEnd getEndDate(boolean deriveFromDuration)
Convenience method to pull the DTEND out of the property list. If DTEND was not specified, use the DTSTART + DURATION to calculate it.- Parameters:
deriveFromDuration- specifies whether to derive an end date from the event duration where an end date is not found- Returns:
- The end for this VEVENT.
-
getDuration
public final Duration getDuration()
- Returns:
- the optional Duration property
-
getUid
public final Uid getUid()
Returns the UID property of this component if available.- Returns:
- a Uid instance, or null if no UID property exists
-
-