/** * Parses a slice row or {@see cassandra_ColumnOrSuperColumn} into a plain * array of data. * * @param cassandra_ColumnOrSuperColumn $row Row to parse * @return array Parsed plain array of data */ protected function parseSliceRowX(cassandra_ColumnOrSuperColumn $row) { $result = array(); if ($row->column !== null) { $nameType = $this->getColumnNameType(); $valueType = $this->getColumnValueType($row->column->name); $name = CassandraUtil::unpack($row->column->name, $nameType); $value = CassandraUtil::unpack($row->column->value, $valueType); $result[$name] = $value; } else { if ($row->super_column !== null) { $superNameType = null; $superName = CassandraUtil::unpack($row->super_column->name, $superNameType); $values = array(); foreach ($row->super_column->columns as $column) { $nameType = $this->getColumnNameType(); $valueType = $this->getColumnValueType($column->name); $name = CassandraUtil::unpack($column->name, $nameType); $value = CassandraUtil::unpack($column->value, $valueType); $values[$name] = $value; } $result[$superName] = $values; } else { // @codeCoverageIgnoreStart throw new Exception('Expected either normal or super column'); // @codeCoverageIgnoreEnd } } return $result; }