Move the Kolab server configuration one level up as it represents a real object class.
authorGunnar Wrobel <p@rdus.de>
Wed, 22 Apr 2009 20:59:40 +0000 (22:59 +0200)
committerGunnar Wrobel <p@rdus.de>
Wed, 22 Apr 2009 20:59:40 +0000 (22:59 +0200)
framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Kolab.php [new file with mode: 0644]
framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Kolab/Server.php [deleted file]

diff --git a/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Kolab.php b/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Kolab.php
new file mode 100644 (file)
index 0000000..dab4ef8
--- /dev/null
@@ -0,0 +1,95 @@
+<?php
+/**
+ * Representation of a Kolab server object.
+ *
+ * PHP version 5
+ *
+ * @category Kolab
+ * @package  Kolab_Server
+ * @author   Gunnar Wrobel <wrobel@pardus.de>
+ * @license  http://www.fsf.org/copyleft/lgpl.html LGPL
+ * @link     http://pear.horde.org/index.php?package=Kolab_Server
+ */
+
+/**
+ * This class provides methods to deal with the Kolab server configuration
+ * object.
+ *
+ * Copyright 2008-2009 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_Server
+ * @author   Gunnar Wrobel <wrobel@pardus.de>
+ * @license  http://www.fsf.org/copyleft/lgpl.html LGPL
+ * @link     http://pear.horde.org/index.php?package=Kolab_Server
+ */
+class Horde_Kolab_Server_Object_Kolab extends Horde_Kolab_Server_Object_Groupofnames
+{
+    /** Define attributes specific to this object type */
+
+    /** The name attribute for this type of object class */
+    const ATTRIBUTE_K = 'k';
+
+    /**
+     * How many days into the past should the free/busy data on the server be
+     * calculated?
+     */
+    const ATTRIBUTE_FBPAST = 'kolabFreeBusyPast';
+
+    /** The specific object class of this object type */
+    const OBJECTCLASS_KOLAB = 'kolab';
+
+    /**
+     * A structure to initialize the attribute structure for this class.
+     *
+     * @var array
+     */
+    static public $init_attributes = array(
+        'defined' => array(
+            self::ATTRIBUTE_K,
+            self::ATTRIBUTE_FBPAST,
+        ),
+        'object_classes' => array(
+            self::OBJECTCLASS_KOLAB,
+        ),
+    );
+
+    /**
+     * Return the filter string to retrieve this object type.
+     *
+     * @static
+     *
+     * @return string The filter to retrieve this object type from the server
+     *                database.
+     */
+    public static function getFilter()
+    {
+        $criteria = array('AND' => array(
+                              array('field' => self::ATTRIBUTE_K,
+                                    'op'    => '=',
+                                    'test'  => 'kolab'),
+                              array('field' => self::ATTRIBUTE_OC,
+                                    'op'    => '=',
+                                    'test'  => self::OBJECTCLASS_KOLAB),
+                          ),
+        );
+        return $criteria;
+    }
+
+    /**
+     * Generates an ID for the given information.
+     *
+     * @param array $info The data of the object.
+     *
+     * @static
+     *
+     * @return string|PEAR_Error The ID.
+     */
+    public function generateId($info)
+    {
+        return self::ATTRIBUTE_K . '=kolab';
+    }
+}
diff --git a/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Kolab/Server.php b/framework/Kolab_Server/lib/Horde/Kolab/Server/Object/Kolab/Server.php
deleted file mode 100644 (file)
index cfe86da..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-/**
- * The server configuration.
- *
- * PHP version 5
- *
- * @category Kolab
- * @package  Kolab_Server
- * @author   Gunnar Wrobel <wrobel@pardus.de>
- * @license  http://www.fsf.org/copyleft/lgpl.html LGPL
- * @link     http://pear.horde.org/index.php?package=Kolab_Server
- */
-
-/**
- * This class provides methods to deal with Kolab server configuration.
- *
- * Copyright 2008-2009 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_Server
- * @author   Gunnar Wrobel <wrobel@pardus.de>
- * @license  http://www.fsf.org/copyleft/lgpl.html LGPL
- * @link     http://pear.horde.org/index.php?package=Kolab_Server
- */
-class Horde_Kolab_Server_Object_Kolab_Server extends Horde_Kolab_Server_Object
-{
-
-    const ATTRIBUTE_FBPAST       = 'kolabFreeBusyPast';
-
-    /**
-     * The attributes supported by this class
-     *
-     * @var array
-     */
-    public $supported_attributes = array(
-        self::ATTRIBUTE_FBPAST,
-    );
-
-    /**
-     * Return the filter string to retrieve this object type.
-     *
-     * @static
-     *
-     * @return string The filter to retrieve this object type from the server
-     *                database.
-     */
-    public static function getFilter()
-    {
-        return '(&((k=kolab))(objectclass=kolab))';
-    }
-}
\ No newline at end of file