Package org.apache.maven.doxia.site.decoration.inheritance

## Class DefaultDecorationModelInheritanceAssembler

- java.lang.Object
- - org.apache.maven.doxia.site.decoration.inheritance.DefaultDecorationModelInheritanceAssembler

All Implemented Interfaces:
  `DecorationModelInheritanceAssembler`

    @Component(role=DecorationModelInheritanceAssembler.class)
    public class DefaultDecorationModelInheritanceAssembler
    extends java.lang.Object
    implements DecorationModelInheritanceAssembler

Manage inheritance of the decoration model.

Version:
  $Id: DefaultDecorationModelInheritanceAssembler.java 1736757 2016-03-27 15:11:59Z hboutemy $
Author:
  Brett Porter, Henning P. Schmiedehausen

### Field Summary

### Fields inherited from interface org.apache.maven.doxia.site.decoration.inheritance.DecorationModelInheritanceAssembler

`ROLE`

### Constructor Summary

Constructors
`DefaultDecorationModelInheritanceAssembler()`

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `assembleModelInheritance​(java.lang.String name, DecorationModel child, DecorationModel parent, java.lang.String childBaseUrl, java.lang.String parentBaseUrl)` Manage inheritance of the decoration model between a parent and child.
`void` `resolvePaths​(DecorationModel decoration, java.lang.String baseUrl)` Resolve relative paths for a DecorationModel given a base URL.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### DefaultDecorationModelInheritanceAssembler

    public DefaultDecorationModelInheritanceAssembler()

### Method Detail

#### assembleModelInheritance

    public void assembleModelInheritance​(java.lang.String name,
                                         DecorationModel child,
                                         DecorationModel parent,
                                         java.lang.String childBaseUrl,
                                         java.lang.String parentBaseUrl)

Manage inheritance of the decoration 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 interface `DecorationModelInheritanceAssembler`
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 DecorationModel 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 DecorationModel. 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

    public void resolvePaths​(DecorationModel decoration,
                             java.lang.String baseUrl)

Resolve relative paths for a DecorationModel given a base URL. Note that 'resolve' here means 'relativize' in the sense of `URI.relativize(java.net.URI)`, ie if any link in the decoration 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 interface `DecorationModelInheritanceAssembler`
Parameters:
  `decoration` - the DecorationModel. Not null.
  `baseUrl` - the base URL. May be null in which case the decoration model is unchanged.