public function getKeys($index = false)
    {
        $retval = null;

        if ($index === false) {
            $retval = is_array($this->list) ? array_keys($this->list) : null;
        } elseif (is_string($index) &&
            is_array($this->secondary_indexes) &&
            array_key_exists($index, $this->secondary_indexes)
        ) {
            $retval = $this->secondary_indexes[$index]->getKeys();
        } else {
            throw new ENabuCoreException(ENabuCoreException::ERROR_INVALID_INDEX, array(print_r($index, true)));
        }

        return $retval;
    }