Class VEvent
- java.lang.Object
-
- net.fortuna.ical4j.model.Content
-
- net.fortuna.ical4j.model.Component
-
- net.fortuna.ical4j.model.component.CalendarComponent
-
- net.fortuna.ical4j.model.component.VEvent
-
- All Implemented Interfaces:
Serializable
public class VEvent extends CalendarComponent
$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.add(rrule); weekdayNineToFiveEvents.add(summary); weekdayNineToFiveEvents.add(new DtStart(weekday9AM.getTime())); weekdayNineToFiveEvents.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 class
VEvent.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, END, EXPERIMENTAL_PREFIX, properties, VALARM, VAVAILABILITY, VEVENT, VFREEBUSY, VJOURNAL, VTIMEZONE, VTODO, VVENUE
-
-
Constructor Summary
Constructors Constructor Description VEvent()
Default constructor.VEvent(boolean initialise)
VEvent(Temporal start, String summary)
Constructs a new VEVENT instance starting at the specified time with the specified summary.VEvent(Temporal start, TemporalAmount duration, String summary)
Constructs a new VEVENT instance starting at the specified times, for the specified duration, with the specified summary.VEvent(Temporal start, Temporal 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 Deprecated Methods Modifier and Type Method Description void
add(VAlarm alarm)
Add a new alarm to the event.VEvent
copy()
Overrides default copy method to add support for copying alarm sub-components.boolean
equals(Object arg0)
ComponentList<VAlarm>
getAlarms()
Returns the list of alarms for this event.Optional<Clazz>
getClassification()
Deprecated.<T extends Temporal>
List<Period<T>>getConsumedTime(Period<T> range)
Returns a normalised list of periods representing the consumed time for this event.<T extends Temporal>
List<Period<T>>getConsumedTime(Period<T> range, boolean normalise)
Returns a list of periods representing the consumed time for this event in the specified range.Optional<Created>
getCreated()
Deprecated.Optional<DtStamp>
getDateStamp()
Deprecated.Optional<Description>
getDescription()
Deprecated.Optional<Duration>
getDuration()
Deprecated.Optional<DtEnd<?>>
getEndDate()
Returns the end date of this event.Optional<DtEnd<?>>
getEndDate(boolean deriveFromDuration)
Convenience method to pull the DTEND out of the property list.Optional<Geo>
getGeographicPos()
Deprecated.Optional<LastModified>
getLastModified()
Deprecated.Optional<Location>
getLocation()
Deprecated.<T extends Temporal>
VEventgetOccurrence(T date)
Returns a single occurrence of a recurring event.Optional<Organizer>
getOrganizer()
Deprecated.Optional<Priority>
getPriority()
Deprecated.Optional<RecurrenceId<?>>
getRecurrenceId()
Deprecated.Optional<Sequence>
getSequence()
Deprecated.Optional<DtStart<?>>
getStartDate()
Deprecated.Optional<Status>
getStatus()
Deprecated.Optional<Summary>
getSummary()
Deprecated.Optional<Transp>
getTransparency()
Deprecated.Optional<Uid>
getUid()
Deprecated.Optional<Url>
getUrl()
Deprecated.int
hashCode()
protected ComponentFactory<VEvent>
newFactory()
Returns a new component factory used to create deep copies.String
toString()
void
validate(boolean recurse)
Perform validation on a component.void
validate(Method method)
Performs method-specific ITIP validation.-
Methods inherited from class net.fortuna.ical4j.model.component.CalendarComponent
validateAdd, validateCancel, validateCounter, validateDeclineCounter, validatePublish, validateRefresh, validateReply, validateRequest
-
Methods inherited from class net.fortuna.ical4j.model.Component
add, calculateRecurrenceSet, getName, getProperties, getProperties, getProperty, getRequiredProperty, getValue, remove, removeAll, replace, setProperties, validate, validateProperties
-
-
-
-
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(Temporal 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(Temporal start, Temporal 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(Temporal 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
-
add
public void add(VAlarm alarm)
Add a new alarm to the event.- Parameters:
alarm
- the alarm to add
-
validate
public final void validate(boolean recurse) throws ValidationException
Perform validation on a component.- Specified by:
validate
in classComponent
- Parameters:
recurse
- indicates whether to validate the component's properties- Throws:
ValidationException
- where the component is not in a valid state
-
validate
public void validate(Method method) throws ValidationException
Performs method-specific ITIP validation.- Overrides:
validate
in classCalendarComponent
- Parameters:
method
- the applicable method- Throws:
ValidationException
- where the component does not comply with RFC2446
-
getConsumedTime
public final <T extends Temporal> List<Period<T>> getConsumedTime(Period<T> range)
Returns a normalised list of periods representing the consumed time for this event.- Parameters:
range
- the range to check for consumed time- Returns:
- a normalised list of periods representing consumed time for this event
-
getConsumedTime
public final <T extends Temporal> List<Period<T>> getConsumedTime(Period<T> range, 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:
range
- 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 <T extends Temporal> VEvent getOccurrence(T date)
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
-
getClassification
@Deprecated public final Optional<Clazz> getClassification()
Deprecated.- Returns:
- the optional access classification property for an event
-
getCreated
@Deprecated public final Optional<Created> getCreated()
Deprecated.- Returns:
- the optional creation-time property for an event
-
getDescription
@Deprecated public final Optional<Description> getDescription()
Deprecated.- Returns:
- the optional description property for an event
-
getStartDate
@Deprecated public final Optional<DtStart<?>> getStartDate()
Deprecated.Convenience method to pull the DTSTART out of the property list.- Returns:
- The DtStart object representation of the start Date
-
getGeographicPos
@Deprecated public final Optional<Geo> getGeographicPos()
Deprecated.- Returns:
- the optional geographic position property for an event
-
getLastModified
@Deprecated public final Optional<LastModified> getLastModified()
Deprecated.- Returns:
- the optional last-modified property for an event
-
getLocation
@Deprecated public final Optional<Location> getLocation()
Deprecated.- Returns:
- the optional location property for an event
-
getOrganizer
@Deprecated public final Optional<Organizer> getOrganizer()
Deprecated.- Returns:
- the optional organizer property for an event
-
getPriority
@Deprecated public final Optional<Priority> getPriority()
Deprecated.- Returns:
- the optional priority property for an event
-
getDateStamp
@Deprecated public final Optional<DtStamp> getDateStamp()
Deprecated.- Returns:
- the optional date-stamp property
-
getSequence
@Deprecated public final Optional<Sequence> getSequence()
Deprecated.- Returns:
- the optional sequence number property for an event
-
getStatus
@Deprecated public final Optional<Status> getStatus()
Deprecated.- Returns:
- the optional status property for an event
-
getSummary
@Deprecated public final Optional<Summary> getSummary()
Deprecated.- Returns:
- the optional summary property for an event
-
getTransparency
@Deprecated public final Optional<Transp> getTransparency()
Deprecated.- Returns:
- the optional time transparency property for an event
-
getUrl
@Deprecated public final Optional<Url> getUrl()
Deprecated.- Returns:
- the optional URL property for an event
-
getRecurrenceId
@Deprecated public final Optional<RecurrenceId<?>> getRecurrenceId()
Deprecated.- Returns:
- the optional recurrence identifier property for an event
-
getEndDate
public final Optional<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 Optional<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
@Deprecated public final Optional<Duration> getDuration()
Deprecated.- Returns:
- the optional Duration property
-
getUid
@Deprecated public final Optional<Uid> getUid()
Deprecated.Returns the UID property of this component if available.- Returns:
- a Uid instance, or null if no UID property exists
-
copy
public VEvent copy()
Overrides default copy method to add support for copying alarm sub-components.- Overrides:
copy
in classComponent
- Returns:
- a copy of the instance
- See Also:
Component.copy()
-
newFactory
protected ComponentFactory<VEvent> newFactory()
Description copied from class:Component
Returns a new component factory used to create deep copies.- Specified by:
newFactory
in classComponent
- Returns:
- a component factory instance
-
-