From: Gunnar Wrobel
Date: Thu, 11 Mar 2010 20:03:37 +0000 (+0100)
Subject: Add the draft of a namespace handler.
X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=0e1581c1dbe143d5e48cd968ed5431ee20b9feda;p=horde.git
Add the draft of a namespace handler.
---
diff --git a/framework/Kolab_Storage/lib/Horde/Kolab/Storage.php b/framework/Kolab_Storage/lib/Horde/Kolab/Storage.php
index 7fe5bc4b9..c682f646d 100644
--- a/framework/Kolab_Storage/lib/Horde/Kolab/Storage.php
+++ b/framework/Kolab_Storage/lib/Horde/Kolab/Storage.php
@@ -336,7 +336,10 @@ class Horde_Kolab_Storage
if (!isset($this->_folders[$folder])) {
$result = $this->getConnection($folder);
- $kf = new Horde_Kolab_Storage_Folder($result->name);
+ $kf = new Horde_Kolab_Storage_Folder(
+ $result->name,
+ $result->connection->getNamespace()
+ );
$kf->restore($this, $result->connection);
$this->_folders[$folder] = &$kf;
}
diff --git a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Imap.php b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Imap.php
index 8c1a50589..5df5796ff 100644
--- a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Imap.php
+++ b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Driver/Imap.php
@@ -52,6 +52,16 @@ class Horde_Kolab_Storage_Driver_Imap extends Horde_Kolab_Storage_Driver
}
/**
+ * Retrieve the namespace information for this connection.
+ *
+ * @return Horde_Kolab_Storage_Namespace The initialized namespace handler.
+ */
+ public function getNamespace()
+ {
+ return new Horde_Kolab_Storage_Namespace();
+ }
+
+ /**
* Retrieves a list of mailboxes on the server.
*
* @return array The list of mailboxes.
diff --git a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Folder.php b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Folder.php
index a5689ec6e..2ee2a3d1b 100644
--- a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Folder.php
+++ b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Folder.php
@@ -61,7 +61,14 @@ class Horde_Kolab_Storage_Folder
*
* @var string
*/
- var $name;
+ public $name;
+
+ /**
+ * The namespace handler for this folder
+ *
+ * @var Horde_Kolab_Storage_Namespace
+ */
+ private $_namespace;
/**
* A new folder name if the folder should be renamed on the next
@@ -166,11 +173,16 @@ class Horde_Kolab_Storage_Folder
/**
* Creates a Kolab Folder representation.
*
- * @param string $name Name of the folder
+ * @param string $name Name of the folder
+ * @param Horde_Kolab_Storage_Namespace $namespace The namespace handler for
+ * this folder.
*/
- function __construct($name = null)
- {
- $this->name = $name;
+ function __construct(
+ $name = null,
+ Horde_Kolab_Storage_Namespace $namespace
+ ) {
+ $this->name = $name;
+ $this->_namespace = $namespace;
$this->__wakeup();
}
diff --git a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Namespace.php b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Namespace.php
new file mode 100644
index 000000000..6411fc697
--- /dev/null
+++ b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Namespace.php
@@ -0,0 +1,32 @@
+
+ * @license http://www.fsf.org/copyleft/lgpl.html LGPL
+ * @link http://pear.horde.org/index.php?package=Kolab_Storage
+ */
+
+/**
+ * The Horde_Kolab_Storage_Namespace:: class handles IMAP namespaces and allows
+ * to derive folder information from folder names.
+ *
+ * Copyright 2004-2010 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (LGPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
+ *
+ * @category Kolab
+ * @package Kolab_Storage
+ * @author Gunnar Wrobel