net.fortuna.ical4j.model.component

## Class VAlarm

- java.lang.Object
- - net.fortuna.ical4j.model.Component
  - - net.fortuna.ical4j.model.component.CalendarComponent
    - - net.fortuna.ical4j.model.component.VAlarm

All Implemented Interfaces:
  Serializable

    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"));

Author:
  Ben Fortuna
See Also:
  Serialized Form

### 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, VALARM, VAVAILABILITY, VEVENT, VFREEBUSY, VJOURNAL, VTIMEZONE, VTODO, VVENUE`

### Constructor Summary

Constructors
Constructor and Description
`VAlarm()` Default constructor.
`VAlarm(DateTime trigger)` Constructs a new VALARM instance that will trigger at the specified time.
`VAlarm(Dur trigger)` Constructs a new VALARM instance that will trigger at the specified time relative to the event/todo component.
`VAlarm(PropertyList properties)` Constructor.

### Method Summary

Methods
`Action` `getAction()` Returns the mandatory action property.
`Attach` `getAttachment()` Returns the optional attachment property.
`Description` `getDescription()` Returns the optional description property.
`Duration` `getDuration()` Returns the optional duration property.
`Repeat` `getRepeat()` Returns the optional repeat property.
`Summary` `getSummary()` Returns the optional summary property.
`Trigger` `getTrigger()` Returns the mandatory trigger property.
`protected Validator` `getValidator(Method method)`
`void` `validate(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, equals, getName, getProperties, getProperties, getProperty, hashCode, toString, validate, validateProperties`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

### 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(Dur 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