Add a Horde_Rdo_Exception class, and throw one when we can't find an entity class.
authorChuck Hagenbuch <chuck@horde.org>
Tue, 13 Oct 2009 03:07:09 +0000 (23:07 -0400)
committerChuck Hagenbuch <chuck@horde.org>
Tue, 13 Oct 2009 03:08:23 +0000 (23:08 -0400)
framework/Rdo/lib/Horde/Rdo/Base.php
framework/Rdo/lib/Horde/Rdo/Exception.php [new file with mode: 0644]
framework/Rdo/lib/Horde/Rdo/Mapper.php
framework/Rdo/package.xml

index 3d4c5c1..80e1e3f 100644 (file)
@@ -11,8 +11,8 @@
  * @category Horde
  * @package Horde_Rdo
  */
-abstract class Horde_Rdo_Base implements IteratorAggregate {
-
+abstract class Horde_Rdo_Base implements IteratorAggregate
+{
     /**
      * The Horde_Rdo_Mapper instance associated with this Rdo object. The
      * Mapper takes care of all backend access.
diff --git a/framework/Rdo/lib/Horde/Rdo/Exception.php b/framework/Rdo/lib/Horde/Rdo/Exception.php
new file mode 100644 (file)
index 0000000..ccefb09
--- /dev/null
@@ -0,0 +1,13 @@
+<?php
+/**
+ * @category Horde
+ * @package  Horde_Rdo
+ */
+
+/**
+ * @category Horde
+ * @package  Horde_Rdo
+ */
+class Horde_Rdo_Exception extends Exception
+{
+}
index f95b993..ddb9f69 100644 (file)
@@ -196,6 +196,9 @@ abstract class Horde_Rdo_Mapper implements Countable
         // Guess a classname if one isn't explicitly set.
         if (!$this->_classname) {
             $this->_classname = $this->mapperToEntity();
+            if (!$this->_classname) {
+                throw new Horde_Rdo_Exception('Unable to find an entity class (extending Horde_Rdo_Base) for ' . get_class($this));
+            }
         }
 
         $o = new $this->_classname();
index 0c77330..845b5cc 100644 (file)
@@ -36,6 +36,7 @@ http://pear.php.net/dtd/package-2.0.xsd">
        <file name="Literal.php" role="php" />
       </dir> <!-- /lib/Horde/Rdo/Query -->
       <file name="Base.php" role="php" />
+      <file name="Exception.php" role="php" />
       <file name="Iterator.php" role="php" />
       <file name="List.php" role="php" />
       <file name="Mapper.php" role="php" />
@@ -60,6 +61,7 @@ http://pear.php.net/dtd/package-2.0.xsd">
   <filelist>
    <install name="lib/Horde/Rdo/Query/Literal.php" as="Horde/Rdo/Query/Literal.php" />
    <install name="lib/Horde/Rdo/Base.php" as="Horde/Rdo/Base.php" />
+   <install name="lib/Horde/Rdo/Exception.php" as="Horde/Rdo/Exception.php" />
    <install name="lib/Horde/Rdo/Iterator.php" as="Horde/Rdo/Iterator.php" />
    <install name="lib/Horde/Rdo/List.php" as="Horde/Rdo/List.php" />
    <install name="lib/Horde/Rdo/Mapper.php" as="Horde/Rdo/Mapper.php" />