public function getTransactionFieldsValues() {
        if($this->transaction == null) {
            throw new Gpf_Exception("You have to set Transaction before getting transaction fields value!");
        }

        if (array_key_exists($this->transaction->getId(), $this->cache)) {
            return $this->cache[$this->transaction->getId()];
        }

        $fields = $this->getTransactionFields();
        $result = array();
        foreach($fields as $code => $name) {
            $result[$code] = $this->getTransactionFieldValue($code);
        }
        $this->cache[$this->transaction->getId()] = $result;
        return $result;
    }