@Override public void visit(final MenuBars.Visitor visitor) { traverseMenuBar(getPrimary(), visitor); traverseMenuBar(getSecondary(), visitor); traverseMenuBar(getTertiary(), visitor); }
public BS3MenuBar menuBarFor(final DomainServiceLayout.MenuBar menuBar) { switch (menuBar) { case PRIMARY: return getPrimary(); case SECONDARY: return getSecondary(); case TERTIARY: return getTertiary(); } return null; }
private BS3MenuBars deriveMenuBarsFromMetaModelFacets() { final BS3MenuBars menuBars = new BS3MenuBars(); append(visibleServiceAdapters, menuBars.getPrimary(), DomainServiceLayout.MenuBar.PRIMARY); append(visibleServiceAdapters, menuBars.getSecondary(), DomainServiceLayout.MenuBar.SECONDARY); append(visibleServiceAdapters, menuBars.getTertiary(), DomainServiceLayout.MenuBar.TERTIARY); menuBars.setTnsAndSchemaLocation(tnsAndSchemaLocation()); menuBars.getPrimary().getMenus().add(otherMenu);
@Test public void happyCase() throws Exception { // given BS3MenuBars menuBars = new BS3MenuBars(); BS3Menu menu = new BS3Menu(); menu.setNamed("Parties"); BS3MenuSection organisationMenu = new BS3MenuSection(); organisationMenu.getServiceActions().add(new ServiceActionLayoutData("parties.OrganisationMenu", "findByReference")); organisationMenu.getServiceActions().add(new ServiceActionLayoutData("parties.OrganisationMenu", "findByName")); organisationMenu.getServiceActions().add(new ServiceActionLayoutData("parties.OrganisationMenu", "create")); menu.getSections().add(organisationMenu); BS3MenuSection personMenu = new BS3MenuSection(); personMenu.getServiceActions().add(new ServiceActionLayoutData("parties.PersonMenu", "findByUsername")); personMenu.getServiceActions().add(new ServiceActionLayoutData("parties.PersonMenu", "create")); menu.getSections().add(personMenu); menuBars.getPrimary().getMenus().add(menu); // when String xml = jaxbService.toXml(menuBars); System.out.println(xml); // when BS3MenuBars menuBars2 = jaxbService.fromXml(BS3MenuBars.class, xml); // then String xml2 = jaxbService.toXml(menuBars2); assertThat(xml, is(equalTo(xml2))); }
menuBars.setTnsAndSchemaLocation(tnsAndSchemaLocation()); menuBars.getAllServiceActionsByObjectTypeAndId(); fallbackMenuBars.visit(new BS3MenuBars.VisitorAdapter(){
BS3Menu validate(final BS3MenuBars menuBars) { if (menuBars == null) { return null; } final List<BS3Menu> menusWithUnreferencedActionsFlagSet = Lists.newArrayList(); menuBars.visit(new BS3MenuBars.VisitorAdapter(){ @Override public void visit(final BS3Menu menu) { if(isSet(menu.isUnreferencedActions())) { menusWithUnreferencedActionsFlagSet.add(menu); } } private Boolean isSet(final Boolean flag) { return flag != null && flag; } }); final int size = menusWithUnreferencedActionsFlagSet.size(); if (size == 1) { return menusWithUnreferencedActionsFlagSet.get(0); } menuBars.setMetadataError( "Exactly one menu must have 'unreferencedActions' flag set; found " + size + " such menus"); if(!deploymentCategoryProvider.getDeploymentCategory().isProduction()) { messageService.warnUser("Menubars metadata errors; check the error log"); } LOG.error("Menubar layout metadata errors:\n\n{}\n\n", jaxbService.toXml(menuBars)); return null; }
private void traverseMenuBar(final BS3MenuBar menuBar, final MenuBars.Visitor visitor) { final Visitor bs3Visitor = visitor instanceof Visitor ? (Visitor) visitor : null; if(bs3Visitor != null) { bs3Visitor.preVisit(menuBar); bs3Visitor.visit(menuBar); } for (BS3Menu menu : menuBar.getMenus()) { traverseMenu(menu, visitor); } if(bs3Visitor != null) { bs3Visitor.postVisit(menuBar); } }