protected function _getComponentsFromRow($row, $select)
    {
        $idColumn = $this->_getGenerator()->getIdColumn();
        if ($this->_getGenerator()->hasSetting('dbIdShortcut') && $this->_getGenerator()->getSetting('dbIdShortcut')) {
            $dbId = $this->_getGenerator()->getSetting('dbIdShortcut') .
                $row->$idColumn;
            $ret = Kwf_Component_Data_Root::getInstance()->getComponentsByDbId($dbId, $select);
        } else if ($row->getModel()->hasColumn('component_id')) {
            $dbId = $row->component_id .
                $this->_getGenerator()->getIdSeparator() .
                $row->$idColumn;
            $ret = Kwf_Component_Data_Root::getInstance()->getComponentsByDbId($dbId, $select);
        } else {
            $cls = $this->_getClassFromRowFromGenerator($row);
            $select['id'] = $this->_getGenerator()->getIdSeparator().$row->$idColumn;
            $ret = Kwf_Component_Data_Root::getInstance()
                ->getComponentsBySameClass($cls, $select);
        }
        foreach ($ret as $k=>$i) {
            if ($i->generator !== $this->_getGenerator()) {
                unset($ret[$k]);
            }
        }
        return array_values($ret);
    }