//# 0 errors, 209 messages
//#
/*
    //#MenuModel.java:1:1: class: org.apache.roller.weblogger.ui.rendering.model.MenuModel
 * Licensed to the Apache Software Foundation (ASF) under one or more
 *  contributor license agreements.  The ASF licenses this file to You
 * under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.  For additional information regarding
 * copyright in this work, please see the NOTICE file in the top level
 * directory of this distribution.
 */

package org.apache.roller.weblogger.ui.rendering.model;

import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.roller.weblogger.WebloggerException;
import org.apache.roller.weblogger.ui.core.util.menu.Menu;
import org.apache.roller.weblogger.ui.core.util.menu.MenuHelper;
import org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest;
import org.apache.roller.weblogger.ui.rendering.util.WeblogRequest;


/**
 * Model which provides methods for displaying editor menu/navigation-bar.
 * 
 * Implemented by calling hybrid JSP tag.
 */
public class MenuModel implements Model {
    //#MenuModel.java:36: method: void org.apache.roller.weblogger.ui.rendering.model.MenuModel.org.apache.roller.weblogger.ui.rendering.model.MenuModel()
    //#input(void org.apache.roller.weblogger.ui.rendering.model.MenuModel()): this
    //#output(void org.apache.roller.weblogger.ui.rendering.model.MenuModel()): this.pageRequest
    //#post(void org.apache.roller.weblogger.ui.rendering.model.MenuModel()): this.pageRequest == null
    
    private static Log logger = LogFactory.getLog(MenuModel.class);
    //#MenuModel.java:38: method: org.apache.roller.weblogger.ui.rendering.model.MenuModel.org.apache.roller.weblogger.ui.rendering.model.MenuModel__static_init
    //#MenuModel.java:38: Warning: method not available
    //#    -- call on Log org.apache.commons.logging.LogFactory:getLog(Class)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.MenuModel
    //#    method: org.apache.roller.weblogger.ui.rendering.model.MenuModel__static_init
    //#    unanalyzed callee: Log org.apache.commons.logging.LogFactory:getLog(Class)
    //#output(org.apache.roller.weblogger.ui.rendering.model.MenuModel__static_init): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/MenuModel]
    //#output(org.apache.roller.weblogger.ui.rendering.model.MenuModel__static_init): __Dispatch_Table.getAdminMenu()Lorg/apache/roller/weblogger/ui/core/util/menu/Menu;
    //#output(org.apache.roller.weblogger.ui.rendering.model.MenuModel__static_init): __Dispatch_Table.getAuthorMenu()Lorg/apache/roller/weblogger/ui/core/util/menu/Menu;
    //#output(org.apache.roller.weblogger.ui.rendering.model.MenuModel__static_init): __Dispatch_Table.getModelName()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.MenuModel__static_init): __Dispatch_Table.init(Ljava/util/Map;)V
    //#output(org.apache.roller.weblogger.ui.rendering.model.MenuModel__static_init): logger
    //#output(org.apache.roller.weblogger.ui.rendering.model.MenuModel__static_init): org/apache/roller/weblogger/ui/rendering/model/Model.__Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/MenuModel]
    //#post(org.apache.roller.weblogger.ui.rendering.model.MenuModel__static_init): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/MenuModel] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.ui.rendering.model.MenuModel__static_init): org/apache/roller/weblogger/ui/rendering/model/Model.__Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/MenuModel] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.ui.rendering.model.MenuModel__static_init): __Dispatch_Table.getAdminMenu()Lorg/apache/roller/weblogger/ui/core/util/menu/Menu; == &getAdminMenu
    //#post(org.apache.roller.weblogger.ui.rendering.model.MenuModel__static_init): __Dispatch_Table.getAuthorMenu()Lorg/apache/roller/weblogger/ui/core/util/menu/Menu; == &getAuthorMenu
    //#post(org.apache.roller.weblogger.ui.rendering.model.MenuModel__static_init): __Dispatch_Table.getModelName()Ljava/lang/String; == &getModelName
    //#post(org.apache.roller.weblogger.ui.rendering.model.MenuModel__static_init): __Dispatch_Table.init(Ljava/util/Map;)V == &init
    //#post(org.apache.roller.weblogger.ui.rendering.model.MenuModel__static_init): init'ed(logger)
    //#MenuModel.java:38: end of method: org.apache.roller.weblogger.ui.rendering.model.MenuModel.org.apache.roller.weblogger.ui.rendering.model.MenuModel__static_init
    
    private WeblogPageRequest pageRequest = null;
    //#MenuModel.java:40: end of method: void org.apache.roller.weblogger.ui.rendering.model.MenuModel.org.apache.roller.weblogger.ui.rendering.model.MenuModel()
    
    
    /** Template context name to be used for model */
    public String getModelName() {
        return "menuModel";
    //#MenuModel.java:45: method: String org.apache.roller.weblogger.ui.rendering.model.MenuModel.getModelName()
    //#output(String getModelName()): return_value
    //#post(String getModelName()): return_value == &"menuModel"
    //#MenuModel.java:45: end of method: String org.apache.roller.weblogger.ui.rendering.model.MenuModel.getModelName()
    }
    
    
    /** Init page model based on request */
    public void init(Map initData) throws WebloggerException {
        
        // we expect the init data to contain a weblogRequest object
        WeblogRequest weblogRequest = (WeblogRequest) initData.get("parsedRequest");
    //#MenuModel.java:53: method: void org.apache.roller.weblogger.ui.rendering.model.MenuModel.init(Map)
    //#input(void init(Map)): initData
    //#input(void init(Map)): this
    //#output(void init(Map)): this.pageRequest
    //#pre[1] (void init(Map)): initData != null
    //#presumption(void init(Map)): java.util.Map:get(...)@53 != null
    //#presumption(void init(Map)): org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest:instanceof(...)@60 == 1
    //#post(void init(Map)): (soft) this.pageRequest != null
        if(weblogRequest == null) {
            throw new WebloggerException("expected weblogRequest from init data");
        }
        
        // MenuModel only works on page requests, so cast weblogRequest
        // into a WeblogPageRequest and if it fails then throw exception
        if(weblogRequest instanceof WeblogPageRequest) {
            this.pageRequest = (WeblogPageRequest) weblogRequest;
        } else {
            throw new WebloggerException("weblogRequest is not a WeblogPageRequest."+
                    "  MenuModel only supports page requests.");
        }
    }
    //#MenuModel.java:66: end of method: void org.apache.roller.weblogger.ui.rendering.model.MenuModel.init(Map)
    
    
    /**
     * Get a Menu representing the admin UI action menu, if the user is 
     * currently logged in and is an admin.
     */
    public Menu getAdminMenu() {
        if(pageRequest.isLoggedIn() && pageRequest.getUser().hasRole("admin")) {
    //#MenuModel.java:74: method: Menu org.apache.roller.weblogger.ui.rendering.model.MenuModel.getAdminMenu()
    //#MenuModel.java:74: Warning: method not available
    //#    -- call on bool org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest:isLoggedIn()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.MenuModel
    //#    method: Menu getAdminMenu()
    //#    unanalyzed callee: bool org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest:isLoggedIn()
    //#MenuModel.java:74: Warning: method not available
    //#    -- call on User org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest:getUser()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.MenuModel
    //#    method: Menu getAdminMenu()
    //#    unanalyzed callee: User org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest:getUser()
    //#MenuModel.java:74: Warning: method not available
    //#    -- call on bool org.apache.roller.weblogger.pojos.User:hasRole(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.MenuModel
    //#    method: Menu getAdminMenu()
    //#    unanalyzed callee: bool org.apache.roller.weblogger.pojos.User:hasRole(String)
    //#input(Menu getAdminMenu()): "config tab = "._tainted
    //#input(Menu getAdminMenu()): "config tab item = "._tainted
    //#input(Menu getAdminMenu()): "creating menu for action - "._tainted
    //#input(Menu getAdminMenu()): "noAction"._tainted
    //#input(Menu getAdminMenu()): "tab allowed - "._tainted
    //#input(Menu getAdminMenu()): "tab item allowed - "._tainted
    //#input(Menu getAdminMenu()): org/apache/roller/weblogger/ui/core/util/menu/Menu.__Descendant_Table[org/apache/roller/weblogger/ui/core/util/menu/Menu]
    //#input(Menu getAdminMenu()): org/apache/roller/weblogger/ui/core/util/menu/Menu.__Dispatch_Table.addTab(Lorg/apache/roller/weblogger/ui/core/util/menu/MenuTab;)V
    //#input(Menu getAdminMenu()): org/apache/roller/weblogger/ui/core/util/menu/MenuHelper.log
    //#input(Menu getAdminMenu()): org/apache/roller/weblogger/ui/core/util/menu/MenuHelper.menus
    //#input(Menu getAdminMenu()): org/apache/roller/weblogger/ui/core/util/menu/MenuHelper.org.apache.roller.weblogger.pojos.WeblogPermission.ADMIN
    //#input(Menu getAdminMenu()): org/apache/roller/weblogger/ui/core/util/menu/MenuHelper.org.apache.roller.weblogger.pojos.WeblogPermission.AUTHOR
    //#input(Menu getAdminMenu()): org/apache/roller/weblogger/ui/core/util/menu/MenuHelper.org.apache.roller.weblogger.pojos.WeblogPermission.LIMITED
    //#input(Menu getAdminMenu()): org/apache/roller/weblogger/ui/core/util/menu/MenuTab.__Descendant_Table[org/apache/roller/weblogger/ui/core/util/menu/MenuTab]
    //#input(Menu getAdminMenu()): org/apache/roller/weblogger/ui/core/util/menu/MenuTab.__Dispatch_Table.addItem(Lorg/apache/roller/weblogger/ui/core/util/menu/MenuTabItem;)V
    //#input(Menu getAdminMenu()): org/apache/roller/weblogger/ui/core/util/menu/MenuTab.__Dispatch_Table.setAction(Ljava/lang/String;)V
    //#input(Menu getAdminMenu()): org/apache/roller/weblogger/ui/core/util/menu/MenuTab.__Dispatch_Table.setKey(Ljava/lang/String;)V
    //#input(Menu getAdminMenu()): org/apache/roller/weblogger/ui/core/util/menu/MenuTab.__Dispatch_Table.setSelected(Z)V
    //#input(Menu getAdminMenu()): org/apache/roller/weblogger/ui/core/util/menu/MenuTabItem.__Descendant_Table[org/apache/roller/weblogger/ui/core/util/menu/MenuTabItem]
    //#input(Menu getAdminMenu()): org/apache/roller/weblogger/ui/core/util/menu/MenuTabItem.__Dispatch_Table.getAction()Ljava/lang/String;
    //#input(Menu getAdminMenu()): org/apache/roller/weblogger/ui/core/util/menu/MenuTabItem.__Dispatch_Table.setAction(Ljava/lang/String;)V
    //#input(Menu getAdminMenu()): org/apache/roller/weblogger/ui/core/util/menu/MenuTabItem.__Dispatch_Table.setKey(Ljava/lang/String;)V
    //#input(Menu getAdminMenu()): org/apache/roller/weblogger/ui/core/util/menu/MenuTabItem.__Dispatch_Table.setSelected(Z)V
    //#input(Menu getAdminMenu()): org/apache/roller/weblogger/ui/core/util/menu/ParsedMenu.__Descendant_Table[org/apache/roller/weblogger/ui/core/util/menu/ParsedMenu]
    //#input(Menu getAdminMenu()): org/apache/roller/weblogger/ui/core/util/menu/ParsedMenu.__Descendant_Table[others]
    //#input(Menu getAdminMenu()): org/apache/roller/weblogger/ui/core/util/menu/ParsedMenu.__Dispatch_Table.getTabs()Ljava/util/List;
    //#input(Menu getAdminMenu()): org/apache/roller/weblogger/ui/core/util/menu/ParsedTab.__Descendant_Table[org/apache/roller/weblogger/ui/core/util/menu/ParsedTab]
    //#input(Menu getAdminMenu()): org/apache/roller/weblogger/ui/core/util/menu/ParsedTab.__Descendant_Table[others]
    //#input(Menu getAdminMenu()): org/apache/roller/weblogger/ui/core/util/menu/ParsedTab.__Dispatch_Table.getDisabledProperty()Ljava/lang/String;
    //#input(Menu getAdminMenu()): org/apache/roller/weblogger/ui/core/util/menu/ParsedTab.__Dispatch_Table.getEnabledProperty()Ljava/lang/String;
    //#input(Menu getAdminMenu()): org/apache/roller/weblogger/ui/core/util/menu/ParsedTab.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(Menu getAdminMenu()): org/apache/roller/weblogger/ui/core/util/menu/ParsedTab.__Dispatch_Table.getPerm()Ljava/lang/String;
    //#input(Menu getAdminMenu()): org/apache/roller/weblogger/ui/core/util/menu/ParsedTab.__Dispatch_Table.getRole()Ljava/lang/String;
    //#input(Menu getAdminMenu()): org/apache/roller/weblogger/ui/core/util/menu/ParsedTab.__Dispatch_Table.getTabItems()Ljava/util/List;
    //#input(Menu getAdminMenu()): org/apache/roller/weblogger/ui/core/util/menu/ParsedTabItem.__Descendant_Table[org/apache/roller/weblogger/ui/core/util/menu/ParsedTabItem]
    //#input(Menu getAdminMenu()): org/apache/roller/weblogger/ui/core/util/menu/ParsedTabItem.__Descendant_Table[others]
    //#input(Menu getAdminMenu()): org/apache/roller/weblogger/ui/core/util/menu/ParsedTabItem.__Dispatch_Table.getAction()Ljava/lang/String;
    //#input(Menu getAdminMenu()): org/apache/roller/weblogger/ui/core/util/menu/ParsedTabItem.__Dispatch_Table.getDisabledProperty()Ljava/lang/String;
    //#input(Menu getAdminMenu()): org/apache/roller/weblogger/ui/core/util/menu/ParsedTabItem.__Dispatch_Table.getEnabledProperty()Ljava/lang/String;
    //#input(Menu getAdminMenu()): org/apache/roller/weblogger/ui/core/util/menu/ParsedTabItem.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(Menu getAdminMenu()): org/apache/roller/weblogger/ui/core/util/menu/ParsedTabItem.__Dispatch_Table.getPerm()Ljava/lang/String;
    //#input(Menu getAdminMenu()): org/apache/roller/weblogger/ui/core/util/menu/ParsedTabItem.__Dispatch_Table.getRole()Ljava/lang/String;
    //#input(Menu getAdminMenu()): org/apache/roller/weblogger/ui/core/util/menu/ParsedTabItem.__Dispatch_Table.getSubActions()[Ljava/lang/String;
    //#input(Menu getAdminMenu()): this
    //#input(Menu getAdminMenu()): this.pageRequest
    //#output(Menu getAdminMenu()): new ArrayList(Menu#1) num objects
    //#output(Menu getAdminMenu()): new Menu(buildMenu#2) num objects
    //#output(Menu getAdminMenu()): new Menu(buildMenu#2).__Tag
    //#output(Menu getAdminMenu()): new Menu(buildMenu#2).tabs
    //#output(Menu getAdminMenu()): return_value
    //#new obj(Menu getAdminMenu()): new ArrayList(Menu#1)
    //#new obj(Menu getAdminMenu()): new Menu(buildMenu#2)
    //#pre[4] (Menu getAdminMenu()): this.pageRequest != null
    //#pre[1] (Menu getAdminMenu()): (soft) org/apache/roller/weblogger/ui/core/util/menu/MenuHelper.log != null
    //#pre[2] (Menu getAdminMenu()): (soft) org/apache/roller/weblogger/ui/core/util/menu/MenuHelper.menus != null
    //#presumption(Menu getAdminMenu()): org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest:getUser(...)@74 != null
    //#presumption(Menu getAdminMenu()): org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest:getUser(...)@75 != null
    //#presumption(Menu getAdminMenu()): org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest:getWeblog(...)@75 != null
    //#post(Menu getAdminMenu()): return_value in Addr_Set{null,&new Menu(buildMenu#2)}
    //#post(Menu getAdminMenu()): new ArrayList(Menu#1) num objects <= 1
    //#post(Menu getAdminMenu()): new Menu(buildMenu#2) num objects <= 1
    //#post(Menu getAdminMenu()): new Menu(buildMenu#2).__Tag == org/apache/roller/weblogger/ui/core/util/menu/Menu
    //#post(Menu getAdminMenu()): new Menu(buildMenu#2).tabs == &new ArrayList(Menu#1)
    //#unanalyzed(Menu getAdminMenu()): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(Menu getAdminMenu()): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(Menu getAdminMenu()): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(Menu getAdminMenu()): Effects-of-calling:org.apache.roller.weblogger.config.WebloggerRuntimeConfig:getProperty
    //#unanalyzed(Menu getAdminMenu()): Effects-of-calling:org.apache.roller.weblogger.config.WebloggerRuntimeConfig:getBooleanProperty
    //#unanalyzed(Menu getAdminMenu()): Effects-of-calling:org.apache.roller.weblogger.config.WebloggerConfig:getBooleanProperty
    //#unanalyzed(Menu getAdminMenu()): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(Menu getAdminMenu()): Effects-of-calling:org.apache.roller.weblogger.pojos.Weblog:hasUserPermissions
    //#unanalyzed(Menu getAdminMenu()): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(Menu getAdminMenu()): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(Menu getAdminMenu()): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(Menu getAdminMenu()): Effects-of-calling:org.apache.commons.logging.Log:debug
    //#unanalyzed(Menu getAdminMenu()): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(Menu getAdminMenu()): Effects-of-calling:org.apache.roller.weblogger.pojos.User:hasRole
    //#unanalyzed(Menu getAdminMenu()): Effects-of-calling:java.util.List:add
    //#unanalyzed(Menu getAdminMenu()): Effects-of-calling:java.util.Hashtable:get
    //#test_vector(Menu getAdminMenu()): org.apache.roller.weblogger.pojos.User:hasRole(...)@74: {0}, {1}
    //#test_vector(Menu getAdminMenu()): org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest:isLoggedIn(...)@74: {0}, {1}
            return MenuHelper.getMenu("admin", "noAction", pageRequest.getUser(), pageRequest.getWeblog());
    //#MenuModel.java:75: Warning: method not available
    //#    -- call on User org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest:getUser()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.MenuModel
    //#    method: Menu getAdminMenu()
    //#    unanalyzed callee: User org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest:getUser()
    //#MenuModel.java:75: Warning: method not available
    //#    -- call on Weblog org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest:getWeblog()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.MenuModel
    //#    method: Menu getAdminMenu()
    //#    unanalyzed callee: Weblog org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest:getWeblog()
        }
        return null;
    //#MenuModel.java:77: end of method: Menu org.apache.roller.weblogger.ui.rendering.model.MenuModel.getAdminMenu()
    }
    
    
    /**
     * Get a Menu representing the author UI action menu, if the use is
     * currently logged in.
     */
    public Menu getAuthorMenu() {
        if(pageRequest.isLoggedIn()) {
    //#MenuModel.java:86: method: Menu org.apache.roller.weblogger.ui.rendering.model.MenuModel.getAuthorMenu()
    //#MenuModel.java:86: Warning: method not available
    //#    -- call on bool org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest:isLoggedIn()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.MenuModel
    //#    method: Menu getAuthorMenu()
    //#    unanalyzed callee: bool org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest:isLoggedIn()
    //#input(Menu getAuthorMenu()): "config tab = "._tainted
    //#input(Menu getAuthorMenu()): "config tab item = "._tainted
    //#input(Menu getAuthorMenu()): "creating menu for action - "._tainted
    //#input(Menu getAuthorMenu()): "noAction"._tainted
    //#input(Menu getAuthorMenu()): "tab allowed - "._tainted
    //#input(Menu getAuthorMenu()): "tab item allowed - "._tainted
    //#input(Menu getAuthorMenu()): org/apache/roller/weblogger/ui/core/util/menu/Menu.__Descendant_Table[org/apache/roller/weblogger/ui/core/util/menu/Menu]
    //#input(Menu getAuthorMenu()): org/apache/roller/weblogger/ui/core/util/menu/Menu.__Dispatch_Table.addTab(Lorg/apache/roller/weblogger/ui/core/util/menu/MenuTab;)V
    //#input(Menu getAuthorMenu()): org/apache/roller/weblogger/ui/core/util/menu/MenuHelper.log
    //#input(Menu getAuthorMenu()): org/apache/roller/weblogger/ui/core/util/menu/MenuHelper.menus
    //#input(Menu getAuthorMenu()): org/apache/roller/weblogger/ui/core/util/menu/MenuHelper.org.apache.roller.weblogger.pojos.WeblogPermission.ADMIN
    //#input(Menu getAuthorMenu()): org/apache/roller/weblogger/ui/core/util/menu/MenuHelper.org.apache.roller.weblogger.pojos.WeblogPermission.AUTHOR
    //#input(Menu getAuthorMenu()): org/apache/roller/weblogger/ui/core/util/menu/MenuHelper.org.apache.roller.weblogger.pojos.WeblogPermission.LIMITED
    //#input(Menu getAuthorMenu()): org/apache/roller/weblogger/ui/core/util/menu/MenuTab.__Descendant_Table[org/apache/roller/weblogger/ui/core/util/menu/MenuTab]
    //#input(Menu getAuthorMenu()): org/apache/roller/weblogger/ui/core/util/menu/MenuTab.__Dispatch_Table.addItem(Lorg/apache/roller/weblogger/ui/core/util/menu/MenuTabItem;)V
    //#input(Menu getAuthorMenu()): org/apache/roller/weblogger/ui/core/util/menu/MenuTab.__Dispatch_Table.setAction(Ljava/lang/String;)V
    //#input(Menu getAuthorMenu()): org/apache/roller/weblogger/ui/core/util/menu/MenuTab.__Dispatch_Table.setKey(Ljava/lang/String;)V
    //#input(Menu getAuthorMenu()): org/apache/roller/weblogger/ui/core/util/menu/MenuTab.__Dispatch_Table.setSelected(Z)V
    //#input(Menu getAuthorMenu()): org/apache/roller/weblogger/ui/core/util/menu/MenuTabItem.__Descendant_Table[org/apache/roller/weblogger/ui/core/util/menu/MenuTabItem]
    //#input(Menu getAuthorMenu()): org/apache/roller/weblogger/ui/core/util/menu/MenuTabItem.__Dispatch_Table.getAction()Ljava/lang/String;
    //#input(Menu getAuthorMenu()): org/apache/roller/weblogger/ui/core/util/menu/MenuTabItem.__Dispatch_Table.setAction(Ljava/lang/String;)V
    //#input(Menu getAuthorMenu()): org/apache/roller/weblogger/ui/core/util/menu/MenuTabItem.__Dispatch_Table.setKey(Ljava/lang/String;)V
    //#input(Menu getAuthorMenu()): org/apache/roller/weblogger/ui/core/util/menu/MenuTabItem.__Dispatch_Table.setSelected(Z)V
    //#input(Menu getAuthorMenu()): org/apache/roller/weblogger/ui/core/util/menu/ParsedMenu.__Descendant_Table[org/apache/roller/weblogger/ui/core/util/menu/ParsedMenu]
    //#input(Menu getAuthorMenu()): org/apache/roller/weblogger/ui/core/util/menu/ParsedMenu.__Descendant_Table[others]
    //#input(Menu getAuthorMenu()): org/apache/roller/weblogger/ui/core/util/menu/ParsedMenu.__Dispatch_Table.getTabs()Ljava/util/List;
    //#input(Menu getAuthorMenu()): org/apache/roller/weblogger/ui/core/util/menu/ParsedTab.__Descendant_Table[org/apache/roller/weblogger/ui/core/util/menu/ParsedTab]
    //#input(Menu getAuthorMenu()): org/apache/roller/weblogger/ui/core/util/menu/ParsedTab.__Descendant_Table[others]
    //#input(Menu getAuthorMenu()): org/apache/roller/weblogger/ui/core/util/menu/ParsedTab.__Dispatch_Table.getDisabledProperty()Ljava/lang/String;
    //#input(Menu getAuthorMenu()): org/apache/roller/weblogger/ui/core/util/menu/ParsedTab.__Dispatch_Table.getEnabledProperty()Ljava/lang/String;
    //#input(Menu getAuthorMenu()): org/apache/roller/weblogger/ui/core/util/menu/ParsedTab.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(Menu getAuthorMenu()): org/apache/roller/weblogger/ui/core/util/menu/ParsedTab.__Dispatch_Table.getPerm()Ljava/lang/String;
    //#input(Menu getAuthorMenu()): org/apache/roller/weblogger/ui/core/util/menu/ParsedTab.__Dispatch_Table.getRole()Ljava/lang/String;
    //#input(Menu getAuthorMenu()): org/apache/roller/weblogger/ui/core/util/menu/ParsedTab.__Dispatch_Table.getTabItems()Ljava/util/List;
    //#input(Menu getAuthorMenu()): org/apache/roller/weblogger/ui/core/util/menu/ParsedTabItem.__Descendant_Table[org/apache/roller/weblogger/ui/core/util/menu/ParsedTabItem]
    //#input(Menu getAuthorMenu()): org/apache/roller/weblogger/ui/core/util/menu/ParsedTabItem.__Descendant_Table[others]
    //#input(Menu getAuthorMenu()): org/apache/roller/weblogger/ui/core/util/menu/ParsedTabItem.__Dispatch_Table.getAction()Ljava/lang/String;
    //#input(Menu getAuthorMenu()): org/apache/roller/weblogger/ui/core/util/menu/ParsedTabItem.__Dispatch_Table.getDisabledProperty()Ljava/lang/String;
    //#input(Menu getAuthorMenu()): org/apache/roller/weblogger/ui/core/util/menu/ParsedTabItem.__Dispatch_Table.getEnabledProperty()Ljava/lang/String;
    //#input(Menu getAuthorMenu()): org/apache/roller/weblogger/ui/core/util/menu/ParsedTabItem.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(Menu getAuthorMenu()): org/apache/roller/weblogger/ui/core/util/menu/ParsedTabItem.__Dispatch_Table.getPerm()Ljava/lang/String;
    //#input(Menu getAuthorMenu()): org/apache/roller/weblogger/ui/core/util/menu/ParsedTabItem.__Dispatch_Table.getRole()Ljava/lang/String;
    //#input(Menu getAuthorMenu()): org/apache/roller/weblogger/ui/core/util/menu/ParsedTabItem.__Dispatch_Table.getSubActions()[Ljava/lang/String;
    //#input(Menu getAuthorMenu()): this
    //#input(Menu getAuthorMenu()): this.pageRequest
    //#output(Menu getAuthorMenu()): new ArrayList(Menu#1) num objects
    //#output(Menu getAuthorMenu()): new Menu(buildMenu#2) num objects
    //#output(Menu getAuthorMenu()): new Menu(buildMenu#2).__Tag
    //#output(Menu getAuthorMenu()): new Menu(buildMenu#2).tabs
    //#output(Menu getAuthorMenu()): return_value
    //#new obj(Menu getAuthorMenu()): new ArrayList(Menu#1)
    //#new obj(Menu getAuthorMenu()): new Menu(buildMenu#2)
    //#pre[4] (Menu getAuthorMenu()): this.pageRequest != null
    //#pre[1] (Menu getAuthorMenu()): (soft) org/apache/roller/weblogger/ui/core/util/menu/MenuHelper.log != null
    //#pre[2] (Menu getAuthorMenu()): (soft) org/apache/roller/weblogger/ui/core/util/menu/MenuHelper.menus != null
    //#presumption(Menu getAuthorMenu()): org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest:getUser(...)@87 != null
    //#presumption(Menu getAuthorMenu()): org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest:getWeblog(...)@87 != null
    //#post(Menu getAuthorMenu()): return_value in Addr_Set{null,&new Menu(buildMenu#2)}
    //#post(Menu getAuthorMenu()): new ArrayList(Menu#1) num objects <= 1
    //#post(Menu getAuthorMenu()): new Menu(buildMenu#2) num objects <= 1
    //#post(Menu getAuthorMenu()): new Menu(buildMenu#2).__Tag == org/apache/roller/weblogger/ui/core/util/menu/Menu
    //#post(Menu getAuthorMenu()): new Menu(buildMenu#2).tabs == &new ArrayList(Menu#1)
    //#unanalyzed(Menu getAuthorMenu()): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(Menu getAuthorMenu()): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(Menu getAuthorMenu()): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(Menu getAuthorMenu()): Effects-of-calling:org.apache.roller.weblogger.config.WebloggerRuntimeConfig:getProperty
    //#unanalyzed(Menu getAuthorMenu()): Effects-of-calling:org.apache.roller.weblogger.config.WebloggerRuntimeConfig:getBooleanProperty
    //#unanalyzed(Menu getAuthorMenu()): Effects-of-calling:org.apache.roller.weblogger.config.WebloggerConfig:getBooleanProperty
    //#unanalyzed(Menu getAuthorMenu()): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(Menu getAuthorMenu()): Effects-of-calling:org.apache.roller.weblogger.pojos.Weblog:hasUserPermissions
    //#unanalyzed(Menu getAuthorMenu()): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(Menu getAuthorMenu()): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(Menu getAuthorMenu()): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(Menu getAuthorMenu()): Effects-of-calling:org.apache.commons.logging.Log:debug
    //#unanalyzed(Menu getAuthorMenu()): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(Menu getAuthorMenu()): Effects-of-calling:org.apache.roller.weblogger.pojos.User:hasRole
    //#unanalyzed(Menu getAuthorMenu()): Effects-of-calling:java.util.List:add
    //#unanalyzed(Menu getAuthorMenu()): Effects-of-calling:java.util.Hashtable:get
    //#test_vector(Menu getAuthorMenu()): org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest:isLoggedIn(...)@86: {0}, {1}
            return MenuHelper.getMenu("editor", "noAction", pageRequest.getUser(), pageRequest.getWeblog());
    //#MenuModel.java:87: Warning: method not available
    //#    -- call on User org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest:getUser()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.MenuModel
    //#    method: Menu getAuthorMenu()
    //#    unanalyzed callee: User org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest:getUser()
    //#MenuModel.java:87: Warning: method not available
    //#    -- call on Weblog org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest:getWeblog()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.MenuModel
    //#    method: Menu getAuthorMenu()
    //#    unanalyzed callee: Weblog org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest:getWeblog()
        }
        return null;
    //#MenuModel.java:89: end of method: Menu org.apache.roller.weblogger.ui.rendering.model.MenuModel.getAuthorMenu()
    }
    
}
    //#MenuModel.java:: end of class: org.apache.roller.weblogger.ui.rendering.model.MenuModel
