@startuml
    namespace it.tidalwave.northernwind.frontend.ui.component.blog.htmltemplate {

        class HtmlTemplateBlogView [[HtmlTemplateBlogView.html]] {
            +HtmlTemplateBlogView(Id, Site)
            +setTitle(String): void
            +renderPosts(Optional<ResourcePath>, Aggregates, Aggregates, Aggregates): void
            +renderTagCloud(Optional<ResourcePath>, Aggregates): void
        }

        class HtmlTemplateBlogViewController [[HtmlTemplateBlogViewController.html]] {
            {static} +P_TEMPLATE_POSTS_PATH: Key<ResourcePath>
            {static} +P_TEMPLATE_TAG_CLOUD_PATH: Key<ResourcePath>
            +HtmlTemplateBlogViewController(SiteNode, HtmlTemplateBlogView, RequestLocaleManager)
            #renderPosts(List<Content>, List<Content>, List<Content>): void
            #renderTagCloud(Collection<TagAndCount>): void
        }

        it.tidalwave.northernwind.frontend.ui.component.htmlfragment.htmltemplate.HtmlTemplateHtmlFragmentView <|-- HtmlTemplateBlogView
        it.tidalwave.northernwind.frontend.ui.component.blog.BlogView <|.. HtmlTemplateBlogView
        it.tidalwave.northernwind.frontend.ui.component.blog.DefaultBlogViewController <|-- HtmlTemplateBlogViewController
    }

    namespace it.tidalwave.northernwind.frontend.ui.component.htmlfragment.htmltemplate {
        class HtmlTemplateHtmlFragmentView [[../../htmlfragment/htmltemplate/HtmlTemplateHtmlFragmentView.html]] {
        }
    }

    namespace it.tidalwave.northernwind.frontend.ui.component.blog {
        interface BlogView [[../BlogView.html]] {
            {abstract} +setTitle(String): void
        }
        abstract class DefaultBlogViewController [[../DefaultBlogViewController.html]] {
            {static} #DATE_KEYS: List<Key<ZonedDateTime>>
            {static} +TIME0: ZonedDateTime
            {static} +DEFAULT_TIMEZONE: String
            #title: Optional<String>
            {abstract} #renderPosts(List<Content>, List<Content>, List<Content>): void
            {abstract} #renderTagCloud(Collection<TagAndCount>): void
        }
    }

    center footer UMLDoclet 2.0.12, PlantUML 1.2020.16
@enduml
