package jfxtras.icalendarfx.components;
import jfxtras.icalendarfx.components.StandardOrDaylight;
import jfxtras.icalendarfx.components.StandardTime;
import jfxtras.icalendarfx.components.VTimeZone;
import jfxtras.icalendarfx.properties.component.descriptive.Comment;
import jfxtras.icalendarfx.properties.component.misc.NonStandardProperty;
import jfxtras.icalendarfx.properties.component.recurrence.RecurrenceDates;
import jfxtras.icalendarfx.properties.component.recurrence.RecurrenceRule;
import jfxtras.icalendarfx.properties.component.time.DateTimeStart;
import jfxtras.icalendarfx.properties.component.timezone.TimeZoneName;
import jfxtras.icalendarfx.properties.component.timezone.TimeZoneOffsetFrom;
import jfxtras.icalendarfx.properties.component.timezone.TimeZoneOffsetTo;
/**
* <p>STANDARD<br>
* Describes Standard Time<br>
* RFC 5545, 3.6.5, page 65</p>
*
* <p>The DAYLIGHT sub-component is always a child of a VTIMEZONE calendar component. It can't
* exist alone. The "STANDARD" or "DAYLIGHT" sub-component MUST
* include the {@link DateTimeStart DTSTART}, {@link TimeZoneOffsetFrom TZOFFSETFROM},
* and {@link TimeZoneOffsetTo TZOFFSETTO} properties.</p>
*
* <p>The "DAYLIGHT" sub-component consists of a collection of properties
* that describe Standard Time. In general, this collection
* of properties consists of:
*<ul>
*<li>the first onset DATE-TIME for the observance;
*<li>the last onset DATE-TIME for the observance, if a last onset is
* known;
*<li>the offset to be applied for the observance;
*<li>a rule that describes the day and time when the observance
* takes effect;
*<li>an optional name for the observance.</p>
*</ul>
*</p>
*<p>Properties available to this sub-component include:
*<ul>
*<li>{@link Comment COMMENT}
*<li>{@link DateTimeStart DTSTART}
*<li>{@link RecurrenceDates RDATE}
*<li>{@link RecurrenceRule RRULE}
*<li>{@link TimeZoneName TZNAME}
*<li>{@link TimeZoneOffsetFrom TZOFFSETFROM}
*<li>{@link TimeZoneOffsetTo TZOFFSETTO}
*<li>{@link NonStandardProperty X-PROP}
*</ul>
*</p>
*
* @author David Bal
*
* @see VTimeZone
*
*/
public class StandardTime extends StandardOrDaylight<StandardTime>
{
/*
* CONSTRUCTORS
*/
/**
* Creates a default StandardTime calendar component with no properties
*/
public StandardTime()
{
super();
}
/**
* Creates a deep copy of a StandardTime calendar component
*/
public StandardTime(StandardTime source)
{
super(source);
}
/**
* Creates a new VFreeBusy calendar component by parsing a String of iCalendar content lines
*
* @param content the text to parse, not null
* @return the parsed VFreeBusy
*/
public static StandardTime parse(String content)
{
return StandardTime.parse(new StandardTime(), content);
}
}