コード例 #1
0
 /**
  * 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;
 }