public function testToArrayFromArray()
 {
     $select = new Kwf_Model_Select();
     $select->where(new Kwf_Model_Select_Expr_Or(array(new Kwf_Model_Select_Expr_Equals('foo', 'bar'), new Kwf_Model_Select_Expr_Not(new Kwf_Model_Select_Expr_Equals('baz', 'buz')))));
     $select->whereEquals('blub', 123);
     $ar = $select->toArray();
     $this->assertEquals(is_array($ar), true);
     $select2 = Kwf_Model_Select::fromArray($ar);
     $this->assertEquals($select, $select2);
 }
 public static function fromArray(array $data)
 {
     $cls = 'Kwf_Model_Select_Expr_' . $data['exprType'];
     $select = $data['select'] ? Kwf_Model_Select::fromArray($data['select']) : null;
     return new $cls($data['child'], Kwf_Model_Select_Expr::fromArray($data['expr']), $select);
 }
 public function callMultiple(array $call)
 {
     $ret = array();
     foreach ($call as $method => &$arguments) {
         foreach ($arguments as $k => $arg) {
             if (is_array($arg) && !empty($arg['selectObjVersion'])) {
                 $call[$method][$k] = Kwf_Model_Select::fromArray($arg);
             }
         }
         if ($method == 'export') {
             if (!isset($arguments[1])) {
                 $arguments[1] = array();
             }
             if (!isset($arguments[2])) {
                 $arguments[2] = array();
             }
             $arguments[2]['columns'] = $this->_columns;
         }
     }
     return $this->getModel()->callMultiple($call);
 }