Esempio n. 1
0
  private MenuSchema serializeMenuTree(final MenuItem rootMenuItem) {
    final MenuSchema menuSchema = new MenuSchema();
    menuSchema.setDescription(rootMenuItem.getDescription());
    if (isReport(rootMenuItem) || isView(rootMenuItem) || isDashboard(rootMenuItem)) {
      menuSchema.setId(rootMenuItem.getReferencedElementId().intValue());
    } else if (rootMenuItem.getId() != null) {
      menuSchema.setId(rootMenuItem.getId().intValue());
    }
    menuSchema.setMenuType(rootMenuItem.getType().getValue().toLowerCase());

    if (isClass(rootMenuItem)
        || (isProcess(rootMenuItem) && isProcessUsable(rootMenuItem.getReferedClassName()))) {
      final CMClass menuEntryClass = dataAccessLogic.findClass(rootMenuItem.getReferedClassName());
      menuSchema.setId(menuEntryClass.getId().intValue());
      menuSchema.setDefaultToDisplay(isStartingClass(menuEntryClass));
      menuSchema.setClassname(menuEntryClass.getIdentifier().getLocalName());
      final PrivilegeType privilege = getPrivilegeFor(menuEntryClass);
      menuSchema.setPrivilege(privilege.toString());
    }

    final List<MenuSchema> children = new ArrayList<MenuSchema>();
    MenuSchema childMenuSchema = new MenuSchema();
    for (final MenuItem childMenuItem : rootMenuItem.getChildren()) {
      childMenuSchema = serializeMenuTree(childMenuItem);
      children.add(childMenuSchema);
    }

    menuSchema.setChildren(children.toArray(new MenuSchema[children.size()]));
    return menuSchema;
  }
Esempio n. 2
0
  public MenuSchema serializeVisibleClassesFromRoot(final CMClass root) {
    final MenuSchema menuSchema = new MenuSchema();
    menuSchema.setId(root.getId().intValue());
    menuSchema.setDescription(root.getDescription());
    menuSchema.setClassname(root.getIdentifier().getLocalName());
    // FIXME: add metadata serialization... wth are metadata for a class?
    setMenuTypeFromTypeAndChildren(menuSchema, false, root.isSuperclass());
    menuSchema.setPrivilege(getPrivilegeFor(root).getGrantType());
    menuSchema.setDefaultToDisplay(isStartingClass(root));

    final List<MenuSchema> children = new ArrayList<MenuSchema>();
    if (Iterables.size(root.getChildren()) > 0) {
      for (final CMClass childClass : root.getChildren()) {
        children.add(serializeVisibleClassesFromRoot(childClass));
      }
    }
    menuSchema.setChildren(children.toArray(new MenuSchema[children.size()]));
    return menuSchema;
  }