SEQUENCE:0
public interface VComponent<I>
Interface for VEVENT, VTODO, VJOURNAL calendar components.
This defines a top-level calendar component from iCalendar as defined in section 3.6 of RFC 5545 for an event (VEvent), a to-do (VTodo) or a journal entry (VJournal).
The three other components defined in section 3.6 are time zone information, free/busy time information, and alarm. Those three components are not subclasses of VComponent and are not implemented here.
The implementation status of component properties: 3.8.1. Descriptive Component Properties . . . . . . . . . . 81 3.8.1.1. Attachment . . . . . . . . . . . . . . . . . . . 81 - NO 3.8.1.2. Categories . . . . . . . . . . . . . . . . . . . 82 - Yes 3.8.1.3. Classification . . . . . . . . . . . . . . . . . 83 - NO 3.8.1.4. Comment . . . . . . . . . . . . . . . . . . . . . 84 - Yes 3.8.1.5. Description . . . . . . . . . . . . . . . . . . . 85 - Yes (in VEvent) 3.8.1.6. Geographic Position . . . . . . . . . . . . . . . 87 - NO 3.8.1.7. Location . . . . . . . . . . . . . . . . . . . . 88 - Yes (in VEvent) 3.8.1.8. Percent Complete . . . . . . . . . . . . . . . . 89 - NO 3.8.1.9. Priority . . . . . . . . . . . . . . . . . . . . 90 - NO 3.8.1.10. Resources . . . . . . . . . . . . . . . . . . . . 92 - NO 3.8.1.11. Status . . . . . . . . . . . . . . . . . . . . . 93 - NO 3.8.1.12. Summary . . . . . . . . . . . . . . . . . . . . . 94 - Yes 3.8.2. Date and Time Component Properties . . . . . . . . . 95 3.8.2.1. Date-Time Completed . . . . . . . . . . . . . . . 95 - NO 3.8.2.2. Date-Time End . . . . . . . . . . . . . . . . . . 96 - Yes 3.8.2.3. Date-Time Due . . . . . . . . . . . . . . . . . . 97 - NO 3.8.2.4. Date-Time Start . . . . . . . . . . . . . . . . . 99 - Yes 3.8.2.5. Duration . . . . . . . . . . . . . . . . . . . . 100 - Yes 3.8.2.6. Free/Busy Time . . . . . . . . . . . . . . . . . 101 - NO 3.8.2.7. Time Transparency . . . . . . . . . . . . . . . . 102 - NO 3.8.3. Time Zone Component Properties . . . . . . . . . . . 103 - NO 3.8.3.1. Time Zone Identifier . . . . . . . . . . . . . . 103 - NO 3.8.3.2. Time Zone Name . . . . . . . . . . . . . . . . . 105 - NO 3.8.3.3. Time Zone Offset From . . . . . . . . . . . . . . 106 - NO 3.8.3.4. Time Zone Offset To . . . . . . . . . . . . . . . 106 - NO 3.8.3.5. Time Zone URL . . . . . . . . . . . . . . . . . . 107 - NO 3.8.4. Relationship Component Properties . . . . . . . . . . 108 3.8.4.1. Attendee . . . . . . . . . . . . . . . . . . . . 108 - NO 3.8.4.2. Contact . . . . . . . . . . . . . . . . . . . . . 111 - NO 3.8.4.3. Organizer . . . . . . . . . . . . . . . . . . . . 113 - Yes 3.8.4.4. Recurrence ID . . . . . . . . . . . . . . . . . . 114 - Yes 3.8.4.5. Related To . . . . . . . . . . . . . . . . . . . 117 - Yes 3.8.4.6. Uniform Resource Locator . . . . . . . . . . . . 118 - NO 3.8.4.7. Unique Identifier . . . . . . . . . . . . . . . . 119 - Yes 3.8.5. Recurrence Component Properties . . . . . . . . . . . 120 3.8.5.1. Exception Date-Times . . . . . . . . . . . . . . 120 - Yes 3.8.5.2. Recurrence Date-Times . . . . . . . . . . . . . . 122 - Yes 3.8.5.3. Recurrence Rule . . . . . . . . . . . . . . . . . 124 - Yes, in RRule class 3.8.6. Alarm Component Properties . . . . . . . . . . . . . 134 3.8.6.1. Action . . . . . . . . . . . . . . . . . . . . . 134 - NO 3.8.6.2. Repeat Count . . . . . . . . . . . . . . . . . . 135 - NO 3.8.6.3. Trigger . . . . . . . . . . . . . . . . . . . . . 135 - NO 3.8.7. Change Management Component Properties . . . . . . . 138 3.8.7.1. Date-Time Created . . . . . . . . . . . . . . . . 138 - Yes 3.8.7.2. Date-Time Stamp . . . . . . . . . . . . . . . . . 139 - Yes 3.8.7.3. Last Modified . . . . . . . . . . . . . . . . . . 140 - Yes 3.8.7.4. Sequence Number . . . . . . . . . . . . . . . . . 141 - Yes 3.8.8. Miscellaneous Component Properties . . . . . . . . . 142 3.8.8.1. IANA Properties . . . . . . . . . . . . . . . . . 142 - NO 3.8.8.2. Non-Standard Properties . . . . . . . . . . . . . 142 - can’t be implemented here. must be in implementing class 3.8.8.3. Request Status . . . . . . . . . . . . . . . . . 144 - NO
Alphabetical list of elements for VComponent (some not implemented) ATTACH - not implemented ATTENDEE - not implemented CATEGORIES - yes CLASS - not implemented COMMENT - yes CONTACT - not implemented CREATED - yes DTSTAMP - yes DTSTART - yes EXDATE - yes IANA-PROP - not implemented LAST-MODIFIED - yes ORGANIZER - yes RDATE - yes RECURRENCE-ID - yes RELATED-TO - yes RESOURCES - not implemented RRULE - yes RSTATUS - not implemented SEQUENCE - Yes STATUS - not implemented SUMMARY - yes UID - yes URL - not implemented X-PROP - can’t be implemented here. must be in implementing class
Limitations: CATEGORIES, COMMENT, RELATED-TO can only exist once per calendar component. According to iCalendar a number of properties, including these can exist more than once. Fixing this limitation is a future goal. - I plan on fixing this problem by combining multiple instances into one property internally.
VComponentBase
,
VEvent
,
// not implemented yet
,
// not implemented yet
Type | Property and Description |
---|---|
javafx.beans.property.StringProperty |
categories |
javafx.beans.property.ObjectProperty<Comment> |
comment |
javafx.beans.property.ObjectProperty<java.time.ZonedDateTime> |
dateTimeCreated |
javafx.beans.property.ObjectProperty<java.time.ZonedDateTime> |
dateTimeLastModified |
javafx.beans.property.ObjectProperty<java.time.temporal.Temporal> |
dateTimeRecurrence |
javafx.beans.property.ObjectProperty<java.time.ZonedDateTime> |
dateTimeStamp |
javafx.beans.property.ObjectProperty<java.time.temporal.Temporal> |
dateTimeStart |
javafx.beans.property.ObjectProperty<ExDate> |
exDate |
javafx.beans.property.StringProperty |
organizer |
javafx.beans.property.ObjectProperty<RDate> |
rDate |
javafx.beans.property.StringProperty |
relatedTo |
javafx.beans.property.ObjectProperty<RRule> |
rRule |
javafx.beans.property.IntegerProperty |
sequence |
javafx.beans.property.ObjectProperty<Summary> |
summary |
javafx.beans.property.StringProperty |
uniqueIdentifier |
Modifier and Type | Interface and Description |
---|---|
static class |
VComponent.StartEndRange
A convenience class to represent start and end date-time pairs
|
Modifier and Type | Field and Description |
---|---|
static java.util.Comparator<? super VComponent<?>> |
VCOMPONENT_COMPARATOR
Sorts VComponents by DTSTART date/time
|
Modifier and Type | Method and Description |
---|---|
javafx.beans.property.StringProperty |
categoriesProperty() |
javafx.beans.property.ObjectProperty<Comment> |
commentProperty() |
void |
copyTo(VComponent<I> destination)
Copies this object into destination object
|
static <U> int |
countVComponents(java.util.Collection<VComponent<U>> relatives)
Counts number of instances in recurrence set.
|
javafx.beans.property.ObjectProperty<java.time.ZonedDateTime> |
dateTimeCreatedProperty() |
javafx.beans.property.ObjectProperty<java.time.ZonedDateTime> |
dateTimeLastModifiedProperty() |
javafx.beans.property.ObjectProperty<java.time.temporal.Temporal> |
dateTimeRecurrenceProperty() |
javafx.beans.property.ObjectProperty<java.time.ZonedDateTime> |
dateTimeStampProperty() |
javafx.beans.property.ObjectProperty<java.time.temporal.Temporal> |
dateTimeStartProperty() |
default java.lang.String |
errorString()
If VComponent is not valid returns string of errors.
|
javafx.beans.property.ObjectProperty<ExDate> |
exDateProperty() |
static <U> java.util.List<VComponent<U>> |
findRelatedVComponents(java.util.Collection<VComponent<U>> vComponents,
VComponent<U> vComponent)
Return list of all related VComponents that make up entire recurrence set.
|
static <U> java.util.List<VComponent<U>> |
findRelatedVComponents2(java.util.Collection<VComponent<U>> vComponents,
VComponent<U> vComponent)
Deprecated.
|
java.lang.String |
getCategories()
CATEGORIES: RFC 5545 iCalendar 3.8.1.12.
|
Comment |
getComment()
COMMENT: RFC 5545 iCalendar 3.8.1.12.
|
java.time.ZonedDateTime |
getDateTimeCreated()
CREATED: Date-Time Created, from RFC 5545 iCalendar 3.8.7.1 page 136
This property specifies the date and time that the calendar information was created.
|
java.time.ZonedDateTime |
getDateTimeLastModified()
LAST-MODIFIED: Date-Time Last Modified, from RFC 5545 iCalendar 3.8.7.3 page 138
This property specifies the date and time that the information associated with
the calendar component was last revised.
|
java.time.temporal.Temporal |
getDateTimeRecurrence()
RECURRENCE-ID: date or date-time recurrence, from RFC 5545 iCalendar 3.8.4.4 page 112
The property value is the original value of the "DTSTART" property of the
recurrence instance.
|
java.time.ZonedDateTime |
getDateTimeStamp()
DTSTAMP: Date-Time Stamp, from RFC 5545 iCalendar 3.8.7.2 page 137
This property specifies the date and time that the instance of the
iCalendar object was created
The value MUST be specified in the UTC time format.
|
java.time.temporal.Temporal |
getDateTimeStart()
DTSTART: Date-Time Start, from RFC 5545 iCalendar 3.8.2.4 page 97
Start date/time of repeat rule.
|
default DateTimeUtilities.DateTimeType |
getDateTimeType() |
java.time.temporal.Temporal |
getEndRange()
End of range for which recurrence instances are generated.
|
ExDate |
getExDate()
EXDATE: Set of date/times exceptions for recurring events, to-dos, journal entries.
|
java.lang.String |
getOrganizer()
ORGANIZER: RFC 5545 iCalendar 3.8.4.3.
|
VComponent<I> |
getParent()
If VComponent has RECURRENCE-ID this returns its parent component
|
RDate |
getRDate()
RDATE: Set of date/times for recurring events, to-dos, journal entries.
|
java.lang.String |
getRelatedTo()
RELATED-TO: This property is used to represent a relationship or reference between
one calendar component and another.
|
RRule |
getRRule()
RRULE, Recurrence Rule as defined in RFC 5545 iCalendar 3.8.5.3, page 122.
|
int |
getSequence()
SEQUENCE: RFC 5545 iCalendar 3.8.7.4.
|
java.time.temporal.Temporal |
getStartRange()
Start of range for which recurrence instances are generated.
|
Summary |
getSummary()
SUMMARY: RFC 5545 iCalendar 3.8.1.12.
|
javafx.util.Callback<java.lang.Void,java.lang.String> |
getUidGeneratorCallback()
Callback for creating unique uid values
|
java.lang.String |
getUniqueIdentifier()
UID, Unique identifier, as defined by RFC 5545, iCalendar 3.8.4.7 page 117
A globally unique identifier for the calendar component.
|
default java.time.ZoneId |
getZoneId() |
void |
handleDelete(java.util.Collection<VComponent<I>> vComponents,
java.time.temporal.Temporal startInstance,
I instance,
java.util.Collection<I> instances,
javafx.util.Callback<java.util.Map<ICalendarUtilities.ChangeDialogOption,VComponent.StartEndRange>,ICalendarUtilities.ChangeDialogOption> dialogCallback)
Deletes a VComponent.
|
boolean |
handleEdit(VComponent<I> vComponentOriginal,
java.util.Collection<VComponent<I>> vComponents,
java.time.temporal.Temporal startOriginalInstance,
java.time.temporal.Temporal startInstance,
java.time.temporal.Temporal endInstance,
java.util.Collection<I> instances,
javafx.util.Callback<java.util.Map<ICalendarUtilities.ChangeDialogOption,VComponent.StartEndRange>,ICalendarUtilities.ChangeDialogOption> dialogCallback)
Handles how an edited VComponent is processed.
|
default void |
incrementSequence() |
java.util.Collection<I> |
instances()
Returns existing instances in the Recurrence Set (defined in RFC 5545 iCalendar page 121)
made by the last call of makeRecurrenceSet
|
boolean |
isExDatesOnOneLine() |
default boolean |
isFirstRecurrence(java.time.temporal.Temporal startInstance)
Returns true if startInstance is first in recurrence set, false otherwise
|
boolean |
isGoogleRecurrenceUID()
Use Google UID extension instead of RELATED-TO to express
|
default boolean |
isIndividual()
Returns true if VComponent is an individual (only one instance in recurrence set),
false if has more than 1 instance
|
default boolean |
isLastRecurrence(java.time.temporal.Temporal startInstance)
Returns true if startInstance is last in recurrence set,
false there are recurrences after startInstance
|
default boolean |
isRecurrenceSetEmpty()
Returns true if VComponent has zero instances in recurrence set
|
default boolean |
isStreamValue(java.time.temporal.Temporal temporal)
Returns true if temporal is in vComponent’s stream of start date-time
values, false otherwise.
|
default boolean |
isValid()
Checks to see if VComponent is has all required properties filled.
|
default boolean |
isWholeDay()
Component is whole day if dateTimeStart (DTSTART) only contains a date (no time)
|
default java.time.temporal.Temporal |
lastRecurrence()
returns the last date or date/time of the series.
|
java.util.Collection<I> |
makeInstances()
Returns the collection of recurrence instances of calendar component of type T that exists
between dateTimeRangeStart and dateTimeRangeEnd based on VComponent.
|
java.util.Collection<I> |
makeInstances(java.time.temporal.Temporal start,
java.time.temporal.Temporal end)
Returns the collection of recurrence instances of calendar component of type T that exists
between dateTimeRangeStart and dateTimeRangeEnd based on VComponent.
|
javafx.beans.property.StringProperty |
organizerProperty() |
javafx.beans.property.ObjectProperty<RDate> |
rDateProperty() |
javafx.beans.property.StringProperty |
relatedToProperty() |
javafx.beans.property.ObjectProperty<RRule> |
rRuleProperty() |
javafx.beans.property.IntegerProperty |
sequenceProperty() |
void |
setCategories(java.lang.String value) |
void |
setComment(Comment comment) |
void |
setDateTimeCreated(java.time.ZonedDateTime dtCreated) |
void |
setDateTimeLastModified(java.time.ZonedDateTime dtLastModified) |
void |
setDateTimeRecurrence(java.time.temporal.Temporal dtRecurrence) |
void |
setDateTimeStamp(java.time.ZonedDateTime dtStamp) |
void |
setDateTimeStart(java.time.temporal.Temporal dtStart) |
void |
setEndRange(java.time.temporal.Temporal end)
End of range for which recurrence instances are generated.
|
void |
setExDate(ExDate exDate) |
void |
setGoogleRecurrenceUID(boolean b) |
void |
setOrganizer(java.lang.String value) |
void |
setParent(VComponent<I> v) |
void |
setRDate(RDate rDate) |
void |
setRelatedTo(java.lang.String uid) |
void |
setRRule(RRule rRule) |
void |
setSequence(int value) |
void |
setStartRange(java.time.temporal.Temporal start)
Start of range for which recurrence instances are generated.
|
void |
setSummary(Summary summary) |
void |
setUidGeneratorCallback(javafx.util.Callback<java.lang.Void,java.lang.String> uidCallback) |
void |
setUniqueIdentifier(java.lang.String s) |
java.util.stream.Stream<java.time.temporal.Temporal> |
stream(java.time.temporal.Temporal startTemporal)
Stream of dates or date-times that indicate the series of start date-times of the event(s).
|
java.util.stream.Stream<java.time.temporal.Temporal> |
streamLimitedByRange()
Produces a stream of start dates or date/times by calling
stream(Temporal) using getStartRange()
as the temporal parameter, minus the duration if the VComponent has one. |
javafx.beans.property.ObjectProperty<Summary> |
summaryProperty() |
java.lang.String |
toComponentText()
returns string of line-separated properties defining calendar component.
|
javafx.beans.property.StringProperty |
uniqueIdentifierProperty() |
javafx.beans.property.StringProperty categoriesProperty
getCategories()
,
setCategories(String)
javafx.beans.property.ObjectProperty<Comment> commentProperty
getComment()
,
setComment(Comment)
javafx.beans.property.ObjectProperty<java.time.ZonedDateTime> dateTimeCreatedProperty
javafx.beans.property.ObjectProperty<java.time.ZonedDateTime> dateTimeStampProperty
javafx.beans.property.ObjectProperty<java.time.temporal.Temporal> dateTimeStartProperty
getDateTimeStart()
,
setDateTimeStart(Temporal)
javafx.beans.property.ObjectProperty<ExDate> exDateProperty
getExDate()
,
setExDate(ExDate)
javafx.beans.property.ObjectProperty<java.time.ZonedDateTime> dateTimeLastModifiedProperty
javafx.beans.property.StringProperty organizerProperty
getOrganizer()
,
setOrganizer(String)
javafx.beans.property.ObjectProperty<RDate> rDateProperty
getRDate()
,
setRDate(RDate)
javafx.beans.property.StringProperty relatedToProperty
getRelatedTo()
,
setRelatedTo(String)
javafx.beans.property.ObjectProperty<java.time.temporal.Temporal> dateTimeRecurrenceProperty
javafx.beans.property.ObjectProperty<RRule> rRuleProperty
getRRule()
,
setRRule(RRule)
javafx.beans.property.IntegerProperty sequenceProperty
getSequence()
,
setSequence(int)
javafx.beans.property.ObjectProperty<Summary> summaryProperty
getSummary()
,
setSummary(Summary)
javafx.beans.property.StringProperty uniqueIdentifierProperty
getUniqueIdentifier()
,
setUniqueIdentifier(String)
static final java.util.Comparator<? super VComponent<?>> VCOMPONENT_COMPARATOR
Sorts VComponents by DTSTART date/time
java.lang.String getCategories()
CATEGORIES: RFC 5545 iCalendar 3.8.1.12. page 81 This property defines the categories for a calendar component. Example: CATEGORIES:APPOINTMENT,EDUCATION CATEGORIES:MEETING
javafx.beans.property.StringProperty categoriesProperty()
getCategories()
,
setCategories(String)
void setCategories(java.lang.String value)
Comment getComment()
COMMENT: RFC 5545 iCalendar 3.8.1.12. page 83 This property specifies non-processing information intended to provide a comment to the calendar user. Example: COMMENT:The meeting really needs to include both ourselves and the customer. We can’t hold this meeting without them. As a matter of fact\, the venue for the meeting ought to be at their site. - - John
javafx.beans.property.ObjectProperty<Comment> commentProperty()
getComment()
,
setComment(Comment)
void setComment(Comment comment)
java.time.ZonedDateTime getDateTimeCreated()
CREATED: Date-Time Created, from RFC 5545 iCalendar 3.8.7.1 page 136 This property specifies the date and time that the calendar information was created. This is analogous to the creation date and time for a file in the file system. The value MUST be specified in the UTC time format.
javafx.beans.property.ObjectProperty<java.time.ZonedDateTime> dateTimeCreatedProperty()
void setDateTimeCreated(java.time.ZonedDateTime dtCreated)
java.time.ZonedDateTime getDateTimeStamp()
DTSTAMP: Date-Time Stamp, from RFC 5545 iCalendar 3.8.7.2 page 137 This property specifies the date and time that the instance of the iCalendar object was created The value MUST be specified in the UTC time format.
javafx.beans.property.ObjectProperty<java.time.ZonedDateTime> dateTimeStampProperty()
void setDateTimeStamp(java.time.ZonedDateTime dtStamp)
java.time.temporal.Temporal getDateTimeStart()
DTSTART: Date-Time Start, from RFC 5545 iCalendar 3.8.2.4 page 97 Start date/time of repeat rule. Used as a starting point for making the Stream<LocalDateTime> of valid start date/times of the repeating events. Can be either type LocalDate or LocalDateTime
javafx.beans.property.ObjectProperty<java.time.temporal.Temporal> dateTimeStartProperty()
getDateTimeStart()
,
setDateTimeStart(Temporal)
void setDateTimeStart(java.time.temporal.Temporal dtStart)
default DateTimeUtilities.DateTimeType getDateTimeType()
default java.time.ZoneId getZoneId()
default boolean isWholeDay()
Component is whole day if dateTimeStart (DTSTART) only contains a date (no time)
ExDate getExDate()
EXDATE: Set of date/times exceptions for recurring events, to-dos, journal entries. 3.8.5.1, RFC 5545 iCalendar Is rarely used, so employs lazy initialization.
javafx.beans.property.ObjectProperty<ExDate> exDateProperty()
getExDate()
,
setExDate(ExDate)
void setExDate(ExDate exDate)
boolean isExDatesOnOneLine()
java.time.ZonedDateTime getDateTimeLastModified()
LAST-MODIFIED: Date-Time Last Modified, from RFC 5545 iCalendar 3.8.7.3 page 138 This property specifies the date and time that the information associated with the calendar component was last revised.
The property value MUST be specified in the UTC time format.
javafx.beans.property.ObjectProperty<java.time.ZonedDateTime> dateTimeLastModifiedProperty()
void setDateTimeLastModified(java.time.ZonedDateTime dtLastModified)
java.lang.String getOrganizer()
ORGANIZER: RFC 5545 iCalendar 3.8.4.3. page 111 This property defines the organizer for a calendar component Example: ORGANIZER;CN=John Smith:mailto:jsmith@example.com
The property is stored as a simple string. The implementation is responsible to extract any contained data elements such as CN, DIR, SENT-BY
javafx.beans.property.StringProperty organizerProperty()
getOrganizer()
,
setOrganizer(String)
void setOrganizer(java.lang.String value)
RDate getRDate()
RDATE: Set of date/times for recurring events, to-dos, journal entries. 3.8.5.2, RFC 5545 iCalendar
javafx.beans.property.ObjectProperty<RDate> rDateProperty()
getRDate()
,
setRDate(RDate)
void setRDate(RDate rDate)
java.lang.String getRelatedTo()
RELATED-TO: This property is used to represent a relationship or reference between one calendar component and another. By default, the property value points to another calendar component’s UID that has a PARENT relationship to the referencing object. This field is null unless the object contains as RECURRENCE-ID value. 3.8.4.5, RFC 5545 iCalendar
javafx.beans.property.StringProperty relatedToProperty()
getRelatedTo()
,
setRelatedTo(String)
void setRelatedTo(java.lang.String uid)
boolean isGoogleRecurrenceUID()
Use Google UID extension instead of RELATED-TO to express
void setGoogleRecurrenceUID(boolean b)
java.time.temporal.Temporal getDateTimeRecurrence()
RECURRENCE-ID: date or date-time recurrence, from RFC 5545 iCalendar 3.8.4.4 page 112 The property value is the original value of the "DTSTART" property of the recurrence instance.
javafx.beans.property.ObjectProperty<java.time.temporal.Temporal> dateTimeRecurrenceProperty()
void setDateTimeRecurrence(java.time.temporal.Temporal dtRecurrence)
VComponent<I> getParent()
If VComponent has RECURRENCE-ID this returns its parent component
void setParent(VComponent<I> v)
RRule getRRule()
RRULE, Recurrence Rule as defined in RFC 5545 iCalendar 3.8.5.3, page 122. This property defines a rule or repeating pattern for recurring events, to-dos, journal entries, or time zone definitions If component is not repeating the value is null.
javafx.beans.property.ObjectProperty<RRule> rRuleProperty()
getRRule()
,
setRRule(RRule)
void setRRule(RRule rRule)
int getSequence()
SEQUENCE: RFC 5545 iCalendar 3.8.7.4. page 138 This property defines the revision sequence number of the calendar component within a sequence of revisions. Example: The following is an example of this property for a calendar component that was just created by the "Organizer":
SEQUENCE:0
The following is an example of this property for a calendar component that has been revised two different times by the "Organizer":
SEQUENCE:2
javafx.beans.property.IntegerProperty sequenceProperty()
getSequence()
,
setSequence(int)
void setSequence(int value)
default void incrementSequence()
Summary getSummary()
SUMMARY: RFC 5545 iCalendar 3.8.1.12. page 83 This property defines a short summary or subject for the calendar component Example: SUMMARY:Department Party
javafx.beans.property.ObjectProperty<Summary> summaryProperty()
getSummary()
,
setSummary(Summary)
void setSummary(Summary summary)
java.lang.String getUniqueIdentifier()
UID, Unique identifier, as defined by RFC 5545, iCalendar 3.8.4.7 page 117 A globally unique identifier for the calendar component. Included is an example UID generator. Other UID generators can be provided by setting the UID callback.
javafx.beans.property.StringProperty uniqueIdentifierProperty()
getUniqueIdentifier()
,
setUniqueIdentifier(String)
void setUniqueIdentifier(java.lang.String s)
javafx.util.Callback<java.lang.Void,java.lang.String> getUidGeneratorCallback()
Callback for creating unique uid values
void setUidGeneratorCallback(javafx.util.Callback<java.lang.Void,java.lang.String> uidCallback)
java.util.stream.Stream<java.time.temporal.Temporal> stream(java.time.temporal.Temporal startTemporal)
Stream of dates or date-times that indicate the series of start date-times of the event(s). iCalendar calls this series the recurrence set. For a VEvent without RRULE or RDATE the stream will contain only one element. In a VEvent with a RRULE the stream should contain more than one date/time element. It is possible to define a single-event RRULE, but it is not advisable. The stream will be infinite if COUNT or UNTIL is not present. The stream has an end when COUNT or UNTIL condition is met. The stream starts on startDateTime, which must be a valid event date/time, not necessarily the first date/time (DTSTART) in the sequence.
Start date/times are only produced between the ranges set by setDateTimeRanges
startTemporal
- - start dates or date/times produced after this date. If not on an occurrence,
it will be adjusted to be the next occurrencejava.util.stream.Stream<java.time.temporal.Temporal> streamLimitedByRange()
Produces a stream of start dates or date/times by calling stream(Temporal)
using getStartRange()
as the temporal parameter, minus the duration if the VComponent has one. This stream is used
by makeInstances()
to produce the displayed instances of the recurrence set.
java.time.temporal.Temporal getStartRange()
Start of range for which recurrence instances are generated. Should match the start date displayed on the calendar. This is not a part of an iCalendar VComponent.
void setStartRange(java.time.temporal.Temporal start)
Start of range for which recurrence instances are generated. Should match the start date displayed on the calendar. This is not a part of an iCalendar VComponent.
java.time.temporal.Temporal getEndRange()
End of range for which recurrence instances are generated. Should match the end date displayed on the calendar. This is not a part of an iCalendar VComponent.
void setEndRange(java.time.temporal.Temporal end)
End of range for which recurrence instances are generated. Should match the end date displayed on the calendar. This is not a part of an iCalendar VComponent.
java.util.Collection<I> makeInstances(java.time.temporal.Temporal start, java.time.temporal.Temporal end)
Returns the collection of recurrence instances of calendar component of type T that exists between dateTimeRangeStart and dateTimeRangeEnd based on VComponent. Recurrence set is defined in RFC 5545 iCalendar page 121 as follows "The recurrence set is the complete set of recurrence instances for a calendar component. The recurrence set is generated by considering the initial "DTSTART" property along with the "RRULE", "RDATE", and "EXDATE" properties contained within the recurring component."
start
- - beginning of time frame to make instancesend
- - end of time frame to make instancesjava.util.Collection<I> makeInstances()
Returns the collection of recurrence instances of calendar component of type T that exists between dateTimeRangeStart and dateTimeRangeEnd based on VComponent. Recurrence set is defined in RFC 5545 iCalendar page 121 as follows "The recurrence set is the complete set of recurrence instances for a calendar component. The recurrence set is generated by considering the initial "DTSTART" property along with the "RRULE", "RDATE", and "EXDATE" properties contained within the recurring component."
Uses start and end values from a previous call to makeInstances(Temporal start, Temporal end) If there are no start and end values an exception is thrown.
java.util.Collection<I> instances()
Returns existing instances in the Recurrence Set (defined in RFC 5545 iCalendar page 121) made by the last call of makeRecurrenceSet
<T>
- type of recurrence instance, such as an appointment implementationmakeRecurrenceSet
java.lang.String toComponentText()
returns string of line-separated properties defining calendar component.
Example:<br> BEGIN:VEVENT<br> DTSTART;TZID=America/Los_Angeles:20160214T080000<br> DTEND;TZID=America/Los_Angeles:20160214T110000<br> RRULE:FREQ=WEEKLY;BYDAY=SU,TU,FR<br> DTSTAMP:20160214T022532Z<br> UID:im8hmpakeigu3d85j3vq9q8bcc@google.com<br> CREATED:20160214T022525Z<br> LAST-MODIFIED:20160214T022525Z<br> SUMMARY:test2<br> END:VEVENT
boolean handleEdit(VComponent<I> vComponentOriginal, java.util.Collection<VComponent<I>> vComponents, java.time.temporal.Temporal startOriginalInstance, java.time.temporal.Temporal startInstance, java.time.temporal.Temporal endInstance, java.util.Collection<I> instances, javafx.util.Callback<java.util.Map<ICalendarUtilities.ChangeDialogOption,VComponent.StartEndRange>,ICalendarUtilities.ChangeDialogOption> dialogCallback)
Handles how an edited VComponent is processed. For a VComponent with a recurrence rule (RRULE) the user is given a dialog to select ONE, THIS_AND_FUTURE, or ALL instances to edit. For a VComponent without a RRULE there is no dialog.
This VComponent should have all changes made to it by the controller, except date-time changes that depend on the answer to the dialog question
vComponentOriginal
- - copy of this VComponent before changesvComponents
- - collection of all VComponentsstartOriginalInstance
- - date or date/time of selected instance before changesstartInstance
- - date or date/time of selected instance after changesendInstance
- - date or date/time of selected instance after changes (null for VTODO and VJOURNAL)instances
- - all instances being rendered by all VComponentsdialogCallback
- - callback to generate dialog to select ONE, THIS_AND_FUTURE, or ALL.
Note: Can use a stub for testing (e.g. (m) → ChangeDialogOption.ALL).void handleDelete(java.util.Collection<VComponent<I>> vComponents, java.time.temporal.Temporal startInstance, I instance, java.util.Collection<I> instances, javafx.util.Callback<java.util.Map<ICalendarUtilities.ChangeDialogOption,VComponent.StartEndRange>,ICalendarUtilities.ChangeDialogOption> dialogCallback)
Deletes a VComponent. For a VComponent with a recurrence rule (RRULE) the user is given a dialog to select ONE, THIS_AND_FUTURE, or ALL instances to delete.
vComponents
- - collection of all VComponentsstartInstance
- - start date or date/time of instanceinstance
- - selected recurrence instanceinstances
- - collection of all instances across all VComponentsdialogCallback
- - callback to generate dialog to select ONE, THIS_AND_FUTURE, or ALL.
Note: Can use a stub for testing (e.g. (m) → ChangeDialogOption.ALL).void copyTo(VComponent<I> destination)
Copies this object into destination object
destination
- default java.lang.String errorString()
If VComponent is not valid returns string of errors. If it’s valid then returns an empty string
See isValid()
for valid criteria
default boolean isValid()
Checks to see if VComponent is has all required properties filled. Also checks to ensure all properties contain valid values.
Requires properties: DTSTAMP UID
Optional, can only occur once: // TODO - VERIFY ALL BELOW ITEMS DONE ONLY ONCE CLASS CREATED DTSTART LAST-MODIFIED ORGANIZER RECURID RRULE SEQUENCE STATUS SUMMARY URL
default boolean isIndividual()
Returns true if VComponent is an individual (only one instance in recurrence set), false if has more than 1 instance
default boolean isFirstRecurrence(java.time.temporal.Temporal startInstance)
Returns true if startInstance is first in recurrence set, false otherwise
default boolean isLastRecurrence(java.time.temporal.Temporal startInstance)
Returns true if startInstance is last in recurrence set, false there are recurrences after startInstance
default java.time.temporal.Temporal lastRecurrence()
returns the last date or date/time of the series. If infinite returns null
default boolean isRecurrenceSetEmpty()
Returns true if VComponent has zero instances in recurrence set
default boolean isStreamValue(java.time.temporal.Temporal temporal)
Returns true if temporal is in vComponent’s stream of start date-time values, false otherwise.
static <U> java.util.List<VComponent<U>> findRelatedVComponents(java.util.Collection<VComponent<U>> vComponents, VComponent<U> vComponent)
Return list of all related VComponents that make up entire recurrence set. List also contains all VComponents that share the same UID.
Used to edit or delete entire recurrence set.
vComponents
- : collection of all VComponentsvComponent
- : VComponent to match to parent, children and branches@Deprecated static <U> java.util.List<VComponent<U>> findRelatedVComponents2(java.util.Collection<VComponent<U>> vComponents, VComponent<U> vComponent)
Return list of all related VComponents that make up entire recurrence set. List also contains input parameter vComponent, parent, children, or branches.
Used to edit or delete entire recurrence set.
vComponents
- : collection of all VComponentsvComponent
- : VComponent to match to parent, children and branchesstatic <U> int countVComponents(java.util.Collection<VComponent<U>> relatives)
Counts number of instances in recurrence set. returns -1 for infinite. Recurrence set of collection of VComponents making up a series.
relatives
-