summaryrefslogtreecommitdiffstats
path: root/3rdparty/Sabre/VObject/Reader.php
diff options
context:
space:
mode:
authorGeorg Ehrke <dev@georgswebsite.de>2012-04-21 23:23:46 +0200
committerGeorg Ehrke <dev@georgswebsite.de>2012-04-21 23:23:46 +0200
commita0a80e74c2b7ba32cd6e8a57dcfba6bcadab3053 (patch)
treeda54420054dcbd6cfe08c88d981f7d86dcc2a51d /3rdparty/Sabre/VObject/Reader.php
parent0918fc7d9156f3846a19b673db5b01422a59c506 (diff)
downloadnextcloud-server-a0a80e74c2b7ba32cd6e8a57dcfba6bcadab3053.tar.gz
nextcloud-server-a0a80e74c2b7ba32cd6e8a57dcfba6bcadab3053.zip
remove old sabredav files
Diffstat (limited to '3rdparty/Sabre/VObject/Reader.php')
-rw-r--r--3rdparty/Sabre/VObject/Reader.php191
1 files changed, 0 insertions, 191 deletions
diff --git a/3rdparty/Sabre/VObject/Reader.php b/3rdparty/Sabre/VObject/Reader.php
deleted file mode 100644
index 7d1c282838e..00000000000
--- a/3rdparty/Sabre/VObject/Reader.php
+++ /dev/null
@@ -1,191 +0,0 @@
-<?php
-
-/**
- * VCALENDAR/VCARD reader
- *
- * This class reads the vobject file, and returns a full element tree.
- *
- *
- * TODO: this class currently completely works 'statically'. This is pointless,
- * and defeats OOP principals. Needs refaxtoring in a future version.
- *
- * @package Sabre
- * @subpackage VObject
- * @copyright Copyright (C) 2007-2011 Rooftop Solutions. All rights reserved.
- * @author Evert Pot (http://www.rooftopsolutions.nl/)
- * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License
- */
-class Sabre_VObject_Reader {
-
- /**
- * This array contains a list of Property names that are automatically
- * mapped to specific class names.
- *
- * Adding to this list allows you to specify custom property classes,
- * adding extra functionality.
- *
- * @var array
- */
- static public $elementMap = array(
- 'DTSTART' => 'Sabre_VObject_Element_DateTime',
- 'DTEND' => 'Sabre_VObject_Element_DateTime',
- 'COMPLETED' => 'Sabre_VObject_Element_DateTime',
- 'DUE' => 'Sabre_VObject_Element_DateTime',
- 'EXDATE' => 'Sabre_VObject_Element_MultiDateTime',
- );
-
- /**
- * Parses the file and returns the top component
- *
- * @param string $data
- * @return Sabre_VObject_Element
- */
- static function read($data) {
-
- // Normalizing newlines
- $data = str_replace(array("\r","\n\n"), array("\n","\n"), $data);
-
- $lines = explode("\n", $data);
-
- // Unfolding lines
- $lines2 = array();
- foreach($lines as $line) {
-
- // Skipping empty lines
- if (!$line) continue;
-
- if ($line[0]===" " || $line[0]==="\t") {
- $lines2[count($lines2)-1].=substr($line,1);
- } else {
- $lines2[] = $line;
- }
-
- }
-
- unset($lines);
-
- reset($lines2);
-
- return self::readLine($lines2);
-
- }
-
- /**
- * Reads and parses a single line.
- *
- * This method receives the full array of lines. The array pointer is used
- * to traverse.
- *
- * @param array $lines
- * @return Sabre_VObject_Element
- */
- static private function readLine(&$lines) {
-
- $line = current($lines);
- $lineNr = key($lines);
- next($lines);
-
- // Components
- if (stripos($line,"BEGIN:")===0) {
-
- // This is a component
- $obj = new Sabre_VObject_Component(strtoupper(substr($line,6)));
-
- $nextLine = current($lines);
-
- while(stripos($nextLine,"END:")!==0) {
-
- $obj->add(self::readLine($lines));
- $nextLine = current($lines);
-
- if ($nextLine===false)
- throw new Sabre_VObject_ParseException('Invalid VObject. Document ended prematurely.');
-
- }
-
- // Checking component name of the 'END:' line.
- if (substr($nextLine,4)!==$obj->name) {
- throw new Sabre_VObject_ParseException('Invalid VObject, expected: "END:' . $obj->name . '" got: "' . $nextLine . '"');
- }
- next($lines);
-
- return $obj;
-
- }
-
- // Properties
- //$result = preg_match('/(?P<name>[A-Z0-9-]+)(?:;(?P<parameters>^(?<!:):))(.*)$/',$line,$matches);
-
-
- $token = '[A-Z0-9-\/\.]+';
- $parameters = "(?:;(?P<parameters>([^:^\"]|\"([^\"]*)\")*))?";
- $regex = "/^(?P<name>$token)$parameters:(?P<value>.*)$/i";
-
- $result = preg_match($regex,$line,$matches);
-
- if (!$result) {
- throw new Sabre_VObject_ParseException('Invalid VObject, line ' . ($lineNr+1) . ' did not follow the icalendar/vcard format');
- }
-
- $propertyName = strtoupper($matches['name']);
- $propertyValue = stripcslashes($matches['value']);
-
- if (isset(self::$elementMap[$propertyName])) {
- $className = self::$elementMap[$propertyName];
- } else {
- $className = 'Sabre_VObject_Property';
- }
-
- $obj = new $className($propertyName, $propertyValue);
-
- if ($matches['parameters']) {
-
- foreach(self::readParameters($matches['parameters']) as $param) {
- $obj->add($param);
- }
- }
-
- return $obj;
-
-
- }
-
- /**
- * Reads a parameter list from a property
- *
- * This method returns an array of Sabre_VObject_Parameter
- *
- * @param string $parameters
- * @return array
- */
- static private function readParameters($parameters) {
-
- $token = '[A-Z0-9-]+';
-
- $paramValue = '(?P<paramValue>[^\"^;]*|"[^"]*")';
-
- $regex = "/(?<=^|;)(?P<paramName>$token)(=$paramValue(?=$|;))?/i";
- preg_match_all($regex, $parameters, $matches, PREG_SET_ORDER);
-
- $params = array();
- foreach($matches as $match) {
-
- $value = isset($match['paramValue'])?$match['paramValue']:null;
-
- if (isset($value[0])) {
- // Stripping quotes, if needed
- if ($value[0] === '"') $value = substr($value,1,strlen($value)-2);
- } else {
- $value = '';
- }
-
- $params[] = new Sabre_VObject_Parameter($match['paramName'], stripcslashes($value));
-
- }
-
- return $params;
-
- }
-
-
-}