Interface SitemapGenerator
-
- All Known Subinterfaces:
PageTreeSitemapGenerator
- All Known Implementing Classes:
ResourceTreeSitemapGenerator
@ConsumerType public interface SitemapGeneratorSitemapGeneratorimplementations are responsible to generate one or many sitemaps for a given sitemap rootResource. When aSitemapGeneratorgenerates multiple sitemaps for a givenResourceit has to return their names usinggetNames(Resource). Also, theSitemapGeneratormay decide that any of those names should be served on-demand by returning a subset of names forgetOnDemandNames(Resource).generate(Resource, String, Sitemap, Context)may be called for each name and each sitemap rootResource, the implementation returned an non-emptySetof 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 Classes Modifier and Type Interface Description static interfaceSitemapGenerator.ContextA context object that gives theSitemapGeneratoraccess to additional configurations and methods to track state.
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description voidgenerate(@NotNull Resource sitemapRoot, @NotNull java.lang.String name, @NotNull Sitemap sitemap, SitemapGenerator.Context context)default @NotNull java.util.Set<java.lang.String>getNames(@NotNull Resource sitemapRoot)Returns aSetof sitemap names thisSitemapGeneratorcan generate for a particular sitemap rootResource.default @NotNull java.util.Set<java.lang.String>getOnDemandNames(@NotNull Resource sitemapRoot)Implementations may return a subset of the names returned bygetNames(Resource)that should be served on-demand.
-
-
-
Method Detail
-
getNames
@NotNull default @NotNull java.util.Set<java.lang.String> getNames(@NotNull @NotNull Resource sitemapRoot)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
@NotNull default @NotNull java.util.Set<java.lang.String> getOnDemandNames(@NotNull @NotNull Resource sitemapRoot)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 java.lang.String name, @NotNull @NotNull Sitemap sitemap, @NotNull SitemapGenerator.Context context) throws SitemapExceptionGenerates 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
-
-