protected function collectSingleCmsModelFromFile(SplFileInfo $file)
    {
        $info = $this->informationReader->read($file->getRealPath());

        if ( ! is_array($info)) {
            $path = basename($file->getRelativePath() ?: $file->getRealPath());
            throw new UnexpectedValueException(
                "Incorrect data from CMS model information file: '{$path}'"
            );
        }

        $info = $this->informationInterpreter->interpret($info);

        $modelClass = $this->makeModelFqnFromCmsModelPath(
            $file->getRelativePathname()
        );

        $key = $this->moduleHelper->modelInformationKeyForModel($modelClass);

        if ( ! $this->information->has($key)) {
            $this->getCore()->log('debug', "CMS model data for unset model information key '{$key}'");
            return;
        }

        /** @var ModelInformationInterface $originalInfo */
        $originalInfo = $this->information->get($key);
        $originalInfo->merge($info);

        $this->information->put($key, $originalInfo);
    }