getIfElse abstraction
authorFlávio Gomes da Silva Lisboa <flavio.lisboa@serpro.gov.br>
Mon, 1 Oct 2012 11:10:01 +0000 (13:10 +0200)
committerLars Kneschke <l.kneschke@metaways.de>
Mon, 1 Oct 2012 11:40:20 +0000 (13:40 +0200)
Change-Id: I9e1fe5f1d87fe529ef3a0ea099a9917de5709510
Reviewed-on: https://gerrit.tine20.org/tine20/1131
Tested-by: jenkins user
Reviewed-by: Lars Kneschke <l.kneschke@metaways.de>
tine20/Tinebase/Backend/Sql/Command/Interface.php
tine20/Tinebase/Backend/Sql/Command/Mysql.php
tine20/Tinebase/Backend/Sql/Command/Oracle.php
tine20/Tinebase/Backend/Sql/Command/Pgsql.php

index 9939192..a1ad6d3 100755 (executable)
@@ -29,8 +29,17 @@ interface Tinebase_Backend_Sql_Command_Interface
       * @param mixed $returnIfFalse
       * @return string
       */
-    public function getIfIsNull($field,$returnIfTrue,$returnIfFalse);
+    public function getIfIsNull($field, $returnIfTrue, $returnIfFalse);
 
+    /**\r
+     *\r
+     * @param string $condition\r
+     * @param string $returnIfTrue\r
+     * @param string $returnIfFalse\r
+     * @return string\r
+     */\r
+    public function getIfElse($condition, $returnIfTrue, $returnIfFalse);
+    
     /**
      * @param date $date
      */
index 2f43b99..2daa5d6 100644 (file)
@@ -53,7 +53,19 @@ class Tinebase_Backend_Sql_Command_Mysql implements Tinebase_Backend_Sql_Command
         
         return new Zend_Db_Expr("(CASE WHEN $quotedField IS NULL THEN " . (string) $returnIfTrue . " ELSE " . (string) $returnIfFalse . " END)");
     }
-
+    \r
+    /**\r
+     *\r
+     * @param string $condition\r
+     * @param string $returnIfTrue\r
+     * @param string $returnIfFalse\r
+     * @return string\r
+     */\r
+    public function getIfElse($condition, $returnIfTrue, $returnIfFalse)\r
+    {\r
+        return new Zend_Db_Expr("(IF($condition, $returnIfTrue, $returnIfFalse)");\r
+    }\r
+    
     /**
      * @param string $date
      * @return string
index 1b78c1a..34e9175 100755 (executable)
@@ -54,7 +54,19 @@ class Tinebase_Backend_Sql_Command_Oracle implements Tinebase_Backend_Sql_Comman
         
         return new Zend_Db_Expr("(CASE WHEN $quotedField IS NULL THEN " . (string) $returnIfTrue . " ELSE " . (string) $returnIfFalse . " END)");
     }
-
+    
+    /**\r
+     *\r
+     * @param string $condition\r
+     * @param string $returnIfTrue\r
+     * @param string $returnIfFalse\r
+     * @return string\r
+     */\r
+    public function getIfElse($condition, $returnIfTrue, $returnIfFalse)\r
+    {\r
+        return new Zend_Db_Expr("(IF($condition, $returnIfTrue, $returnIfFalse)");\r
+    }
+    
     /**
      * @param string $date
      * @return string
index decdfec..8f35985 100755 (executable)
@@ -56,9 +56,21 @@ class Tinebase_Backend_Sql_Command_Pgsql implements Tinebase_Backend_Sql_Command
     {
         $quotedField = $this->_adapter->quoteIdentifier($field);
         
-        return new Zend_Db_Expr("(CASE WHEN $quotedField IS NULL THEN " . (string) $returnIfTrue . " ELSE " . (string) $returnIfFalse . " END)");
+        return new Zend_Db_Expr("(CASE WHEN $quotedField IS NULL THEN $returnIfTrue ELSE $returnIfFalse END)");
     }
-
+    /**\r
+     *\r
+     * @param Zend_Db_Adapter_Abstract $adapter\r
+     * @param string $condition\r
+     * @param string $returnIfTrue\r
+     * @param string $returnIfFalse\r
+     * @return string\r
+     */\r
+    public function getIfElse($condition, $returnIfTrue, $returnIfFalse)\r
+    {\r
+        return new Zend_Db_Expr("(CASE WHEN $condition THEN $returnIfTrue ELSE $returnIfFalse END)");\r
+    }
+    
     /**
      * @param string $date
      * @return string