//# 1 errors, 260 messages
//#
/*
    //#CalendarModel.java:1:1: class: org.apache.roller.weblogger.ui.rendering.model.CalendarModel
 * 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 javax.servlet.jsp.PageContext;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.roller.weblogger.WebloggerException;
import org.apache.roller.weblogger.pojos.wrapper.WeblogWrapper;
import org.apache.roller.weblogger.ui.core.tags.calendar.BigWeblogCalendarModel;
import org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag;
import org.apache.roller.weblogger.ui.core.tags.calendar.WeblogCalendarModel;
import org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest;
import org.apache.roller.weblogger.ui.rendering.util.WeblogRequest;


/**
 * Model which provides functionality for displaying weblog calendar.
 * 
 * Implemented by calling hybrid JSP tag.
 */
public class CalendarModel implements Model {
    //#CalendarModel.java:39: method: void org.apache.roller.weblogger.ui.rendering.model.CalendarModel.org.apache.roller.weblogger.ui.rendering.model.CalendarModel()
    //#input(void org.apache.roller.weblogger.ui.rendering.model.CalendarModel()): this
    //#output(void org.apache.roller.weblogger.ui.rendering.model.CalendarModel()): this.pageContext
    //#output(void org.apache.roller.weblogger.ui.rendering.model.CalendarModel()): this.pageRequest
    //#post(void org.apache.roller.weblogger.ui.rendering.model.CalendarModel()): this.pageContext == null
    //#post(void org.apache.roller.weblogger.ui.rendering.model.CalendarModel()): this.pageRequest == null
    
    private static Log log = LogFactory.getLog(CalendarModel.class);
    //#CalendarModel.java:41: method: org.apache.roller.weblogger.ui.rendering.model.CalendarModel.org.apache.roller.weblogger.ui.rendering.model.CalendarModel__static_init
    //#CalendarModel.java:41: Warning: method not available
    //#    -- call on Log org.apache.commons.logging.LogFactory:getLog(Class)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.CalendarModel
    //#    method: org.apache.roller.weblogger.ui.rendering.model.CalendarModel__static_init
    //#    unanalyzed callee: Log org.apache.commons.logging.LogFactory:getLog(Class)
    //#output(org.apache.roller.weblogger.ui.rendering.model.CalendarModel__static_init): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/CalendarModel]
    //#output(org.apache.roller.weblogger.ui.rendering.model.CalendarModel__static_init): __Dispatch_Table.getModelName()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.CalendarModel__static_init): __Dispatch_Table.init(Ljava/util/Map;)V
    //#output(org.apache.roller.weblogger.ui.rendering.model.CalendarModel__static_init): __Dispatch_Table.showWeblogEntryCalendar(Lorg/apache/roller/weblogger/pojos/wrapper/WeblogWrapper;Ljava/lang/String;)Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.CalendarModel__static_init): __Dispatch_Table.showWeblogEntryCalendar(Lorg/apache/roller/weblogger/pojos/wrapper/WeblogWrapper;Ljava/lang/String;Z)Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.CalendarModel__static_init): __Dispatch_Table.showWeblogEntryCalendarBig(Lorg/apache/roller/weblogger/pojos/wrapper/WeblogWrapper;Ljava/lang/String;)Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.CalendarModel__static_init): log
    //#output(org.apache.roller.weblogger.ui.rendering.model.CalendarModel__static_init): org/apache/roller/weblogger/ui/rendering/model/Model.__Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/CalendarModel]
    //#post(org.apache.roller.weblogger.ui.rendering.model.CalendarModel__static_init): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/CalendarModel] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.ui.rendering.model.CalendarModel__static_init): org/apache/roller/weblogger/ui/rendering/model/Model.__Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/CalendarModel] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.ui.rendering.model.CalendarModel__static_init): __Dispatch_Table.getModelName()Ljava/lang/String; == &getModelName
    //#post(org.apache.roller.weblogger.ui.rendering.model.CalendarModel__static_init): __Dispatch_Table.init(Ljava/util/Map;)V == &init
    //#post(org.apache.roller.weblogger.ui.rendering.model.CalendarModel__static_init): __Dispatch_Table.showWeblogEntryCalendar(Lorg/apache/roller/weblogger/pojos/wrapper/WeblogWrapper;Ljava/lang/String;)Ljava/lang/String; == &showWeblogEntryCalendar
    //#post(org.apache.roller.weblogger.ui.rendering.model.CalendarModel__static_init): __Dispatch_Table.showWeblogEntryCalendar(Lorg/apache/roller/weblogger/pojos/wrapper/WeblogWrapper;Ljava/lang/String;Z)Ljava/lang/String; == &showWeblogEntryCalendar
    //#post(org.apache.roller.weblogger.ui.rendering.model.CalendarModel__static_init): __Dispatch_Table.showWeblogEntryCalendarBig(Lorg/apache/roller/weblogger/pojos/wrapper/WeblogWrapper;Ljava/lang/String;)Ljava/lang/String; == &showWeblogEntryCalendarBig
    //#post(org.apache.roller.weblogger.ui.rendering.model.CalendarModel__static_init): init'ed(log)
    //#CalendarModel.java:41: end of method: org.apache.roller.weblogger.ui.rendering.model.CalendarModel.org.apache.roller.weblogger.ui.rendering.model.CalendarModel__static_init
    
    private PageContext pageContext = null;
    private WeblogPageRequest pageRequest = null;
    //#CalendarModel.java:44: end of method: void org.apache.roller.weblogger.ui.rendering.model.CalendarModel.org.apache.roller.weblogger.ui.rendering.model.CalendarModel()
    
    
    /** Template context name to be used for model */
    public String getModelName() {
        return "calendarModel";
    //#CalendarModel.java:49: method: String org.apache.roller.weblogger.ui.rendering.model.CalendarModel.getModelName()
    //#output(String getModelName()): return_value
    //#post(String getModelName()): return_value == &"calendarModel"
    //#CalendarModel.java:49: end of method: String org.apache.roller.weblogger.ui.rendering.model.CalendarModel.getModelName()
    }
    
    
    /** Init page model based on request */
    public void init(Map initData) throws WebloggerException {
        
        // extract page context
        this.pageContext = (PageContext) initData.get("pageContext");
    //#CalendarModel.java:57: method: void org.apache.roller.weblogger.ui.rendering.model.CalendarModel.init(Map)
    //#input(void init(Map)): initData
    //#input(void init(Map)): this
    //#output(void init(Map)): this.pageContext
    //#output(void init(Map)): this.pageRequest
    //#pre[1] (void init(Map)): initData != null
    //#presumption(void init(Map)): java.util.Map:get(...)@60 != null
    //#presumption(void init(Map)): org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest:instanceof(...)@67 == 1
    //#post(void init(Map)): init'ed(this.pageContext)
    //#post(void init(Map)): (soft) this.pageRequest != null
        
        // we expect the init data to contain a weblogRequest object
        WeblogRequest weblogRequest = (WeblogRequest) initData.get("parsedRequest");
        if(weblogRequest == null) {
            throw new WebloggerException("expected weblogRequest from init data");
        }
        
        // CalendarModel 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."+
                    "  CalendarModel only supports page requests.");
        }
    }
    //#CalendarModel.java:73: end of method: void org.apache.roller.weblogger.ui.rendering.model.CalendarModel.init(Map)
    
    
    public String showWeblogEntryCalendar(WeblogWrapper websiteWrapper, String catArgument) {        
        return showWeblogEntryCalendar(websiteWrapper, catArgument, false);
    //#CalendarModel.java:77: method: String org.apache.roller.weblogger.ui.rendering.model.CalendarModel.showWeblogEntryCalendar(WeblogWrapper, String)
    //#CalendarModel.java:77: Warning: call too complex - analysis skipped
    //#    -- call on String showWeblogEntryCalendar(WeblogWrapper, String, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.CalendarModel
    //#    method: String showWeblogEntryCalendar(WeblogWrapper, String)
    //#    unanalyzed callee: String showWeblogEntryCalendar(WeblogWrapper, String, bool)
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String)): catArgument
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String)): this
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String)): websiteWrapper
    //#output(String showWeblogEntryCalendar(WeblogWrapper, String)): return_value
    //#post(String showWeblogEntryCalendar(WeblogWrapper, String)): init'ed(return_value)
    //#CalendarModel.java:77: end of method: String org.apache.roller.weblogger.ui.rendering.model.CalendarModel.showWeblogEntryCalendar(WeblogWrapper, String)
    }
    
    
    public String showWeblogEntryCalendarBig(WeblogWrapper websiteWrapper, String catArgument) { 
        return showWeblogEntryCalendar(websiteWrapper, catArgument, true);
    //#CalendarModel.java:82: method: String org.apache.roller.weblogger.ui.rendering.model.CalendarModel.showWeblogEntryCalendarBig(WeblogWrapper, String)
    //#CalendarModel.java:82: Warning: call too complex - analysis skipped
    //#    -- call on String showWeblogEntryCalendar(WeblogWrapper, String, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.CalendarModel
    //#    method: String showWeblogEntryCalendarBig(WeblogWrapper, String)
    //#    unanalyzed callee: String showWeblogEntryCalendar(WeblogWrapper, String, bool)
    //#input(String showWeblogEntryCalendarBig(WeblogWrapper, String)): catArgument
    //#input(String showWeblogEntryCalendarBig(WeblogWrapper, String)): this
    //#input(String showWeblogEntryCalendarBig(WeblogWrapper, String)): websiteWrapper
    //#output(String showWeblogEntryCalendarBig(WeblogWrapper, String)): return_value
    //#post(String showWeblogEntryCalendarBig(WeblogWrapper, String)): init'ed(return_value)
    //#CalendarModel.java:82: end of method: String org.apache.roller.weblogger.ui.rendering.model.CalendarModel.showWeblogEntryCalendarBig(WeblogWrapper, String)
    }
    
    
    private String showWeblogEntryCalendar(WeblogWrapper websiteWrapper, String catArgument, boolean big) {
        
        if ("nil".equals(catArgument)) catArgument = null;        
    //#CalendarModel.java:88: method: String org.apache.roller.weblogger.ui.rendering.model.CalendarModel.showWeblogEntryCalendar(WeblogWrapper, String, bool)
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): " <a href=""._tainted
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): " summary=""._tainted
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): "" "._tainted
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): "" align="center">"._tainted
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): "" class="hCalendarNavBar">"._tainted
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): "" class="hCalendarNavBar">&amp;laquo;<.a> "._tainted
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): "" class="hCalendarNavBar">&amp;raquo;<.a>"._tainted
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): "" class="hCalendarTable"._tainted
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): "" title=""._tainted
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): ""._tainted
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): "">"._tainted
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): "..."._tainted
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): "<.a>"._tainted
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): "<.a><.div>"._tainted
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): "<.div>"._tainted
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): "<a href=""._tainted
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): "<div class="bCalendarDayContentBig".>"._tainted
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): "<div class="bCalendarDayContentBig">"._tainted
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): "<div class="hCalendarDayTitle"._tainted
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): "<div class="hCalendarDayTitleBig">"._tainted
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): "<td class="hCalendarDay"._tainted
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): "<td class="hCalendarDayCurrent"._tainted
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): "<td class="hCalendarDayLinked"._tainted
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): "<td class="hCalendarDayNotInMonth"._tainted
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): "<td colspan="7" align="center" class="hCalendarMonthYearRow"._tainted
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): "<th class="hCalendarDayNameRow"._tainted
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): "<tr class="hCalendarNextPrev"._tainted
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): "Big"._tainted
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): "calendarModel"._tainted
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): "class="hCalendarDayTitle"._tainted
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): "unable to lookup weblog: "._tainted
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): big
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): catArgument
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): log
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.computeNextMonthUrl()Ljava/lang/String;
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.computePrevMonthUrl()Ljava/lang/String;
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.computeTodayMonthUrl()Ljava/lang/String;
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.computeUrl(Ljava/util/Date;ZZ)Ljava/lang/String;
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.getCalendar()Ljava/util/Calendar;
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.getContent(Ljava/util/Date;)Ljava/lang/String;
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.getDay()Ljava/util/Date;
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.getNextMonth()Ljava/util/Date;
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.getPrevMonth()Ljava/util/Date;
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.initDay(Ljava/util/Date;)V
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.loadWeblogEntries(Ljava/util/Date;Ljava/util/Date;Ljava/lang/String;)V
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.mSingleDayFormat
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.mStarDateFormat
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Descendant_Table[org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel]
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Descendant_Table[org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel]
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Descendant_Table[org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel]
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Descendant_Table[others]
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Dispatch_Table.computeNextMonthUrl()Ljava/lang/String;
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Dispatch_Table.computePrevMonthUrl()Ljava/lang/String;
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Dispatch_Table.computeTodayMonthUrl()Ljava/lang/String;
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Dispatch_Table.computeUrl(Ljava/util/Date;ZZ)Ljava/lang/String;
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Dispatch_Table.getCalendar()Ljava/util/Calendar;
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Dispatch_Table.getContent(Ljava/util/Date;)Ljava/lang/String;
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Dispatch_Table.getDay()Ljava/util/Date;
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Dispatch_Table.getNextMonth()Ljava/util/Date;
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Dispatch_Table.getPrevMonth()Ljava/util/Date;
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.__Descendant_Table[org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag]
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.__Descendant_Table[others]
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.__Dispatch_Table.doEndTag(Ljava/io/PrintWriter;)I
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.__Dispatch_Table.doStartTag(Ljava/io/PrintWriter;)I
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.__Dispatch_Table.emit()Ljava/lang/String;
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.__Dispatch_Table.setClassSuffix(Ljava/lang/String;)V
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.__Dispatch_Table.setLocale(Ljava/util/Locale;)V
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.__Dispatch_Table.setModel(Ljava/lang/String;)V
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.__Dispatch_Table.setName(Ljava/lang/String;)V
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.__Dispatch_Table.toString()Ljava/lang/String;
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.mLogger
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Descendant_Table[org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel]
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Descendant_Table[org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel]
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Descendant_Table[others]
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.computeNextMonthUrl()Ljava/lang/String;
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.computePrevMonthUrl()Ljava/lang/String;
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.computeTodayMonthUrl()Ljava/lang/String;
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.computeUrl(Ljava/util/Date;ZZ)Ljava/lang/String;
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.getCalendar()Ljava/util/Calendar;
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.getContent(Ljava/util/Date;)Ljava/lang/String;
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.getDay()Ljava/util/Date;
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.getNextMonth()Ljava/util/Date;
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.getPrevMonth()Ljava/util/Date;
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.initDay(Ljava/util/Date;)V
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.loadWeblogEntries(Ljava/util/Date;Ljava/util/Date;Ljava/lang/String;)V
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.log
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): this
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): this.pageContext
    //#input(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): this.pageRequest
    //#output(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): java.io.StringWriter:toString(...)._tainted
    //#output(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): return_value
    //#new obj(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): java.io.StringWriter:toString(...)
    //#pre[3] (String showWeblogEntryCalendar(WeblogWrapper, String, bool)): (soft) log != null
    //#pre[5] (String showWeblogEntryCalendar(WeblogWrapper, String, bool)): (soft) org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.mLogger != null
    //#pre[6] (String showWeblogEntryCalendar(WeblogWrapper, String, bool)): (soft) org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.log != null
    //#pre[8] (String showWeblogEntryCalendar(WeblogWrapper, String, bool)): (soft) this.pageContext != null
    //#pre[9] (String showWeblogEntryCalendar(WeblogWrapper, String, bool)): (soft) this.pageRequest != null
    //#presumption(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): calTag.pageContext@102 != null
    //#post(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): java.io.StringWriter:toString(...)._tainted == 0
    //#post(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): return_value == One-of{&java.io.StringWriter:toString(...), &"Exception in tag", null}
    //#post(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): return_value in Addr_Set{null,&java.io.StringWriter:toString(...),&"Exception in tag"}
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:java.util.Date
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:java.util.Calendar:getInstance
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:java.lang.String:length
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:org.apache.commons.lang.StringUtils:isNumeric
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:org.apache.roller.util.DateUtil:get8charDateFormat
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:java.text.SimpleDateFormat:setCalendar
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:java.text.ParsePosition
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:java.text.SimpleDateFormat:parse
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:java.util.Date:after
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:org.apache.roller.util.DateUtil:get6charDateFormat
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:java.util.Calendar:clone
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:org.apache.roller.weblogger.business.Weblogger:getWeblogManager
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:org.apache.roller.weblogger.business.WeblogManager:getWeblogEntryStringMap
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:org.apache.commons.logging.Log:error
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:java.util.HashMap
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:org.apache.roller.weblogger.pojos.Weblog:getTimeZoneInstance
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:org.apache.roller.weblogger.pojos.Weblog:getLocaleInstance
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:org.apache.roller.util.DateUtil:getStartOfMonth
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:org.apache.roller.util.DateUtil:getEndOfMonth
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:java.util.Date:getTime
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:org.apache.roller.weblogger.business.WeblogManager:getWeblogEntries
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:java.util.List:size
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:java.util.List:get
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:org.apache.roller.weblogger.pojos.WeblogEntry:getPubTime
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:java.sql.Timestamp:getTime
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:loadWeblogEntries
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest:getWeblog
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest:getWeblogHandle
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:org.apache.roller.weblogger.WebloggerException
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:org.apache.commons.logging.Log:debug
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest:getWeblogPageName
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest:getWeblogDate
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest:getLocale
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest:getWeblogCategoryName
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:org.apache.roller.weblogger.business.WeblogManager:getWeblogEntryObjectMap
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:javax.servlet.jsp.tagext.TagSupport
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:java.util.Locale:getDefault
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:java.text.SimpleDateFormat
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:java.util.Calendar:getFirstDayOfWeek
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:java.util.Calendar:set
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:java.util.Calendar:getTime
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:java.text.SimpleDateFormat:format
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:java.util.Calendar:add
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:java.io.PrintWriter:print
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:java.util.Calendar:get
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:toString
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:java.io.PrintWriter
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:java.io.StringWriter
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:doStartTag
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:java.io.StringWriter:toString
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:java.util.StringTokenizer
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:java.util.StringTokenizer:nextToken
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:java.util.StringTokenizer:hasMoreTokens
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:javax.servlet.jsp.PageContext:findAttribute
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:org.apache.commons.beanutils.PropertyUtils:getProperty
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:java.util.Date:clone
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:getDay
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:getCalendar
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:java.util.Calendar:setTime
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:javax.servlet.jsp.PageContext:getRequest
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:java.util.ResourceBundle:getBundle
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:org.apache.roller.util.DateUtil:getNoonOfDay
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:java.util.Calendar:getMinimum
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:java.util.ResourceBundle:getString
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:getPrevMonth
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:org.apache.roller.util.DateUtil:format
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:org.apache.roller.weblogger.business.Weblogger:getUrlStrategy
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:org.apache.roller.weblogger.business.URLStrategy:getWeblogCollectionURL
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:org.apache.roller.weblogger.business.URLStrategy:getWeblogPageURL
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:java.util.Map:get
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:computeUrl
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:org.apache.roller.util.DateUtil:format8chars
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:org.apache.roller.util.DateUtil:format6chars
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:computePrevMonthUrl
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:getNextMonth
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:computeNextMonthUrl
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:java.lang.StringBuffer
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:java.lang.StringBuffer:append
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:org.apache.roller.weblogger.pojos.WeblogEntry:getPermalink
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:org.apache.roller.weblogger.pojos.WeblogEntry:getTitle
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:java.lang.String:trim
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:org.apache.roller.weblogger.pojos.WeblogEntry:getAnchor
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:java.lang.String:substring
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:java.lang.StringBuffer:toString
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:getContent
    //#unanalyzed(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): Effects-of-calling:computeTodayMonthUrl
    //#test_vector(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): big: {0}, {1}
    //#test_vector(String showWeblogEntryCalendar(WeblogWrapper, String, bool)): java.lang.String:equals(...)@88: {0}, {1}
        String ret = null;
        try {
            org.apache.roller.weblogger.ui.core.tags.calendar.CalendarModel model = null;
    //#CalendarModel.java:91: Warning: unused assignment
    //#    unused assignment into model
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.ui.rendering.model.CalendarModel
    //#    method: String showWeblogEntryCalendar(WeblogWrapper, String, bool)
    //#    Attribs:  Uncertain
            if (big) {
                model = new BigWeblogCalendarModel(pageRequest, catArgument);
            } else {
                model = new WeblogCalendarModel(pageRequest, catArgument);
            }
            
            // save model in JSP page context so CalendarTag can find it
            pageContext.setAttribute("calendarModel", model);
            
            CalendarTag calTag = new CalendarTag();
            calTag.setPageContext(pageContext);
    //#CalendarModel.java:102: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag:setPageContext(PageContext)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.CalendarModel
    //#    method: String showWeblogEntryCalendar(WeblogWrapper, String, bool)
    //#    unanalyzed callee: void org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag:setPageContext(PageContext)
            calTag.setName("calendar");
            calTag.setModel("calendarModel");
            calTag.setLocale(pageRequest.getLocaleInstance());
    //#CalendarModel.java:105: Warning: method not available
    //#    -- call on Locale org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest:getLocaleInstance()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.CalendarModel
    //#    method: String showWeblogEntryCalendar(WeblogWrapper, String, bool)
    //#    unanalyzed callee: Locale org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest:getLocaleInstance()
            if (big) {
                calTag.setClassSuffix("Big");
            }
            ret = calTag.emit();
    //#CalendarModel.java:109: ?precondition failure
    //#    org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.emit: (soft) init'ed(this.mDayNames[0..4_294_967_295])
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.ui.rendering.model.CalendarModel
    //#    method: String showWeblogEntryCalendar(WeblogWrapper, String, bool)
    //#    basic block: bb_9
    //#    assertion: (soft) init'ed(undefined)
    //#    callee: String org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag.emit()
    //#    callee assertion: (soft) init'ed(this.mDayNames[0..4_294_967_295])
    //#    callee file: CalendarTag.java
    //#    callee precondition index: [3]
    //#    callee srcpos: 352
    //#    VN: undefined
    //#    Expected: Univ-VN-Set
    //#    Bad: {Invalid}
    //#    Attribs:  Ptr  Soft  Bad only invalid
        } catch (Exception e) {
            log.error("ERROR: initializing calendar tag",e);
    //#CalendarModel.java:111: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.CalendarModel
    //#    method: String showWeblogEntryCalendar(WeblogWrapper, String, bool)
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
        }
        return ret;
    //#CalendarModel.java:113: end of method: String org.apache.roller.weblogger.ui.rendering.model.CalendarModel.showWeblogEntryCalendar(WeblogWrapper, String, bool)
    }
    
}
    //#CalendarModel.java:: end of class: org.apache.roller.weblogger.ui.rendering.model.CalendarModel
