protected function regenerateKeyCache()
    {
        if(is_array($this->__data))
        {
            $i=0;
            $this->__keycache = array();
            $this->__keycacheindex = array();
            foreach($this->__data as $key => $value)
            {
                $this->__keycache[$key] = $i;
                $this->__keycacheindex[$i] = $key;
                $i++;
            }
        }
        else
        {
            $this->__keycache = null;
            $this->__keycacheindex = null;
        }

        $this->__keycacheinvalid = false;
    }