public function getAllClassContentClassnames()
    {
        if (null === $this->contentClassnames) {
            $cacheId = md5('all_classcontents_classnames_'.$this->app->getContext().'_'.$this->app->getEnvironment());
            if (!$this->app->isDebugMode() && false !== $value = $this->cache->load($cacheId)) {
                $this->contentClassnames = json_decode($value, true);
            } else {
                $this->contentClassnames = [AbstractClassContent::CLASSCONTENT_BASE_NAMESPACE . 'ContentSet'];
                foreach ($this->app->getClassContentDir() as $directory) {
                    $this->contentClassnames = array_merge(
                            $this->contentClassnames,
                            CategoryManager::getClassContentClassnamesFromDir($directory)
                    );
                }

                $this->cache->save($cacheId, json_encode($this->contentClassnames));
            }
        }

        return $this->contentClassnames;
    }