Class DefaultSiteModelInheritanceAssembler
java.lang.Object
org.apache.maven.doxia.site.inheritance.DefaultSiteModelInheritanceAssembler
- All Implemented Interfaces:
SiteModelInheritanceAssembler
@Singleton
@Named
public class DefaultSiteModelInheritanceAssembler
extends Object
implements SiteModelInheritanceAssembler
Manage inheritance of the site model.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static class
URL rebaser: based on an old and a new path, can rebase a link based on old path to a value based on the new path. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate void
assembleBodyInheritance
(String name, SiteModel child, SiteModel parent, DefaultSiteModelInheritanceAssembler.URLRebaser urlContainer) private void
assembleCustomInheritance
(SiteModel child, SiteModel parent) void
assembleModelInheritance
(String name, SiteModel child, SiteModel parent, String childBaseUrl, String parentBaseUrl) Manage inheritance of the site model between a parent and child.mergeLinkItemLists
(List<LinkItem> childList, List<LinkItem> parentList, DefaultSiteModelInheritanceAssembler.URLRebaser urlContainer, boolean cutParentAfterDuplicate) mergeMenus
(List<Menu> childMenus, List<Menu> parentMenus, DefaultSiteModelInheritanceAssembler.URLRebaser urlContainer) mergePoweredByLists
(List<Logo> childList, List<Logo> parentList, DefaultSiteModelInheritanceAssembler.URLRebaser urlContainer) private void
rebaseLinkItemPaths
(LinkItem item, DefaultSiteModelInheritanceAssembler.URLRebaser urlContainer) private void
rebaseMenuPaths
(List<MenuItem> items, DefaultSiteModelInheritanceAssembler.URLRebaser urlContainer) private String
relativizeLink
(String link, String baseUri) private void
relativizeLinkItemPaths
(LinkItem item, String baseUrl) private void
relativizeMenuPaths
(List<MenuItem> items, String baseUrl) void
resolvePaths
(SiteModel siteModel, String baseUrl) Resolve relative paths for a SiteModel given a base URL.
-
Constructor Details
-
DefaultSiteModelInheritanceAssembler
public DefaultSiteModelInheritanceAssembler()
-
-
Method Details
-
assembleModelInheritance
public void assembleModelInheritance(String name, SiteModel child, SiteModel parent, String childBaseUrl, String parentBaseUrl) Manage inheritance of the site model between a parent and child. Any relative links in the parent model will be re-based to work from the merged child model, otherwise no content from either the parent or child model should be modified.- Specified by:
assembleModelInheritance
in interfaceSiteModelInheritanceAssembler
- Parameters:
name
- a name, used for breadcrumb. If the parent model contains breadcrumbs and the child doesn't, a child breadcrumb will be added to the merged model with this name. Not null.child
- the child SiteModel to be merged with parent. Not null. If parent == null, the child is unchanged, otherwise child will contain the merged model upon exit.parent
- the parent SiteModel. Unchanged upon exit. May be null in which case the child is not changed.childBaseUrl
- the child base URL. May be null, in which case relative links inherited from the parent will not be resolved in the merged child.parentBaseUrl
- the parent base URL. May be null, in which case relative links inherited from the parent will not be resolved in the merged child.
-
resolvePaths
Resolve relative paths for a SiteModel given a base URL. Note that 'resolve' here means 'relativize' in the sense ofURI.relativize(java.net.URI)
, ie if any link in the site model has a base URL that is equal to the given baseUrl, it is replaced by a relative link with respect to that base.- Specified by:
resolvePaths
in interfaceSiteModelInheritanceAssembler
- Parameters:
siteModel
- the SiteModel. Not null.baseUrl
- the base URL. May be null in which case the site model is unchanged.
-
assembleCustomInheritance
-
assembleBodyInheritance
private void assembleBodyInheritance(String name, SiteModel child, SiteModel parent, DefaultSiteModelInheritanceAssembler.URLRebaser urlContainer) -
mergeMenus
-
relativizeMenuPaths
-
rebaseMenuPaths
private void rebaseMenuPaths(List<MenuItem> items, DefaultSiteModelInheritanceAssembler.URLRebaser urlContainer) -
relativizeLinkItemPaths
-
rebaseLinkItemPaths
private void rebaseLinkItemPaths(LinkItem item, DefaultSiteModelInheritanceAssembler.URLRebaser urlContainer) -
mergeLinkItemLists
-
mergePoweredByLists
-
relativizeLink
-