Class VAlarm

  • All Implemented Interfaces:
    Serializable, PropertyContainer

    public class VAlarm
    extends CalendarComponent
    $Id$ [Apr 5, 2004] Defines an iCalendar VALARM component.
        4.6.6 Alarm Component
    
           Component Name: VALARM
    
           Purpose: Provide a grouping of component properties that define an
           alarm.
    
           Formal Definition: A "VALARM" calendar component is defined by the
           following notation:
    
                  alarmc     = "BEGIN" ":" "VALARM" CRLF
                               (audioprop / dispprop / emailprop / procprop)
                               "END" ":" "VALARM" CRLF
    
             audioprop  = 2*(
    
                        ; 'action' and 'trigger' are both REQUIRED,
                        ; but MUST NOT occur more than once
    
                        action / trigger /
    
                        ; 'duration' and 'repeat' are both optional,
                        ; and MUST NOT occur more than once each,
                        ; but if one occurs, so MUST the other
    
                        duration / repeat /
    
                        ; the following is optional,
                        ; but MUST NOT occur more than once
    
                        attach /
    
                        ; the following is optional,
                        ; and MAY occur more than once
    
                        x-prop
    
                        )
    
    
    
             dispprop   = 3*(
    
                        ; the following are all REQUIRED,
                        ; but MUST NOT occur more than once
    
                        action / description / trigger /
    
                        ; 'duration' and 'repeat' are both optional,
                        ; and MUST NOT occur more than once each,
                        ; but if one occurs, so MUST the other
    
                        duration / repeat /
    
                        ; the following is optional,
                        ; and MAY occur more than once
    
                        *x-prop
    
                        )
    
    
    
             emailprop  = 5*(
    
                        ; the following are all REQUIRED,
                        ; but MUST NOT occur more than once
    
                        action / description / trigger / summary
    
                        ; the following is REQUIRED,
                        ; and MAY occur more than once
    
                        attendee /
    
                        ; 'duration' and 'repeat' are both optional,
                        ; and MUST NOT occur more than once each,
                        ; but if one occurs, so MUST the other
    
                        duration / repeat /
    
                        ; the following are optional,
                        ; and MAY occur more than once
    
                        attach / x-prop
    
                        )
    
    
    
             procprop   = 3*(
    
                        ; the following are all REQUIRED,
                        ; but MUST NOT occur more than once
    
                        action / attach / trigger /
    
                        ; 'duration' and 'repeat' are both optional,
                        ; and MUST NOT occur more than once each,
                        ; but if one occurs, so MUST the other
    
                        duration / repeat /
    
                        ; 'description' is optional,
                        ; and MUST NOT occur more than once
    
                        description /
    
                        ; the following is optional,
                        ; and MAY occur more than once
    
                        x-prop
    
                        )
     
    Example 1 - Creating an alarm to trigger at a specific time:
    
     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);
    
     VAlarm christmas = new VAlarm(cal.getTime());
     
    Example 2 - Creating an alarm to trigger one (1) hour before the scheduled start of the parent event/the parent todo is due:
    
     VAlarm reminder = new VAlarm(new Dur(0, -1, 0, 0));
    
     // repeat reminder four (4) more times every fifteen (15) minutes..
     reminder.getProperties().add(new Repeat(4));
     reminder.getProperties().add(new Duration(new Dur(0, 0, 15, 0)));
    
     // display a message..
     reminder.getProperties().add(Action.DISPLAY);
     reminder.getProperties().add(new Description("Progress Meeting at 9:30am"));
     
    See Also:
    Serialized Form
    • Constructor Detail

      • VAlarm

        public VAlarm()
        Default constructor.
      • VAlarm

        public VAlarm​(PropertyList properties)
        Constructor.
        Parameters:
        properties - a list of properties
      • VAlarm

        public VAlarm​(DateTime trigger)
        Constructs a new VALARM instance that will trigger at the specified time.
        Parameters:
        trigger - the time the alarm will trigger
      • VAlarm

        public VAlarm​(TemporalAmount trigger)
        Constructs a new VALARM instance that will trigger at the specified time relative to the event/todo component.
        Parameters:
        trigger - a duration of time relative to the parent component that the alarm will trigger at
    • Method Detail

      • validate

        public final void validate​(boolean recurse)
                            throws ValidationException
        Perform validation on a component.
        Specified by:
        validate in class Component
        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:
        getValidator in class CalendarComponent
        Parameters:
        method - a method to validate on
        Returns:
        a validator for the specified method or null if the method is not supported
      • getAction

        public final Action getAction()
        Returns the mandatory action property.
        Returns:
        the ACTION property or null if not specified
      • getTrigger

        public final Trigger getTrigger()
        Returns the mandatory trigger property.
        Returns:
        the TRIGGER property or null if not specified
      • getDuration

        public final Duration getDuration()
        Returns the optional duration property.
        Returns:
        the DURATION property or null if not specified
      • getRepeat

        public final Repeat getRepeat()
        Returns the optional repeat property.
        Returns:
        the REPEAT property or null if not specified
      • getAttachment

        public final Attach getAttachment()
        Returns the optional attachment property.
        Returns:
        the ATTACH property or null if not specified
      • getDescription

        public final Description getDescription()
        Returns the optional description property.
        Returns:
        the DESCRIPTION property or null if not specified
      • getSummary

        public final Summary getSummary()
        Returns the optional summary property.
        Returns:
        the SUMMARY property or null if not specified