net.fortuna.ical4j.data

## Class CalendarBuilder

- java.lang.Object
- - net.fortuna.ical4j.data.CalendarBuilder

    public class CalendarBuilder
    extends Object

Parses and builds an iCalendar model from an input stream. Note that this class is not thread-safe.

Version:
  2.0
Author:
  Ben Fortuna

       $Id$

       Created: Apr 5, 2004

### Field Summary

Fields
`protected Calendar` `calendar` The calendar instance created by the builder.
`protected Component` `component` The current component instance created by the builder.
`protected Property` `property` The current property instance created by the builder.
`protected Component` `subComponent` The current sub-component instance created by the builder.

### Constructor Summary

Constructors
Constructor and Description
`CalendarBuilder()` Default constructor.
`CalendarBuilder(CalendarParser parser)` Constructs a new calendar builder using the specified calendar parser.
`CalendarBuilder(CalendarParser parser, PropertyFactoryRegistry propertyFactoryRegistry, ParameterFactoryRegistry parameterFactoryRegistry, TimeZoneRegistry tzRegistry)`
`CalendarBuilder(CalendarParser parser, TimeZoneRegistry tzRegistry)` Constructs a new instance using the specified parser and registry.
`CalendarBuilder(TimeZoneRegistry tzRegistry)` Constructs a new calendar builder using the specified timezone registry.

### Method Summary

Methods
`Calendar` `build(InputStream in)` Builds an iCalendar model from the specified input stream.
`Calendar` `build(Reader in)` Builds an iCalendar model from the specified reader.
`Calendar` `build(UnfoldingReader uin)` Build an iCalendar model by parsing data from the specified reader.
`TimeZoneRegistry` `getRegistry()` Returns the timezone registry used in the construction of calendars.

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

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### calendar

    protected Calendar calendar

The calendar instance created by the builder.

#### component

    protected Component component

The current component instance created by the builder.

#### subComponent

    protected Component subComponent

The current sub-component instance created by the builder.

#### property

    protected Property property

The current property instance created by the builder.

### Constructor Detail

#### CalendarBuilder

    public CalendarBuilder()

Default constructor.

#### CalendarBuilder

    public CalendarBuilder(CalendarParser parser)

Constructs a new calendar builder using the specified calendar parser.

Parameters:
  `parser` - a calendar parser used to parse calendar files

#### CalendarBuilder

    public CalendarBuilder(TimeZoneRegistry tzRegistry)

Constructs a new calendar builder using the specified timezone registry.

Parameters:
  `tzRegistry` - a timezone registry to populate with discovered timezones

#### CalendarBuilder

    public CalendarBuilder(CalendarParser parser,
                   TimeZoneRegistry tzRegistry)

Constructs a new instance using the specified parser and registry.

Parameters:
  `parser` - a calendar parser used to construct the calendar
  `tzRegistry` - a timezone registry used to retrieve `TimeZone`s and register additional timezone information found in the calendar

#### CalendarBuilder

    public CalendarBuilder(CalendarParser parser,
                   PropertyFactoryRegistry propertyFactoryRegistry,
                   ParameterFactoryRegistry parameterFactoryRegistry,
                   TimeZoneRegistry tzRegistry)

Parameters:
  `parser` - a custom calendar parser
  `propertyFactoryRegistry` - registry for non-standard property factories
  `parameterFactoryRegistry` - registry for non-standard parameter factories
  `tzRegistry` - a custom timezone registry

### Method Detail

#### build

    public Calendar build(InputStream in)
                   throws IOException,
                          ParserException

Builds an iCalendar model from the specified input stream.

Parameters:
  `in` - an input stream to read calendar data from
Returns:
  a calendar parsed from the specified input stream
Throws:
  `IOException` - where an error occurs reading data from the specified stream
  `ParserException` - where an error occurs parsing data from the stream

#### build

    public Calendar build(Reader in)
                   throws IOException,
                          ParserException

Builds an iCalendar model from the specified reader. An `UnfoldingReader` is applied to the specified reader to ensure the data stream is correctly unfolded where appropriate.

Parameters:
  `in` - a reader to read calendar data from
Returns:
  a calendar parsed from the specified reader
Throws:
  `IOException` - where an error occurs reading data from the specified reader
  `ParserException` - where an error occurs parsing data from the reader

#### build

    public Calendar build(UnfoldingReader uin)
                   throws IOException,
                          ParserException

Build an iCalendar model by parsing data from the specified reader.

Parameters:
  `uin` - an unfolding reader to read data from
Returns:
  a calendar parsed from the specified reader
Throws:
  `IOException` - where an error occurs reading data from the specified reader
  `ParserException` - where an error occurs parsing data from the reader

#### getRegistry

    public final TimeZoneRegistry getRegistry()

Returns the timezone registry used in the construction of calendars.

Returns:
  a timezone registry