public function testGetKeyRefByRowIndexReturnsReference()
 {
     $columnIndexes = array(1, 2);
     $keyIndex = new PivotKeyIndex($this->dataTable, $columnIndexes);
     $key1 =& $keyIndex->getKeyRefByRowIndex(0);
     // US,TX
     $key2 =& $keyIndex->getKeyRefByRowIndex(3);
     // US,TX
     $this->assertSame($key1, $key2, "Expect the exact same referenced object");
 }
예제 #2
0
 public function &generateTable()
 {
     $data =& $this->pivotDescription->getDataTable();
     $rowFieldIndexes = $this->getRowFieldIndexes();
     $columnFieldIndexes = $this->getColumnFieldIndexes();
     $dataFieldIndexes = $this->getDataFieldIndexes();
     $this->table = array();
     $this->rowKeyIndex = new PivotKeyIndex($data, $rowFieldIndexes);
     $this->columnKeyIndex = new PivotKeyIndex($data, $columnFieldIndexes);
     $numRows = $data->getNumberOfRows();
     for ($ri = 0; $ri < $numRows; $ri++) {
         $row = $data->getRow($ri);
         $rowKey =& $this->rowKeyIndex->getKeyRefByRowIndex($ri);
         $rowKey->addRowIndex($ri);
         $columnKey =& $this->columnKeyIndex->getKeyRefByRowIndex($ri);
         $columnKey->addRowIndex($ri);
         foreach ($dataFieldIndexes as $columnIndex) {
             $this->accumulateData($row, $rowKey, $columnKey, $columnIndex);
         }
     }
     return $this->table;
 }