public function fill(Gpf_Chart_Labels $labels, array $data)
 {
     foreach ($labels->getLabels() as $label) {
         if (array_key_exists($label, $data)) {
             $this->addValue((int) $data[$label]);
             continue;
         }
         $this->addValue(0);
     }
 }
    private function buildChart() {
        $chart = new Gpf_Rpc_Chart();
        $chart->setChartType($this->chartType);
        $labels = new Gpf_Chart_Labels($this->statsParameters->getDateFrom(), $this->statsParameters->getDateTo(), $this->timeGroupBy);
        $chart->setLabels($labels->getLabels());

        $computer = $this->dataType1->getComputer($this->statsParameters, $this->timeGroupBy);
        $computer->computeStats();
        $chartData = $this->createChartData($this->dataType1, $chart->getLineColor(1));
        $chartData->fill($labels, $computer->getResult());
        $chart->addData1Recordset($chartData);

        if ($this->dataType2 !== null) {
            $computer = $this->dataType2->getComputer($this->statsParameters, $this->timeGroupBy);
            $computer->computeStats();
            $chartData = $this->createChartData($this->dataType2, $chart->getLineColor(2));
            $chartData->fill($labels, $computer->getResult());
            $chart->addData2Recordset($chartData);
        }
        return $chart;
    }