net.fortuna.ical4j.model
Class Component

java.lang.Object
  extended by net.fortuna.ical4j.model.Component
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
Available, CalendarComponent, Observance

public abstract class Component
extends Object
implements Serializable

$Id$ [Apr 5, 2004] Defines an iCalendar component. Subclasses of this class provide additional validation and typed values for specific iCalendar components.

Author:
Ben Fortuna
See Also:
Serialized Form

Field Summary
static String AVAILABLE
          Component token.
static String BEGIN
          Component start token.
static String END
          Component end token.
static String EXPERIMENTAL_PREFIX
          Prefix for non-standard components.
static String VALARM
          Component token.
static String VAVAILABILITY
          Component token.
static String VEVENT
          Component token.
static String VFREEBUSY
          Component token.
static String VJOURNAL
          Component token.
static String VTIMEZONE
          Component token.
static String VTODO
          Component token.
static String VVENUE
          Component token.
 
Constructor Summary
protected Component(String s)
          Constructs a new component containing no properties.
protected Component(String s, PropertyList p)
          Constructor made protected to enforce the use of ComponentFactory for component instantiation.
 
Method Summary
 PeriodList calculateRecurrenceSet(Period period)
          Calculates the recurrence set for this component using the specified period.
 Component copy()
          Create a (deep) copy of this component.
 boolean equals(Object arg0)
          
 String getName()
           
 PropertyList getProperties()
           
 PropertyList getProperties(String name)
          Convenience method for retrieving a list of named properties.
 Property getProperty(String name)
          Convenience method for retrieving a named property.
 int hashCode()
          
 String toString()
          
 void validate()
          Perform validation on a component and its properties.
abstract  void validate(boolean recurse)
          Perform validation on a component.
protected  void validateProperties()
          Invoke validation on the component properties in its current state.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

BEGIN

public static final String BEGIN
Component start token.

See Also:
Constant Field Values

END

public static final String END
Component end token.

See Also:
Constant Field Values

VEVENT

public static final String VEVENT
Component token.

See Also:
Constant Field Values

VTODO

public static final String VTODO
Component token.

See Also:
Constant Field Values

VJOURNAL

public static final String VJOURNAL
Component token.

See Also:
Constant Field Values

VFREEBUSY

public static final String VFREEBUSY
Component token.

See Also:
Constant Field Values

VTIMEZONE

public static final String VTIMEZONE
Component token.

See Also:
Constant Field Values

VALARM

public static final String VALARM
Component token.

See Also:
Constant Field Values

VAVAILABILITY

public static final String VAVAILABILITY
Component token.

See Also:
Constant Field Values

VVENUE

public static final String VVENUE
Component token.

See Also:
Constant Field Values

AVAILABLE

public static final String AVAILABLE
Component token.

See Also:
Constant Field Values

EXPERIMENTAL_PREFIX

public static final String EXPERIMENTAL_PREFIX
Prefix for non-standard components.

See Also:
Constant Field Values
Constructor Detail

Component

protected Component(String s)
Constructs a new component containing no properties.

Parameters:
s - a component name

Component

protected Component(String s,
                    PropertyList p)
Constructor made protected to enforce the use of ComponentFactory for component instantiation.

Parameters:
s - component name
p - a list of properties
Method Detail

toString

public String toString()

Overrides:
toString in class Object

getName

public final String getName()
Returns:
Returns the name.

getProperties

public final PropertyList getProperties()
Returns:
Returns the properties.

getProperties

public final PropertyList getProperties(String name)
Convenience method for retrieving a list of named properties.

Parameters:
name - name of properties to retrieve
Returns:
a property list containing only properties with the specified name

getProperty

public final Property getProperty(String name)
Convenience method for retrieving a named property.

Parameters:
name - name of the property to retrieve
Returns:
the first matching property in the property list with the specified name

validate

public final void validate()
                    throws ValidationException
Perform validation on a component and its properties.

Throws:
ValidationException - where the component is not in a valid state

validate

public abstract void validate(boolean recurse)
                       throws ValidationException
Perform validation on a component.

Parameters:
recurse - indicates whether to validate the component's properties
Throws:
ValidationException - where the component is not in a valid state

validateProperties

protected final void validateProperties()
                                 throws ValidationException
Invoke validation on the component properties in its current state.

Throws:
ValidationException - where any of the component properties is not in a valid state

equals

public boolean equals(Object arg0)

Overrides:
equals in class Object

hashCode

public int hashCode()

Overrides:
hashCode in class Object

copy

public Component copy()
               throws ParseException,
                      IOException,
                      URISyntaxException
Create a (deep) copy of this component.

Returns:
the component copy
Throws:
IOException - where an error occurs reading the component data
ParseException - where parsing component data fails
URISyntaxException - where component data contains an invalid URI

calculateRecurrenceSet

public final PeriodList calculateRecurrenceSet(Period period)
Calculates the recurrence set for this component using the specified period. The recurrence set is derived from a combination of the component start date, recurrence rules and dates, and exception rules and dates. Note that component transparency and anniversary-style dates do not affect the resulting intersection.

If an explicit DURATION is not specified, the effective duration of each returned period is derived from the DTSTART and DTEND or DUE properties. If the component has no DURATION, DTEND or DUE, the effective duration is set to PT0S

Parameters:
period - a range to calculate recurrences for
Returns:
a list of periods


Copyright © 2004-2012 Micronode. All Rights Reserved.