all-in-one-event-calendar/lib/iCal/helper/SG_iCal_Factory.php
2017-11-09 17:36:04 +01:00

42 lines
1.6 KiB
PHP

<?php // BUILD: Remove line
/**
* A simple Factory for converting a section/data pair into the
* corrosponding block-object. If the section isn't known a simple
* ArrayObject is used instead.
*
* @package SG_iCalReader
* @author Morten Fangel (C) 2008
* @license http://creativecommons.org/licenses/by-sa/2.5/dk/deed.en_GB CC-BY-SA-DK
*/
class SG_iCal_Factory {
/**
* Returns a new block-object for the section/data-pair. The list
* of returned objects is:
*
* vcalendar => SG_iCal_VCalendar
* vtimezone => SG_iCal_VTimeZone
* vevent => SG_iCal_VEvent
* * => ArrayObject
*
* @param $ical SG_iCalReader The reader this section/data-pair belongs to
* @param $section string
* @param SG_iCal_Line[]
*/
public static function factory( SG_iCal $ical, $section, $data ) {
switch( $section ) {
case "vcalendar":
require_once dirname(__FILE__).'/../block/SG_iCal_VCalendar.php'; // BUILD: Remove line
return new SG_iCal_VCalendar(SG_iCal_Line::Remove_Line($data), $ical );
case "vtimezone":
require_once dirname(__FILE__).'/../block/SG_iCal_VTimeZone.php'; // BUILD: Remove line
return new SG_iCal_VTimeZone(SG_iCal_Line::Remove_Line($data), $ical );
case "vevent":
require_once dirname(__FILE__).'/../block/SG_iCal_VEvent.php'; // BUILD: Remove line
return new SG_iCal_VEvent($data, $ical );
default:
return new ArrayObject(SG_iCal_Line::Remove_Line((array) $data) );
}
}
}