@startuml
    namespace com.hack23.cia.web.impl.ui.application.views.common.menufactory.api {

        interface ApplicationMenuItemFactory [[ApplicationMenuItemFactory.html]] {
            {abstract} +addRankingMenu(MenuBar): void
            {abstract} +createMainPageMenuBar(MenuBar): MenuBar
            {abstract} +createOverviewPage(VerticalLayout): void
        }

        interface BallotMenuItemFactory [[BallotMenuItemFactory.html]] {
            {abstract} +createBallotMenuBar(MenuBar, String): void
            {abstract} +createOverviewPage(VerticalLayout, String): void
        }

        interface UserHomeMenuItemFactory [[UserHomeMenuItemFactory.html]] {
            {abstract} +createOverviewPage(VerticalLayout): void
            {abstract} +createUserHomeMenuBar(MenuBar, String): void
        }

        interface GovernmentBodyMenuItemFactory [[GovernmentBodyMenuItemFactory.html]] {
            {abstract} +createGovernmentBodyMenuBar(MenuBar, String): void
            {abstract} +createOverviewPage(VerticalLayout, String): void
        }

        interface CountryMenuItemFactory [[CountryMenuItemFactory.html]] {
            {abstract} +createCountryTopicMenu(MenuBar): void
            {abstract} +createCountryTopicMenu(MenuItem): void
            {abstract} +createOverviewPage(VerticalLayout): void
        }

        interface MinistryMenuItemFactory [[MinistryMenuItemFactory.html]] {
            {abstract} +createMinistryMenuBar(MenuBar, String): void
            {abstract} +createOverviewPage(VerticalLayout, String): void
        }

        interface PoliticianRankingMenuItemFactory [[PoliticianRankingMenuItemFactory.html]] {
            {abstract} +createOverviewPage(VerticalLayout): void
            {abstract} +createPoliticianRankingMenuBar(MenuBar): void
            {abstract} +createPoliticianRankingTopics(MenuItem): void
        }

        interface CommitteeRankingMenuItemFactory [[CommitteeRankingMenuItemFactory.html]] {
            {abstract} +createCommitteeeRankingMenuBar(MenuBar): void
            {abstract} +createCommitteeRankingTopics(MenuItem): void
            {abstract} +createOverviewPage(VerticalLayout): void
        }

        interface MinistryRankingMenuItemFactory [[MinistryRankingMenuItemFactory.html]] {
            {abstract} +createMinistryRankingMenuBar(MenuBar): void
            {abstract} +createMinistryRankingTopics(MenuItem): void
            {abstract} +createOverviewPage(VerticalLayout): void
        }

        interface GovernmentBodyRankingMenuItemFactory [[GovernmentBodyRankingMenuItemFactory.html]] {
            {abstract} +createGovernmentBodyRankingMenuBar(MenuBar): void
            {abstract} +createGovernmentBodyRankingTopics(MenuItem): void
            {abstract} +createOverviewPage(VerticalLayout): void
        }

        interface ParliamentMenuItemFactory [[ParliamentMenuItemFactory.html]] {
            {abstract} +createOverviewPage(VerticalLayout): void
            {abstract} +createParliamentTopicMenu(MenuBar): void
            {abstract} +createParliamentTopicMenu(MenuItem): void
        }

        interface DocumentMenuItemFactory [[DocumentMenuItemFactory.html]] {
            {abstract} +createDocumentMenuBar(MenuBar, String): void
            {abstract} +createDocumentsMenuBar(MenuBar): void
            {abstract} +createOverviewPage(VerticalLayout, String): void
        }

        interface PartyRankingMenuItemFactory [[PartyRankingMenuItemFactory.html]] {
            {abstract} +createOverviewPage(VerticalLayout): void
            {abstract} +createPartyRankingMenuBar(MenuBar): void
            {abstract} +createPartyRankingTopics(MenuItem): void
        }

        interface PoliticianMenuItemFactory [[PoliticianMenuItemFactory.html]] {
            {abstract} +createOverviewPage(VerticalLayout, String): void
            {abstract} +createPoliticianMenuBar(MenuBar, String): void
        }

        interface PartyMenuItemFactory [[PartyMenuItemFactory.html]] {
            {abstract} +createOverviewPage(VerticalLayout, String): void
            {abstract} +createPartyMenuBar(MenuBar, String): void
        }

        interface CommitteeMenuItemFactory [[CommitteeMenuItemFactory.html]] {
            {abstract} +createCommitteeeMenuBar(MenuBar, String): void
            {abstract} +createOverviewPage(VerticalLayout, String): void
        }

    }

    center footer UMLDoclet 2.0.12, PlantUML 1.2020.16
@enduml
