/**
  * Si tengo una estructura de herencia, me devuelve un mapeo de las superclases y sus subclases que se mapean en la misma tabla.
  * @param $levelOneClass es una subclase directa de PO.
  */
 public static function getMultipleTableInheritanceStructureToGenerateModel($levelOneClass)
 {
     $C = ModelUtils::getAllSubclassesOf($levelOneClass);
     $C[] = $levelOneClass;
     $struct = self::getMultipleTableInheritance($C);
     return $struct;
 }
コード例 #2
0
 /**
  * FIXME: pasarle la clase, no una instancia.
  */
 public function countBy($ins, $condition)
 {
     Logger::getInstance()->pm_log("PM::countBy");
     $objTableName = YuppConventions::tableName($ins);
     $params = array();
     // Quiero solo los registros de las subclases y ella misma.
     $class = get_class($ins);
     $scs = ModelUtils::getAllSubclassesOf($class);
     $scs[] = $class;
     // Definicion de la condicion.
     $cond_total = Condition::_AND();
     if (count($scs) == 1) {
         $cond_total->add(Condition::EQ($objTableName, "class", $scs[0]));
     } else {
         $cond = Condition::_OR();
         foreach ($scs as $subclass) {
             $cond->add(Condition::EQ($objTableName, "class", $subclass));
         }
         $cond_total->add($cond);
     }
     // FIXED: igual que en findByAttributeMatrix usada por findBy
     // Si no tiene condicion deleted, le pone deleted false.
     if ($condition == NULL || !$condition->hasCondForAttr('deleted')) {
         $cond_total->add(Condition::EQ($objTableName, "deleted", 0));
     }
     // CRITERIO DE BUSQUEDA
     if ($condition != NULL) {
         $cond_total->add($condition);
     }
     $params['where'] = $cond_total;
     return $this->dal->count($objTableName, $params);
 }