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 classURL 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 voidassembleBodyInheritance(String name, SiteModel child, SiteModel parent, DefaultSiteModelInheritanceAssembler.URLRebaser urlContainer) private voidassembleCustomInheritance(SiteModel child, SiteModel parent) voidassembleModelInheritance(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 voidrebaseLinkItemPaths(LinkItem item, DefaultSiteModelInheritanceAssembler.URLRebaser urlContainer) private voidrebaseMenuPaths(List<MenuItem> items, DefaultSiteModelInheritanceAssembler.URLRebaser urlContainer) private StringrelativizeLink(String link, String baseUri) private voidrelativizeLinkItemPaths(LinkItem item, String baseUrl) private voidrelativizeMenuPaths(List<MenuItem> items, String baseUrl) voidresolvePaths(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:
assembleModelInheritancein 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:
resolvePathsin 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
-