function setGridDataElements($data)
{
$this->callFeaturesHook('setGridDataElements', array('grid' => &$this, 'data' => &$data));
// FIXME: We go to arrays for all types of iterators because
// iterators cannot be re-used, see #6498.
if (is_array($data)) {
$this->_data = $data;
} elseif (is_a($data, 'DAOResultFactory')) {
$this->_data = $data->toAssociativeArray();
} elseif (is_a($data, 'ItemIterator')) {
$this->_data = $data->toArray();
} else {
assert(false);
}
}