use warnings; use strict; package Data::ICal::Entry::Alarm; use base qw/Data::ICal::Entry/; =head1 NAME Data::ICal::Entry::Alarm - Abstract base class for alarms =head1 DESCRIPTION L is an abstract base class for the other type of supported by alarms: =over =item L =item L =item L =item L =back It is a subclass of L and accepts all of its methods. =head1 METHODS =cut =head2 new =cut sub new { my $class = shift; my $self = $class->SUPER::new(@_); die "Can't instantiate abstract base class Data::ICal::Entry::Alarm" if $class eq __PACKAGE__; return $self; } =head2 ical_entry_type Returns C, its iCalendar entry name. =cut sub ical_entry_type {'VALARM'} =head2 optional_unique_properties According to the iCalendar standard, the C and C properties may be specified at most one time all types of alarms; if one is specified, the other one must be also, though this module does not enforce that restriction. =cut sub optional_unique_properties { qw( duration repeat ); } =head2 mandatory_unique_properties According to the iCalendar standard, the C property must be specified exactly once for an all types of alarms; subclasses may have additional required properties. In addition, the C property must be specified exactly once, but all subclasses automatically set said property appropriately. =cut sub mandatory_unique_properties { qw( action trigger ); } =head1 AUTHOR Best Practical Solutions, LLC Emodules@bestpractical.comE =head1 LICENCE AND COPYRIGHT Copyright (c) 2005 - 2015, Best Practical Solutions, LLC. All rights reserved. This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See L. =cut 1;