Class DefaultDecorationModelInheritanceAssembler

    • 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.
      • relativizeBannerPaths

        private void relativizeBannerPaths​(Banner banner,
                                           java.lang.String baseUrl)
        Resolves all relative paths between the elements in a banner. The banner element might contain relative paths to the oldBaseUrl, these are changed to the newBannerUrl.
        Parameters:
        banner -
        baseUrl -
      • relativizeMenuPaths

        private void relativizeMenuPaths​(java.util.List<MenuItem> items,
                                         java.lang.String baseUrl)
      • relativizeLinkItemPaths

        private void relativizeLinkItemPaths​(LinkItem item,
                                             java.lang.String baseUrl)
      • relativizeLogoPaths

        private void relativizeLogoPaths​(Logo logo,
                                         java.lang.String baseUrl)
      • relativizeLink

        private java.lang.String relativizeLink​(java.lang.String link,
                                                java.lang.String baseUri)