Interface SitemapGenerator
- All Known Subinterfaces:
PageTreeSitemapGenerator
- All Known Implementing Classes:
ResourceTreeSitemapGenerator
SitemapGenerator implementations are responsible to generate one or many sitemaps for a given sitemap root
Resource. When a SitemapGenerator generates multiple sitemaps for a given Resource it has to
return their names using getNames(Resource). Also, the SitemapGenerator may decide
that any of those names should be served on-demand by returning a subset of names for
getOnDemandNames(Resource).
generate(Resource, String, Sitemap, Context) may be called for each name and
each sitemap root Resource, the implementation returned an non-empty Set of names for.
It is possible to register multiple SitemapGenerators for a single name. In this case the one with the
highest ranking according to the OSGI specification is used.
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic interfaceA context object that gives theSitemapGeneratoraccess to additional configurations and methods to track state. -
Method Summary
Modifier and TypeMethodDescriptionvoidgenerate(@NotNull Resource sitemapRoot, @NotNull String name, @NotNull Sitemap sitemap, SitemapGenerator.Context context) Returns aSetof sitemap names thisSitemapGeneratorcan generate for a particular sitemap rootResource.getOnDemandNames(@NotNull Resource sitemapRoot) Implementations may return a subset of the names returned bygetNames(Resource)that should be served on-demand.
-
Method Details
-
getNames
Returns aSetof sitemap names thisSitemapGeneratorcan generate for a particular sitemap rootResource. If the implementation does not generate a sitemap for a particular root it must return an emptySet, if it does but does not differentiate by name, it must return aSetcontaining only theSitemapService.DEFAULT_SITEMAP_NAME.The default implementation returns a
Setof onlySitemapService.DEFAULT_SITEMAP_NAME.- Returns:
- a
Setof names
-
getOnDemandNames
Implementations may return a subset of the names returned bygetNames(Resource)that should be served on-demand.The default implementation returns an empty
Set, meaning none of the names should be served on-demand.- Parameters:
sitemapRoot-- Returns:
-
generate
void generate(@NotNull @NotNull Resource sitemapRoot, @NotNull @NotNull String name, @NotNull @NotNull Sitemap sitemap, @NotNull SitemapGenerator.Context context) throws SitemapException Generates aSitemapwith the given name at the givenResource.This process may be stateful and the given
SitemapGenerator.Contextcan be used to keep track of the state. For example a traversal that keeps track on the lastResourceadded to theSitemap.- Parameters:
sitemapRoot- the root at which the sitemap should be createdname- the name, one of the names returned bygetNames(Resource)for the given sitemapRootsitemap- theSitemapobject to add locations tocontext- the context under which the sitemap is generated- Throws:
SitemapException- may be thrown in unrecoverable exceptional cases
-