public SiteModel getSiteModel()

in doxia-integration-tools/src/main/java/org/apache/maven/doxia/tools/DefaultSiteTool.java [378:424]


    public SiteModel getSiteModel(
            File siteDirectory,
            Locale locale,
            MavenProject project,
            List<MavenProject> reactorProjects,
            RepositorySystemSession repoSession,
            List<RemoteRepository> remoteProjectRepositories)
            throws SiteToolException {
        Objects.requireNonNull(locale, "locale cannot be null");
        Objects.requireNonNull(project, "project cannot be null");
        Objects.requireNonNull(reactorProjects, "reactorProjects cannot be null");
        Objects.requireNonNull(repoSession, "repoSession cannot be null");
        Objects.requireNonNull(remoteProjectRepositories, "remoteProjectRepositories cannot be null");

        LOGGER.debug("Computing site model of '" + project.getId() + "' for "
                + (locale.equals(SiteTool.DEFAULT_LOCALE) ? "default locale" : "locale '" + locale + "'"));

        Map.Entry<SiteModel, MavenProject> result =
                getSiteModel(0, siteDirectory, locale, project, repoSession, remoteProjectRepositories);
        SiteModel siteModel = result.getKey();
        MavenProject parentProject = result.getValue();

        if (siteModel == null) {
            LOGGER.debug("Using default site descriptor");
            siteModel = getDefaultSiteModel();
        }

        // SiteModel back to String to interpolate, then go back to SiteModel
        String siteDescriptorContent = siteModelToString(siteModel);

        // "classical" late interpolation, after full inheritance
        siteDescriptorContent = getInterpolatedSiteDescriptorContent(project, siteDescriptorContent, false);

        siteModel = readSiteModel(siteDescriptorContent, project, locale);

        if (parentProject != null) {
            populateParentMenu(siteModel, locale, project, parentProject, true);
        }

        try {
            populateModulesMenu(siteModel, locale, project, reactorProjects, true);
        } catch (IOException e) {
            throw new SiteToolException("Error while populating modules menu", e);
        }

        return siteModel;
    }