public function extractFileAsText($disableCache = false)
    {
        /** @var File $file */
        $file = $this->owner;
        if (!$disableCache) {
            $text = $this->getTextCache()->load($file);
            if ($text) {
                return $text;
            }
        }

        // Determine which extractor can process this file.
        $extractor = FileTextExtractor::for_file($file);
        if (!$extractor) {
            return null;
        }

        $text = $extractor->getContent($file);
        if (!$text) {
            return null;
        }

        if (!$disableCache) {
            $this->getTextCache()->save($file, $text);
        }

        return $text;
    }