//# 0 errors, 841 messages
//#
/*
    //#CalendarTag.java:1:1: class: org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag
 * 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.core.tags.calendar;

import org.apache.commons.beanutils.PropertyUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.roller.util.DateUtil;

import java.io.PrintWriter;
import java.io.StringWriter;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import java.util.ResourceBundle;
import java.util.StringTokenizer;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.Tag;
import javax.servlet.jsp.tagext.TagSupport;


/**
 * Calendar tag.
 * @jsp.tag name="Calendar"
 */
public class CalendarTag extends TagSupport {
    private static Log mLogger =
    //#CalendarTag.java:46: method: org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag.org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag__static_init
    //#CalendarTag.java:46: Warning: method not available
    //#    -- call on LogFactory org.apache.commons.logging.LogFactory:getFactory()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag
    //#    method: org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag__static_init
    //#    unanalyzed callee: LogFactory org.apache.commons.logging.LogFactory:getFactory()
    //#CalendarTag.java:46: Warning: method not available
    //#    -- call on Log org.apache.commons.logging.LogFactory:getInstance(Class)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag
    //#    method: org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag__static_init
    //#    unanalyzed callee: Log org.apache.commons.logging.LogFactory:getInstance(Class)
    //#output(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag__static_init): __Descendant_Table[org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag]
    //#output(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag__static_init): __Dispatch_Table.buildDayNames()V
    //#output(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag__static_init): __Dispatch_Table.doEndTag()I
    //#output(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag__static_init): __Dispatch_Table.doEndTag(Ljava/io/PrintWriter;)I
    //#output(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag__static_init): __Dispatch_Table.doStartTag()I
    //#output(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag__static_init): __Dispatch_Table.doStartTag(Ljava/io/PrintWriter;)I
    //#output(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag__static_init): __Dispatch_Table.emit()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag__static_init): __Dispatch_Table.getClassSuffix()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag__static_init): __Dispatch_Table.getModel()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag__static_init): __Dispatch_Table.getName()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag__static_init): __Dispatch_Table.printDayInThisMonth(Ljava/io/PrintWriter;Ljava/util/Calendar;Ljava/lang/String;Ljava/lang/String;)V
    //#output(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag__static_init): __Dispatch_Table.printDayNotInMonth(Ljava/io/PrintWriter;Ljava/util/Calendar;)V
    //#output(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag__static_init): __Dispatch_Table.printToday(Ljava/io/PrintWriter;Ljava/util/Calendar;Ljava/lang/String;Ljava/lang/String;)V
    //#output(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag__static_init): __Dispatch_Table.setClassSuffix(Ljava/lang/String;)V
    //#output(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag__static_init): __Dispatch_Table.setLocale(Ljava/util/Locale;)V
    //#output(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag__static_init): __Dispatch_Table.setModel(Ljava/lang/String;)V
    //#output(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag__static_init): __Dispatch_Table.setName(Ljava/lang/String;)V
    //#output(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag__static_init): __Dispatch_Table.toString()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag__static_init): mLogger
    //#presumption(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag__static_init): org.apache.commons.logging.LogFactory:getFactory(...)@46 != null
    //#post(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag__static_init): __Descendant_Table[org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag__static_init): __Dispatch_Table.buildDayNames()V == &buildDayNames
    //#post(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag__static_init): __Dispatch_Table.doEndTag()I == &doEndTag
    //#post(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag__static_init): __Dispatch_Table.doEndTag(Ljava/io/PrintWriter;)I == &doEndTag
    //#post(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag__static_init): __Dispatch_Table.doStartTag()I == &doStartTag
    //#post(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag__static_init): __Dispatch_Table.doStartTag(Ljava/io/PrintWriter;)I == &doStartTag
    //#post(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag__static_init): __Dispatch_Table.emit()Ljava/lang/String; == &emit
    //#post(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag__static_init): __Dispatch_Table.getClassSuffix()Ljava/lang/String; == &getClassSuffix
    //#post(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag__static_init): __Dispatch_Table.getModel()Ljava/lang/String; == &getModel
    //#post(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag__static_init): __Dispatch_Table.getName()Ljava/lang/String; == &getName
    //#post(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag__static_init): __Dispatch_Table.printDayInThisMonth(Ljava/io/PrintWriter;Ljava/util/Calendar;Ljava/lang/String;Ljava/lang/String;)V == &printDayInThisMonth
    //#post(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag__static_init): __Dispatch_Table.printDayNotInMonth(Ljava/io/PrintWriter;Ljava/util/Calendar;)V == &printDayNotInMonth
    //#post(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag__static_init): __Dispatch_Table.printToday(Ljava/io/PrintWriter;Ljava/util/Calendar;Ljava/lang/String;Ljava/lang/String;)V == &printToday
    //#post(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag__static_init): __Dispatch_Table.setClassSuffix(Ljava/lang/String;)V == &setClassSuffix
    //#post(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag__static_init): __Dispatch_Table.setLocale(Ljava/util/Locale;)V == &setLocale
    //#post(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag__static_init): __Dispatch_Table.setModel(Ljava/lang/String;)V == &setModel
    //#post(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag__static_init): __Dispatch_Table.setName(Ljava/lang/String;)V == &setName
    //#post(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag__static_init): __Dispatch_Table.toString()Ljava/lang/String; == &toString
    //#post(org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag__static_init): init'ed(mLogger)
    //#CalendarTag.java:46: end of method: org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag.org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag__static_init
            LogFactory.getFactory().getInstance(CalendarTag.class);
    
    // JSP Attributes
    
    /** @jsp.attribute required="true" */
    public String getName() { return mName; }
    //#CalendarTag.java:52: method: String org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag.getName()
    //#input(String getName()): this
    //#input(String getName()): this.mName
    //#output(String getName()): return_value
    //#pre[2] (String getName()): init'ed(this.mName)
    //#post(String getName()): return_value == this.mName
    //#post(String getName()): init'ed(return_value)
    //#CalendarTag.java:52: end of method: String org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag.getName()
    public void setName( String name ) { mName = name; }
    //#CalendarTag.java:53: method: void org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag.setName(String)
    //#input(void setName(String)): name
    //#input(void setName(String)): this
    //#output(void setName(String)): this.mName
    //#post(void setName(String)): this.mName == name
    //#post(void setName(String)): init'ed(this.mName)
    //#CalendarTag.java:53: end of method: void org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag.setName(String)
    private String mName = null;
    
    /* @jsp.attribute description="Date in yyyyMMdd format"
    public String getDate() { return mDate; }
    public void setDate( String s ) { mDate = s; }
    private String mDate = null;
     */
    
    /** @jsp.attribute */
    public String getModel() { return mModelName; }
    //#CalendarTag.java:63: method: String org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag.getModel()
    //#input(String getModel()): this
    //#input(String getModel()): this.mModelName
    //#output(String getModel()): return_value
    //#pre[2] (String getModel()): init'ed(this.mModelName)
    //#post(String getModel()): return_value == this.mModelName
    //#post(String getModel()): init'ed(return_value)
    //#CalendarTag.java:63: end of method: String org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag.getModel()
    public void setModel( String s ) { mModelName= s; }
    //#CalendarTag.java:64: method: void org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag.setModel(String)
    //#input(void setModel(String)): s
    //#input(void setModel(String)): this
    //#output(void setModel(String)): this.mModelName
    //#post(void setModel(String)): this.mModelName == s
    //#post(void setModel(String)): init'ed(this.mModelName)
    //#CalendarTag.java:64: end of method: void org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag.setModel(String)
    private String mModelName = null;
    
    /** @jsp.attribute */
    public String getClassSuffix() { return mClassSuffix; }
    //#CalendarTag.java:68: method: String org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag.getClassSuffix()
    //#input(String getClassSuffix()): this
    //#input(String getClassSuffix()): this.mClassSuffix
    //#output(String getClassSuffix()): return_value
    //#pre[2] (String getClassSuffix()): init'ed(this.mClassSuffix)
    //#post(String getClassSuffix()): return_value == this.mClassSuffix
    //#post(String getClassSuffix()): init'ed(return_value)
    //#CalendarTag.java:68: end of method: String org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag.getClassSuffix()
    public void setClassSuffix( String s ) { mClassSuffix= s; }
    //#CalendarTag.java:69: method: void org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag.setClassSuffix(String)
    //#input(void setClassSuffix(String)): s
    //#input(void setClassSuffix(String)): this
    //#output(void setClassSuffix(String)): this.mClassSuffix
    //#post(void setClassSuffix(String)): this.mClassSuffix == s
    //#post(void setClassSuffix(String)): init'ed(this.mClassSuffix)
    //#CalendarTag.java:69: end of method: void org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag.setClassSuffix(String)
    private String mClassSuffix = "";
    
    // not a tag attribute
    public void setLocale(Locale locale) {
        if (locale != null)
    //#CalendarTag.java:74: method: void org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag.setLocale(Locale)
    //#input(void setLocale(Locale)): locale
    //#input(void setLocale(Locale)): this
    //#output(void setLocale(Locale)): this.mLocale
    //#post(void setLocale(Locale)): this.mLocale == One-of{old this.mLocale, locale}
    //#test_vector(void setLocale(Locale)): locale: Addr_Set{null}, Inverse{null}
            mLocale = locale;
    }
    //#CalendarTag.java:76: end of method: void org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag.setLocale(Locale)
    private Locale mLocale = Locale.getDefault();
    
    // not a tag attribute
    /*
    private TimeZone mTimeZone = TimeZone.getDefault();
    public void setTimeZone(TimeZone zone) {
        if (zone != null)
            mTimeZone = zone;
    }
    private TimeZone getTimeZone()
    {
        // I've seen TimeZone.getDefault() return null. -Lance
        if (mTimeZone == null)
            mTimeZone = TimeZone.getTimeZone("America/New_York");
        return mTimeZone;
    }
     */
    
    private String[] mDayNames = null;
    
    public CalendarTag() {
    //#CalendarTag.java:97: method: void org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag.org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag()
    //#input(void org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag()): this
    //#output(void org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag()): this.mClassSuffix
    //#output(void org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag()): this.mDayNames
    //#output(void org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag()): this.mLocale
    //#output(void org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag()): this.mModelName
    //#output(void org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag()): this.mName
    //#post(void org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag()): this.mClassSuffix == &""
    //#post(void org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag()): this.mDayNames == null
    //#post(void org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag()): this.mModelName == null
    //#post(void org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag()): this.mName == null
    //#post(void org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag()): init'ed(this.mLocale)
        /*
         * Empty constructor.
         *
         * Used to build the day names, but the correct locale
         * was not set at this stage. Day-name-building has moved to the
         * doStartTag() method.
         */
    }
    //#CalendarTag.java:105: end of method: void org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag.org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag()
    
    //------------------------------------------------------------------------
    /**
     * Write to a PrintWriter so that tag may be used from Velocity
     */
    public int doStartTag( PrintWriter pw ) throws JspException {
        try {
            // build week day names
            this.buildDayNames();
    //#CalendarTag.java:114: method: int org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag.doStartTag(PrintWriter)
    //#input(int doStartTag(PrintWriter)): " <a href=""._tainted
    //#input(int doStartTag(PrintWriter)): " summary=""._tainted
    //#input(int doStartTag(PrintWriter)): "" "._tainted
    //#input(int doStartTag(PrintWriter)): "" align="center">"._tainted
    //#input(int doStartTag(PrintWriter)): "" class="hCalendarNavBar">"._tainted
    //#input(int doStartTag(PrintWriter)): "" class="hCalendarNavBar">&amp;laquo;<.a> "._tainted
    //#input(int doStartTag(PrintWriter)): "" class="hCalendarNavBar">&amp;raquo;<.a>"._tainted
    //#input(int doStartTag(PrintWriter)): "" class="hCalendarTable"._tainted
    //#input(int doStartTag(PrintWriter)): "" title=""._tainted
    //#input(int doStartTag(PrintWriter)): "">"._tainted
    //#input(int doStartTag(PrintWriter)): "..."._tainted
    //#input(int doStartTag(PrintWriter)): "<.a>"._tainted
    //#input(int doStartTag(PrintWriter)): "<.a><.div>"._tainted
    //#input(int doStartTag(PrintWriter)): "<.div>"._tainted
    //#input(int doStartTag(PrintWriter)): "<a href=""._tainted
    //#input(int doStartTag(PrintWriter)): "<div class="bCalendarDayContentBig".>"._tainted
    //#input(int doStartTag(PrintWriter)): "<div class="bCalendarDayContentBig">"._tainted
    //#input(int doStartTag(PrintWriter)): "<div class="hCalendarDayTitle"._tainted
    //#input(int doStartTag(PrintWriter)): "<div class="hCalendarDayTitleBig">"._tainted
    //#input(int doStartTag(PrintWriter)): "<td class="hCalendarDay"._tainted
    //#input(int doStartTag(PrintWriter)): "<td class="hCalendarDayCurrent"._tainted
    //#input(int doStartTag(PrintWriter)): "<td class="hCalendarDayLinked"._tainted
    //#input(int doStartTag(PrintWriter)): "<td class="hCalendarDayNotInMonth"._tainted
    //#input(int doStartTag(PrintWriter)): "<td colspan="7" align="center" class="hCalendarMonthYearRow"._tainted
    //#input(int doStartTag(PrintWriter)): "<th class="hCalendarDayNameRow"._tainted
    //#input(int doStartTag(PrintWriter)): "<tr class="hCalendarNextPrev"._tainted
    //#input(int doStartTag(PrintWriter)): "class="hCalendarDayTitle"._tainted
    //#input(int doStartTag(PrintWriter)): mLogger
    //#input(int doStartTag(PrintWriter)): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.computeNextMonthUrl()Ljava/lang/String;
    //#input(int doStartTag(PrintWriter)): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.computePrevMonthUrl()Ljava/lang/String;
    //#input(int doStartTag(PrintWriter)): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.computeTodayMonthUrl()Ljava/lang/String;
    //#input(int doStartTag(PrintWriter)): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.computeUrl(Ljava/util/Date;ZZ)Ljava/lang/String;
    //#input(int doStartTag(PrintWriter)): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.getCalendar()Ljava/util/Calendar;
    //#input(int doStartTag(PrintWriter)): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.getContent(Ljava/util/Date;)Ljava/lang/String;
    //#input(int doStartTag(PrintWriter)): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.getDay()Ljava/util/Date;
    //#input(int doStartTag(PrintWriter)): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.getNextMonth()Ljava/util/Date;
    //#input(int doStartTag(PrintWriter)): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.getPrevMonth()Ljava/util/Date;
    //#input(int doStartTag(PrintWriter)): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.mSingleDayFormat
    //#input(int doStartTag(PrintWriter)): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.mStarDateFormat
    //#input(int doStartTag(PrintWriter)): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Descendant_Table[org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel]
    //#input(int doStartTag(PrintWriter)): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Descendant_Table[org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel]
    //#input(int doStartTag(PrintWriter)): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Descendant_Table[org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel]
    //#input(int doStartTag(PrintWriter)): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Descendant_Table[others]
    //#input(int doStartTag(PrintWriter)): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Dispatch_Table.computeNextMonthUrl()Ljava/lang/String;
    //#input(int doStartTag(PrintWriter)): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Dispatch_Table.computePrevMonthUrl()Ljava/lang/String;
    //#input(int doStartTag(PrintWriter)): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Dispatch_Table.computeTodayMonthUrl()Ljava/lang/String;
    //#input(int doStartTag(PrintWriter)): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Dispatch_Table.computeUrl(Ljava/util/Date;ZZ)Ljava/lang/String;
    //#input(int doStartTag(PrintWriter)): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Dispatch_Table.getCalendar()Ljava/util/Calendar;
    //#input(int doStartTag(PrintWriter)): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Dispatch_Table.getContent(Ljava/util/Date;)Ljava/lang/String;
    //#input(int doStartTag(PrintWriter)): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Dispatch_Table.getDay()Ljava/util/Date;
    //#input(int doStartTag(PrintWriter)): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Dispatch_Table.getNextMonth()Ljava/util/Date;
    //#input(int doStartTag(PrintWriter)): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Dispatch_Table.getPrevMonth()Ljava/util/Date;
    //#input(int doStartTag(PrintWriter)): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Descendant_Table[org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel]
    //#input(int doStartTag(PrintWriter)): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Descendant_Table[org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel]
    //#input(int doStartTag(PrintWriter)): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Descendant_Table[others]
    //#input(int doStartTag(PrintWriter)): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.computeNextMonthUrl()Ljava/lang/String;
    //#input(int doStartTag(PrintWriter)): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.computePrevMonthUrl()Ljava/lang/String;
    //#input(int doStartTag(PrintWriter)): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.computeTodayMonthUrl()Ljava/lang/String;
    //#input(int doStartTag(PrintWriter)): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.computeUrl(Ljava/util/Date;ZZ)Ljava/lang/String;
    //#input(int doStartTag(PrintWriter)): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.getCalendar()Ljava/util/Calendar;
    //#input(int doStartTag(PrintWriter)): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.getContent(Ljava/util/Date;)Ljava/lang/String;
    //#input(int doStartTag(PrintWriter)): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.getDay()Ljava/util/Date;
    //#input(int doStartTag(PrintWriter)): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.getNextMonth()Ljava/util/Date;
    //#input(int doStartTag(PrintWriter)): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.getPrevMonth()Ljava/util/Date;
    //#input(int doStartTag(PrintWriter)): pw
    //#input(int doStartTag(PrintWriter)): this
    //#input(int doStartTag(PrintWriter)): this.mClassSuffix
    //#input(int doStartTag(PrintWriter)): this.mClassSuffix._tainted
    //#input(int doStartTag(PrintWriter)): this.mDayNames.length
    //#input(int doStartTag(PrintWriter)): this.mDayNames[0..4_294_967_295]
    //#input(int doStartTag(PrintWriter)): this.mLocale
    //#input(int doStartTag(PrintWriter)): this.mModelName
    //#input(int doStartTag(PrintWriter)): this.mModelName._tainted
    //#input(int doStartTag(PrintWriter)): this.pageContext
    //#output(int doStartTag(PrintWriter)): new String[](buildDayNames#1) num objects
    //#output(int doStartTag(PrintWriter)): new String[](buildDayNames#1).length
    //#output(int doStartTag(PrintWriter)): new String[](buildDayNames#1)[0..4_294_967_295]
    //#output(int doStartTag(PrintWriter)): return_value
    //#output(int doStartTag(PrintWriter)): this.mDayNames
    //#output(int doStartTag(PrintWriter)): this.mDayNames[0..4_294_967_295]
    //#new obj(int doStartTag(PrintWriter)): new String[](buildDayNames#1)
    //#pre[1] (int doStartTag(PrintWriter)): (soft) mLogger != null
    //#pre[3] (int doStartTag(PrintWriter)): (soft) init'ed(this.mDayNames[0..4_294_967_295])
    //#pre[6] (int doStartTag(PrintWriter)): (soft) pw != null
    //#pre[8] (int doStartTag(PrintWriter)): (soft) init'ed(this.mClassSuffix)
    //#pre[11] (int doStartTag(PrintWriter)): (soft) init'ed(this.mLocale)
    //#pre[12] (int doStartTag(PrintWriter)): (soft) init'ed(this.mModelName)
    //#pre[14] (int doStartTag(PrintWriter)): (soft) this.pageContext != null
    //#presumption(int doStartTag(PrintWriter)): java.util.ResourceBundle:getBundle(...)@155 != null
    //#presumption(int doStartTag(PrintWriter)): javax.servlet.jsp.PageContext:findAttribute(...).__Tag@134 in {org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel, org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel}
    //#presumption(int doStartTag(PrintWriter)): model.calendar@142 != null
    //#presumption(int doStartTag(PrintWriter)): model.calendar@145 != null
    //#presumption(int doStartTag(PrintWriter)): model.calendar@158 != null
    //#presumption(int doStartTag(PrintWriter)): model.day@132 != null
    //#presumption(int doStartTag(PrintWriter)): model.day@134 != null
    //#presumption(int doStartTag(PrintWriter)): model.monthMap@169 != null
    //#presumption(int doStartTag(PrintWriter)): org.apache.commons.beanutils.PropertyUtils:getProperty(...).__Tag@132 in {org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel, org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel}
    //#post(int doStartTag(PrintWriter)): return_value == 0
    //#post(int doStartTag(PrintWriter)): this.mDayNames == One-of{&new String[](buildDayNames#1), old this.mDayNames}
    //#post(int doStartTag(PrintWriter)): (soft) init'ed(this.mDayNames[0..4_294_967_295])
    //#post(int doStartTag(PrintWriter)): new String[](buildDayNames#1) num objects <= 1
    //#post(int doStartTag(PrintWriter)): new String[](buildDayNames#1).length == 7
    //#post(int doStartTag(PrintWriter)): (soft) init'ed(new String[](buildDayNames#1)[0..4_294_967_295])
    //#unanalyzed(int doStartTag(PrintWriter)): Effects-of-calling:java.util.Calendar:getInstance
    //#unanalyzed(int doStartTag(PrintWriter)): Effects-of-calling:java.text.SimpleDateFormat
    //#unanalyzed(int doStartTag(PrintWriter)): Effects-of-calling:java.util.Calendar:getFirstDayOfWeek
    //#unanalyzed(int doStartTag(PrintWriter)): Effects-of-calling:java.util.Calendar:set
    //#unanalyzed(int doStartTag(PrintWriter)): Effects-of-calling:java.util.Calendar:getTime
    //#unanalyzed(int doStartTag(PrintWriter)): Effects-of-calling:java.text.SimpleDateFormat:format
    //#unanalyzed(int doStartTag(PrintWriter)): Effects-of-calling:java.util.Calendar:add
    //#unanalyzed(int doStartTag(PrintWriter)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(int doStartTag(PrintWriter)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(int doStartTag(PrintWriter)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(int doStartTag(PrintWriter)): Effects-of-calling:java.io.PrintWriter:print
    //#unanalyzed(int doStartTag(PrintWriter)): Effects-of-calling:java.util.Calendar:get
    //#unanalyzed(int doStartTag(PrintWriter)): Effects-of-calling:java.util.Date:clone
    //#unanalyzed(int doStartTag(PrintWriter)): Effects-of-calling:java.util.Calendar:clone
    //#unanalyzed(int doStartTag(PrintWriter)): Effects-of-calling:org.apache.roller.util.DateUtil:get8charDateFormat
    //#unanalyzed(int doStartTag(PrintWriter)): Effects-of-calling:java.text.SimpleDateFormat:setCalendar
    //#unanalyzed(int doStartTag(PrintWriter)): Effects-of-calling:org.apache.roller.util.DateUtil:get6charDateFormat
    //#unanalyzed(int doStartTag(PrintWriter)): Effects-of-calling:org.apache.roller.util.DateUtil:format
    //#unanalyzed(int doStartTag(PrintWriter)): Effects-of-calling:org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger
    //#unanalyzed(int doStartTag(PrintWriter)): Effects-of-calling:org.apache.roller.weblogger.business.Weblogger:getUrlStrategy
    //#unanalyzed(int doStartTag(PrintWriter)): Effects-of-calling:org.apache.roller.weblogger.business.URLStrategy:getWeblogCollectionURL
    //#unanalyzed(int doStartTag(PrintWriter)): Effects-of-calling:org.apache.roller.weblogger.business.URLStrategy:getWeblogPageURL
    //#unanalyzed(int doStartTag(PrintWriter)): Effects-of-calling:java.util.Map:get
    //#unanalyzed(int doStartTag(PrintWriter)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(int doStartTag(PrintWriter)): Effects-of-calling:computeUrl
    //#unanalyzed(int doStartTag(PrintWriter)): Effects-of-calling:org.apache.roller.util.DateUtil:format8chars
    //#unanalyzed(int doStartTag(PrintWriter)): Effects-of-calling:org.apache.commons.logging.Log:error
    //#unanalyzed(int doStartTag(PrintWriter)): Effects-of-calling:java.util.List:get
    //#unanalyzed(int doStartTag(PrintWriter)): Effects-of-calling:org.apache.roller.weblogger.pojos.WeblogEntry:getPubTime
    //#unanalyzed(int doStartTag(PrintWriter)): Effects-of-calling:org.apache.roller.util.DateUtil:format6chars
    //#unanalyzed(int doStartTag(PrintWriter)): Effects-of-calling:java.lang.StringBuffer
    //#unanalyzed(int doStartTag(PrintWriter)): Effects-of-calling:java.lang.StringBuffer:append
    //#unanalyzed(int doStartTag(PrintWriter)): Effects-of-calling:java.util.List:size
    //#unanalyzed(int doStartTag(PrintWriter)): Effects-of-calling:org.apache.roller.weblogger.pojos.WeblogEntry:getPermalink
    //#unanalyzed(int doStartTag(PrintWriter)): Effects-of-calling:org.apache.roller.weblogger.pojos.WeblogEntry:getTitle
    //#unanalyzed(int doStartTag(PrintWriter)): Effects-of-calling:java.lang.String:trim
    //#unanalyzed(int doStartTag(PrintWriter)): Effects-of-calling:java.lang.String:length
    //#unanalyzed(int doStartTag(PrintWriter)): Effects-of-calling:org.apache.roller.weblogger.pojos.WeblogEntry:getAnchor
    //#unanalyzed(int doStartTag(PrintWriter)): Effects-of-calling:java.lang.String:substring
    //#unanalyzed(int doStartTag(PrintWriter)): Effects-of-calling:java.lang.StringBuffer:toString
    //#test_vector(int doStartTag(PrintWriter)): java.util.StringTokenizer:hasMoreTokens(...)@129: {0}, {1}
    //#test_vector(int doStartTag(PrintWriter)): model.nextMonth@169: Addr_Set{null}, Inverse{null}
    //#test_vector(int doStartTag(PrintWriter)): model.prevMonth@169: Addr_Set{null}, Inverse{null}
            
            Date day=null;       // day to be displayed
    //#CalendarTag.java:116: Warning: unused assignment
    //#    unused assignment into day
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag
    //#    method: int doStartTag(PrintWriter)
    //#    Attribs:  Uncertain
            Calendar dayCal;     // set to day to be displayed
            Calendar cal;        // for iterating through days of month
            Calendar todayCal;   // for iterating through days of month
            CalendarModel model; // the calendar model
            
            // ---------------------------------
            // --- initialize date variables ---
            // ---------------------------------
            
            // check for parameter map and target url
            StringTokenizer toker = new StringTokenizer(mModelName,".");
            String tok1 = toker.nextToken();
            if (toker.hasMoreTokens()) {
                String tok2 = toker.nextToken();
                Object bean = pageContext.findAttribute(tok1);
                model = (CalendarModel)PropertyUtils.getProperty(bean, tok2);
    //#CalendarTag.java:132: Warning: method not available
    //#    -- call on Object org.apache.commons.beanutils.PropertyUtils:getProperty(Object, String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag
    //#    method: int doStartTag(PrintWriter)
    //#    unanalyzed callee: Object org.apache.commons.beanutils.PropertyUtils:getProperty(Object, String)
            } else {
                model = (CalendarModel)pageContext.findAttribute( mModelName );
            }
            
            // no model specified, nothing to generate
            if (model == null) {
                return SKIP_BODY;
            }
            
            day = model.getDay();
            
            // ceate object to represent today
            todayCal = model.getCalendar();
            todayCal.setTime( new Date() );
            
            // formatter Month-Year title of calendar
            SimpleDateFormat formatTitle = new SimpleDateFormat("MMMM yyyy", mLocale);
            
            HttpServletRequest request =
    //#CalendarTag.java:151: Warning: unused assignment
    //#    unused assignment into request
    //#    severity: LOW
    //#    class: org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag
    //#    method: int doStartTag(PrintWriter)
                    (HttpServletRequest)pageContext.getRequest();
            
            // get Resource Bundle
            ResourceBundle bundle = ResourceBundle.getBundle("ApplicationResources", mLocale);
            
            // go back to first day in month
            cal = model.getCalendar();
            day = DateUtil.getNoonOfDay(day, cal);
    //#CalendarTag.java:159: Warning: method not available
    //#    -- call on Date org.apache.roller.util.DateUtil:getNoonOfDay(Date, Calendar)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag
    //#    method: int doStartTag(PrintWriter)
    //#    unanalyzed callee: Date org.apache.roller.util.DateUtil:getNoonOfDay(Date, Calendar)
            cal.set( Calendar.DAY_OF_MONTH, cal.getMinimum(Calendar.DAY_OF_MONTH) );
            
            // Go back to first day of week before that (Sunday in US, Monday in France, e.g.)
            // in the calendar
            while ( cal.get( Calendar.DAY_OF_WEEK ) != cal.getFirstDayOfWeek() ) {
                cal.add( Calendar.DATE, -1 );
            }
            
            // create table of 5 weeks, 7 days per row
            dayCal = model.getCalendar();
            dayCal.setTime( day );
            
            // -------------------------
            // --- draw the calendar ---
            // -------------------------
            pw.print("<table cellspacing=\"0\" border=\"0\" ");
            pw.print(" summary=\""
                    +bundle.getString("calendar.summary")
                    +"\" class=\"hCalendarTable"
                    +mClassSuffix+"\">");
            pw.print("<tr>");
            pw.print("<td colspan=\"7\" align=\"center\" "+
                    "class=\"hCalendarMonthYearRow"+mClassSuffix+"\">");
            if (model.getPrevMonth() != null) {
                pw.print("<a href=\"" + model.computePrevMonthUrl()
                        + "\" title=\"" + bundle.getString("calendar.prev")
                        + "\" class=\"hCalendarNavBar\">&laquo;</a> ");
            }
            pw.print( formatTitle.format(day) );
            if (model.getNextMonth() != null) {
                pw.print(" <a href=\"" + model.computeNextMonthUrl()
                + "\" title=\"" + bundle.getString("calendar.next")
                + "\" class=\"hCalendarNavBar\">&raquo;</a>");
            }
            pw.print("</td></tr>");
            
            // emit the HTML calendar
            for ( int w=-1; w<6; w++ ) {
                pw.print("<tr>");
                for ( int d=0; d<7; d++ ) {
                    if ( w == -1 ) {
                        pw.print(
                                "<th class=\"hCalendarDayNameRow"
                                +mClassSuffix+"\" align=\"center\">");
                        pw.print( mDayNames[d] );
                        pw.print("</th>");
                        continue;
                    }
                    
                    // determine URL for this calendar day
                    Date tddate = cal.getTime();
                    String url = model.computeUrl(tddate, false, false);
                    String content = model.getContent( tddate );
                    
                    if // day is in calendar month
                            ((cal.get(Calendar.MONTH) == dayCal.get(Calendar.MONTH))
                            && (cal.get(Calendar.YEAR) == dayCal.get(Calendar.YEAR))) {
                        if // day is today then use today style
                                ((          cal.get(Calendar.DAY_OF_MONTH)
                                == todayCal.get(Calendar.DAY_OF_MONTH))
                                && (        cal.get(Calendar.MONTH)
                                == todayCal.get(Calendar.MONTH))
                                && (        cal.get(Calendar.YEAR)
                                == todayCal.get(Calendar.YEAR))) {
                            printToday(pw, cal, url, content);
                        } else {
                            printDayInThisMonth(pw, cal, url, content);
                        }
                    } else // apply day-not-in-month style ;-)
                    {
                        printDayNotInMonth(pw, cal);
                    }
                    
                    // increment calendar by one day
                    cal.add( Calendar.DATE, 1 );
                }
                pw.print("</tr>");
            }
            
            pw.print("<tr class=\"hCalendarNextPrev"
                    +mClassSuffix+"\">");
            pw.print("<td colspan=\"7\" align=\"center\">");
            
            pw.print("<a href=\""+model.computeTodayMonthUrl()
            +"\" class=\"hCalendarNavBar\">"
                    +bundle.getString("calendar.today")
                    +"</a>");
            
            pw.print("</td>");
            pw.print("</tr>");
            
            pw.print("</table>");
        } catch (Exception e) {
            pw.print("<span class=\"error\">");
            pw.print("<p><b>An ERROR has occured CalendarTag</b></p>");
            pw.print("</span>");
            mLogger.error("Calendar tag exception",e);
    //#CalendarTag.java:256: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag
    //#    method: int doStartTag(PrintWriter)
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
        }
        return Tag.SKIP_BODY;
    //#CalendarTag.java:258: end of method: int org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag.doStartTag(PrintWriter)
    }
    
    private void printDayNotInMonth(PrintWriter pw, Calendar cal) {
        pw.print("<td class=\"hCalendarDayNotInMonth"+mClassSuffix+"\">");
    //#CalendarTag.java:262: method: void org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag.printDayNotInMonth(PrintWriter, Calendar)
    //#input(void printDayNotInMonth(PrintWriter, Calendar)): "">"._tainted
    //#input(void printDayNotInMonth(PrintWriter, Calendar)): "<td class="hCalendarDayNotInMonth"._tainted
    //#input(void printDayNotInMonth(PrintWriter, Calendar)): pw
    //#input(void printDayNotInMonth(PrintWriter, Calendar)): this
    //#input(void printDayNotInMonth(PrintWriter, Calendar)): this.mClassSuffix
    //#input(void printDayNotInMonth(PrintWriter, Calendar)): this.mClassSuffix._tainted
    //#pre[1] (void printDayNotInMonth(PrintWriter, Calendar)): pw != null
    //#pre[3] (void printDayNotInMonth(PrintWriter, Calendar)): init'ed(this.mClassSuffix)
        //pw.print(cal.get(Calendar.DAY_OF_MONTH));
        pw.print("&nbsp;");
        pw.print("</td>");
    }
    //#CalendarTag.java:266: end of method: void org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag.printDayNotInMonth(PrintWriter, Calendar)
    
    private void printDayInThisMonth(PrintWriter pw, Calendar cal, String url, String content) {
        if ( content!=null ) {
    //#CalendarTag.java:269: method: void org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag.printDayInThisMonth(PrintWriter, Calendar, String, String)
    //#input(void printDayInThisMonth(PrintWriter, Calendar, String, String)): "">"._tainted
    //#input(void printDayInThisMonth(PrintWriter, Calendar, String, String)): "<a href=""._tainted
    //#input(void printDayInThisMonth(PrintWriter, Calendar, String, String)): "<div class="hCalendarDayTitle"._tainted
    //#input(void printDayInThisMonth(PrintWriter, Calendar, String, String)): "<td class="hCalendarDay"._tainted
    //#input(void printDayInThisMonth(PrintWriter, Calendar, String, String)): "<td class="hCalendarDayCurrent"._tainted
    //#input(void printDayInThisMonth(PrintWriter, Calendar, String, String)): "<td class="hCalendarDayLinked"._tainted
    //#input(void printDayInThisMonth(PrintWriter, Calendar, String, String)): cal
    //#input(void printDayInThisMonth(PrintWriter, Calendar, String, String)): content
    //#input(void printDayInThisMonth(PrintWriter, Calendar, String, String)): pw
    //#input(void printDayInThisMonth(PrintWriter, Calendar, String, String)): this
    //#input(void printDayInThisMonth(PrintWriter, Calendar, String, String)): this.mClassSuffix
    //#input(void printDayInThisMonth(PrintWriter, Calendar, String, String)): this.mClassSuffix._tainted
    //#input(void printDayInThisMonth(PrintWriter, Calendar, String, String)): url
    //#input(void printDayInThisMonth(PrintWriter, Calendar, String, String)): url._tainted
    //#pre[7] (void printDayInThisMonth(PrintWriter, Calendar, String, String)): pw != null
    //#pre[9] (void printDayInThisMonth(PrintWriter, Calendar, String, String)): init'ed(this.mClassSuffix)
    //#pre[4] (void printDayInThisMonth(PrintWriter, Calendar, String, String)): (soft) cal != null
    //#test_vector(void printDayInThisMonth(PrintWriter, Calendar, String, String)): content: Addr_Set{null}, Inverse{null}
    //#test_vector(void printDayInThisMonth(PrintWriter, Calendar, String, String)): url: Addr_Set{null}, Inverse{null}
            pw.print("<td class=\"hCalendarDayCurrent"
                    +mClassSuffix+"\">");
            pw.print( content );
            pw.print("</td>");
        } else if (url!=null) {
            pw.print("<td class=\"hCalendarDayLinked"
                    +mClassSuffix+"\">");
            pw.print("<div class=\"hCalendarDayTitle"
                    +mClassSuffix+"\">");
            pw.print("<a href=\""+url+"\">");
            pw.print(cal.get(Calendar.DAY_OF_MONTH));
            pw.print("</a></div>");
            pw.print("</td>");
        } else {
            pw.print("<td class=\"hCalendarDay"
                    +mClassSuffix+"\">");
            pw.print("<div class=\"hCalendarDayTitle"
                    +mClassSuffix+"\">");
            pw.print(cal.get(Calendar.DAY_OF_MONTH));
            pw.print("</div>");
            pw.print("</td>");
        }
    }
    //#CalendarTag.java:292: end of method: void org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag.printDayInThisMonth(PrintWriter, Calendar, String, String)
    
    private void printToday(PrintWriter pw, Calendar cal, String url, String content) {
        if ( content!=null ) {
    //#CalendarTag.java:295: method: void org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag.printToday(PrintWriter, Calendar, String, String)
    //#input(void printToday(PrintWriter, Calendar, String, String)): "" "._tainted
    //#input(void printToday(PrintWriter, Calendar, String, String)): "">"._tainted
    //#input(void printToday(PrintWriter, Calendar, String, String)): "<a href=""._tainted
    //#input(void printToday(PrintWriter, Calendar, String, String)): "<div class="hCalendarDayTitle"._tainted
    //#input(void printToday(PrintWriter, Calendar, String, String)): "<td class="hCalendarDayCurrent"._tainted
    //#input(void printToday(PrintWriter, Calendar, String, String)): "class="hCalendarDayTitle"._tainted
    //#input(void printToday(PrintWriter, Calendar, String, String)): cal
    //#input(void printToday(PrintWriter, Calendar, String, String)): content
    //#input(void printToday(PrintWriter, Calendar, String, String)): pw
    //#input(void printToday(PrintWriter, Calendar, String, String)): this
    //#input(void printToday(PrintWriter, Calendar, String, String)): this.mClassSuffix
    //#input(void printToday(PrintWriter, Calendar, String, String)): this.mClassSuffix._tainted
    //#input(void printToday(PrintWriter, Calendar, String, String)): url
    //#input(void printToday(PrintWriter, Calendar, String, String)): url._tainted
    //#pre[7] (void printToday(PrintWriter, Calendar, String, String)): pw != null
    //#pre[9] (void printToday(PrintWriter, Calendar, String, String)): init'ed(this.mClassSuffix)
    //#pre[4] (void printToday(PrintWriter, Calendar, String, String)): (soft) cal != null
    //#test_vector(void printToday(PrintWriter, Calendar, String, String)): content: Addr_Set{null}, Inverse{null}
    //#test_vector(void printToday(PrintWriter, Calendar, String, String)): url: Addr_Set{null}, Inverse{null}
            pw.print("<td class=\"hCalendarDayCurrent"
                    +mClassSuffix+"\">");
            pw.print( content );
            pw.print("</td>");
        } else if (url!=null) {
            pw.print("<td class=\"hCalendarDayCurrent"
                    +mClassSuffix+"\">");
            pw.print("<a href=\""+url+"\" "
                    +"class=\"hCalendarDayTitle"+mClassSuffix+"\">");
            pw.print(cal.get(Calendar.DAY_OF_MONTH));
            pw.print("</a>");
            pw.print("</td>");
        } else {
            pw.print("<td class=\"hCalendarDayCurrent"
                    +mClassSuffix+"\">");
            pw.print("<div class=\"hCalendarDayTitle"
                    +mClassSuffix+"\">");
            pw.print(cal.get(Calendar.DAY_OF_MONTH));
            pw.print("</div></td>");
        }
    }
    //#CalendarTag.java:316: end of method: void org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag.printToday(PrintWriter, Calendar, String, String)
    
    /**
     * Helper method to build the names of the weekdays. This
     * used to take place in the <code>CalendarTag</code> constructor,
     * but there, <code>mLocale</code> doesn't have the correct value yet.
     */
    private void buildDayNames() {
        // build array of names of days of week
        mDayNames = new String[7];
    //#CalendarTag.java:325: method: void org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag.buildDayNames()
    //#input(void buildDayNames()): this
    //#input(void buildDayNames()): this.mDayNames.length
    //#input(void buildDayNames()): this.mLocale
    //#output(void buildDayNames()): new String[](buildDayNames#1) num objects
    //#output(void buildDayNames()): this.mDayNames.length
    //#output(void buildDayNames()): this.mDayNames[0..4_294_967_295]
    //#output(void buildDayNames()): this.mDayNames
    //#new obj(void buildDayNames()): new String[](buildDayNames#1)
    //#pre[3] (void buildDayNames()): init'ed(this.mLocale)
    //#presumption(void buildDayNames()): java.util.Calendar:getInstance(...)@326 != null
    //#post(void buildDayNames()): this.mDayNames == &new String[](buildDayNames#1)
    //#post(void buildDayNames()): possibly_updated(this.mDayNames[0..4_294_967_295])
    //#post(void buildDayNames()): new String[](buildDayNames#1) num objects == 1
    //#post(void buildDayNames()): this.mDayNames.length == 7
    //#post(void buildDayNames()): init'ed(this.mDayNames[0..4_294_967_295])
        Calendar dayNameCal = Calendar.getInstance(mLocale);
        SimpleDateFormat dayFormatter = new SimpleDateFormat("EEE", mLocale);
        dayNameCal.set(Calendar.DAY_OF_WEEK, dayNameCal.getFirstDayOfWeek());
        for (int dnum = 0; dnum < 7; dnum++) {
            mDayNames[dnum] = dayFormatter.format(dayNameCal.getTime());
            dayNameCal.add(Calendar.DATE, 1);
        }
    }
    //#CalendarTag.java:333: end of method: void org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag.buildDayNames()
    
    
    public String toString() {
        String ret = null;
    //#CalendarTag.java:337: method: String org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag.toString()
    //#CalendarTag.java:337: Warning: unused assignment
    //#    unused assignment into ret
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag
    //#    method: String toString()
    //#    Attribs:  Uncertain
    //#input(String toString()): " <a href=""._tainted
    //#input(String toString()): " summary=""._tainted
    //#input(String toString()): "" "._tainted
    //#input(String toString()): "" align="center">"._tainted
    //#input(String toString()): "" class="hCalendarNavBar">"._tainted
    //#input(String toString()): "" class="hCalendarNavBar">&amp;laquo;<.a> "._tainted
    //#input(String toString()): "" class="hCalendarNavBar">&amp;raquo;<.a>"._tainted
    //#input(String toString()): "" class="hCalendarTable"._tainted
    //#input(String toString()): "" title=""._tainted
    //#input(String toString()): "">"._tainted
    //#input(String toString()): "..."._tainted
    //#input(String toString()): "<.a>"._tainted
    //#input(String toString()): "<.a><.div>"._tainted
    //#input(String toString()): "<.div>"._tainted
    //#input(String toString()): "<a href=""._tainted
    //#input(String toString()): "<div class="bCalendarDayContentBig".>"._tainted
    //#input(String toString()): "<div class="bCalendarDayContentBig">"._tainted
    //#input(String toString()): "<div class="hCalendarDayTitle"._tainted
    //#input(String toString()): "<div class="hCalendarDayTitleBig">"._tainted
    //#input(String toString()): "<td class="hCalendarDay"._tainted
    //#input(String toString()): "<td class="hCalendarDayCurrent"._tainted
    //#input(String toString()): "<td class="hCalendarDayLinked"._tainted
    //#input(String toString()): "<td class="hCalendarDayNotInMonth"._tainted
    //#input(String toString()): "<td colspan="7" align="center" class="hCalendarMonthYearRow"._tainted
    //#input(String toString()): "<th class="hCalendarDayNameRow"._tainted
    //#input(String toString()): "<tr class="hCalendarNextPrev"._tainted
    //#input(String toString()): "class="hCalendarDayTitle"._tainted
    //#input(String toString()): __Descendant_Table[org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag]
    //#input(String toString()): __Descendant_Table[others]
    //#input(String toString()): __Dispatch_Table.doEndTag(Ljava/io/PrintWriter;)I
    //#input(String toString()): __Dispatch_Table.doStartTag(Ljava/io/PrintWriter;)I
    //#input(String toString()): mLogger
    //#input(String toString()): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.computeNextMonthUrl()Ljava/lang/String;
    //#input(String toString()): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.computePrevMonthUrl()Ljava/lang/String;
    //#input(String toString()): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.computeTodayMonthUrl()Ljava/lang/String;
    //#input(String toString()): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.computeUrl(Ljava/util/Date;ZZ)Ljava/lang/String;
    //#input(String toString()): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.getCalendar()Ljava/util/Calendar;
    //#input(String toString()): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.getContent(Ljava/util/Date;)Ljava/lang/String;
    //#input(String toString()): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.getDay()Ljava/util/Date;
    //#input(String toString()): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.getNextMonth()Ljava/util/Date;
    //#input(String toString()): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.getPrevMonth()Ljava/util/Date;
    //#input(String toString()): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.mSingleDayFormat
    //#input(String toString()): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.mStarDateFormat
    //#input(String toString()): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Descendant_Table[org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel]
    //#input(String toString()): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Descendant_Table[org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel]
    //#input(String toString()): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Descendant_Table[org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel]
    //#input(String toString()): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Descendant_Table[others]
    //#input(String toString()): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Dispatch_Table.computeNextMonthUrl()Ljava/lang/String;
    //#input(String toString()): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Dispatch_Table.computePrevMonthUrl()Ljava/lang/String;
    //#input(String toString()): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Dispatch_Table.computeTodayMonthUrl()Ljava/lang/String;
    //#input(String toString()): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Dispatch_Table.computeUrl(Ljava/util/Date;ZZ)Ljava/lang/String;
    //#input(String toString()): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Dispatch_Table.getCalendar()Ljava/util/Calendar;
    //#input(String toString()): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Dispatch_Table.getContent(Ljava/util/Date;)Ljava/lang/String;
    //#input(String toString()): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Dispatch_Table.getDay()Ljava/util/Date;
    //#input(String toString()): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Dispatch_Table.getNextMonth()Ljava/util/Date;
    //#input(String toString()): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Dispatch_Table.getPrevMonth()Ljava/util/Date;
    //#input(String toString()): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Descendant_Table[org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel]
    //#input(String toString()): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Descendant_Table[org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel]
    //#input(String toString()): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Descendant_Table[others]
    //#input(String toString()): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.computeNextMonthUrl()Ljava/lang/String;
    //#input(String toString()): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.computePrevMonthUrl()Ljava/lang/String;
    //#input(String toString()): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.computeTodayMonthUrl()Ljava/lang/String;
    //#input(String toString()): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.computeUrl(Ljava/util/Date;ZZ)Ljava/lang/String;
    //#input(String toString()): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.getCalendar()Ljava/util/Calendar;
    //#input(String toString()): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.getContent(Ljava/util/Date;)Ljava/lang/String;
    //#input(String toString()): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.getDay()Ljava/util/Date;
    //#input(String toString()): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.getNextMonth()Ljava/util/Date;
    //#input(String toString()): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.getPrevMonth()Ljava/util/Date;
    //#input(String toString()): this
    //#input(String toString()): this.__Tag
    //#input(String toString()): this.mClassSuffix
    //#input(String toString()): this.mClassSuffix._tainted
    //#input(String toString()): this.mDayNames.length
    //#input(String toString()): this.mDayNames[0..4_294_967_295]
    //#input(String toString()): this.mLocale
    //#input(String toString()): this.mModelName
    //#input(String toString()): this.mModelName._tainted
    //#input(String toString()): this.pageContext
    //#output(String toString()): java.io.StringWriter:toString(...)._tainted
    //#output(String toString()): new String[](buildDayNames#1) num objects
    //#output(String toString()): new String[](buildDayNames#1).length
    //#output(String toString()): new String[](buildDayNames#1)[0..4_294_967_295]
    //#output(String toString()): return_value
    //#output(String toString()): this.mDayNames
    //#output(String toString()): this.mDayNames[0..4_294_967_295]
    //#new obj(String toString()): java.io.StringWriter:toString(...)
    //#new obj(String toString()): new String[](buildDayNames#1)
    //#pre[1] (String toString()): (soft) mLogger != null
    //#pre[3] (String toString()): (soft) init'ed(this.mDayNames[0..4_294_967_295])
    //#pre[7] (String toString()): (soft) this.__Tag == org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag
    //#pre[8] (String toString()): (soft) init'ed(this.mClassSuffix)
    //#pre[11] (String toString()): (soft) init'ed(this.mLocale)
    //#pre[12] (String toString()): (soft) init'ed(this.mModelName)
    //#pre[14] (String toString()): (soft) this.pageContext != null
    //#post(String toString()): java.io.StringWriter:toString(...)._tainted == 0
    //#post(String toString()): return_value == One-of{&java.io.StringWriter:toString(...), &"Exception in tag"}
    //#post(String toString()): return_value in Addr_Set{&java.io.StringWriter:toString(...),&"Exception in tag"}
    //#post(String toString()): this.mDayNames == One-of{&new String[](buildDayNames#1), old this.mDayNames}
    //#post(String toString()): (soft) init'ed(this.mDayNames[0..4_294_967_295])
    //#post(String toString()): new String[](buildDayNames#1) num objects <= 1
    //#post(String toString()): new String[](buildDayNames#1).length == 7
    //#post(String toString()): init'ed(new String[](buildDayNames#1)[0..4_294_967_295])
    //#unanalyzed(String toString()): Effects-of-calling:java.util.Calendar:getInstance
    //#unanalyzed(String toString()): Effects-of-calling:java.text.SimpleDateFormat
    //#unanalyzed(String toString()): Effects-of-calling:java.util.Calendar:getFirstDayOfWeek
    //#unanalyzed(String toString()): Effects-of-calling:java.util.Calendar:set
    //#unanalyzed(String toString()): Effects-of-calling:java.util.Calendar:getTime
    //#unanalyzed(String toString()): Effects-of-calling:java.text.SimpleDateFormat:format
    //#unanalyzed(String toString()): Effects-of-calling:java.util.Calendar:add
    //#unanalyzed(String toString()): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(String toString()): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(String toString()): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(String toString()): Effects-of-calling:java.io.PrintWriter:print
    //#unanalyzed(String toString()): Effects-of-calling:java.util.Calendar:get
    //#unanalyzed(String toString()): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(String toString()): Effects-of-calling:org.apache.commons.logging.Log:error
    //#unanalyzed(String toString()): Effects-of-calling:java.util.StringTokenizer
    //#unanalyzed(String toString()): Effects-of-calling:java.util.StringTokenizer:nextToken
    //#unanalyzed(String toString()): Effects-of-calling:java.util.StringTokenizer:hasMoreTokens
    //#unanalyzed(String toString()): Effects-of-calling:javax.servlet.jsp.PageContext:findAttribute
    //#unanalyzed(String toString()): Effects-of-calling:org.apache.commons.beanutils.PropertyUtils:getProperty
    //#unanalyzed(String toString()): Effects-of-calling:java.util.Date:clone
    //#unanalyzed(String toString()): Effects-of-calling:getDay
    //#unanalyzed(String toString()): Effects-of-calling:java.util.Calendar:clone
    //#unanalyzed(String toString()): Effects-of-calling:getCalendar
    //#unanalyzed(String toString()): Effects-of-calling:java.util.Date
    //#unanalyzed(String toString()): Effects-of-calling:java.util.Calendar:setTime
    //#unanalyzed(String toString()): Effects-of-calling:javax.servlet.jsp.PageContext:getRequest
    //#unanalyzed(String toString()): Effects-of-calling:java.util.ResourceBundle:getBundle
    //#unanalyzed(String toString()): Effects-of-calling:org.apache.roller.util.DateUtil:getNoonOfDay
    //#unanalyzed(String toString()): Effects-of-calling:java.util.Calendar:getMinimum
    //#unanalyzed(String toString()): Effects-of-calling:java.util.ResourceBundle:getString
    //#unanalyzed(String toString()): Effects-of-calling:getPrevMonth
    //#unanalyzed(String toString()): Effects-of-calling:org.apache.roller.util.DateUtil:get8charDateFormat
    //#unanalyzed(String toString()): Effects-of-calling:java.text.SimpleDateFormat:setCalendar
    //#unanalyzed(String toString()): Effects-of-calling:org.apache.roller.util.DateUtil:get6charDateFormat
    //#unanalyzed(String toString()): Effects-of-calling:org.apache.roller.util.DateUtil:format
    //#unanalyzed(String toString()): Effects-of-calling:org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger
    //#unanalyzed(String toString()): Effects-of-calling:org.apache.roller.weblogger.business.Weblogger:getUrlStrategy
    //#unanalyzed(String toString()): Effects-of-calling:org.apache.roller.weblogger.business.URLStrategy:getWeblogCollectionURL
    //#unanalyzed(String toString()): Effects-of-calling:org.apache.roller.weblogger.business.URLStrategy:getWeblogPageURL
    //#unanalyzed(String toString()): Effects-of-calling:java.util.Map:get
    //#unanalyzed(String toString()): Effects-of-calling:computeUrl
    //#unanalyzed(String toString()): Effects-of-calling:org.apache.roller.util.DateUtil:format8chars
    //#unanalyzed(String toString()): Effects-of-calling:java.util.List:get
    //#unanalyzed(String toString()): Effects-of-calling:org.apache.roller.weblogger.pojos.WeblogEntry:getPubTime
    //#unanalyzed(String toString()): Effects-of-calling:org.apache.roller.util.DateUtil:format6chars
    //#unanalyzed(String toString()): Effects-of-calling:computePrevMonthUrl
    //#unanalyzed(String toString()): Effects-of-calling:getNextMonth
    //#unanalyzed(String toString()): Effects-of-calling:computeNextMonthUrl
    //#unanalyzed(String toString()): Effects-of-calling:java.lang.StringBuffer
    //#unanalyzed(String toString()): Effects-of-calling:java.lang.StringBuffer:append
    //#unanalyzed(String toString()): Effects-of-calling:java.util.List:size
    //#unanalyzed(String toString()): Effects-of-calling:org.apache.roller.weblogger.pojos.WeblogEntry:getPermalink
    //#unanalyzed(String toString()): Effects-of-calling:org.apache.roller.weblogger.pojos.WeblogEntry:getTitle
    //#unanalyzed(String toString()): Effects-of-calling:java.lang.String:trim
    //#unanalyzed(String toString()): Effects-of-calling:java.lang.String:length
    //#unanalyzed(String toString()): Effects-of-calling:org.apache.roller.weblogger.pojos.WeblogEntry:getAnchor
    //#unanalyzed(String toString()): Effects-of-calling:java.lang.String:substring
    //#unanalyzed(String toString()): Effects-of-calling:java.lang.StringBuffer:toString
    //#unanalyzed(String toString()): Effects-of-calling:getContent
    //#unanalyzed(String toString()): Effects-of-calling:computeTodayMonthUrl
        try {
            StringWriter sw = new StringWriter();
            doStartTag( new PrintWriter( sw, true ));
            // See, design precludes contents
            doEndTag( new PrintWriter( sw, true ));
            ret = sw.toString();
        } catch (Exception e) {
            ret = "Exception in tag";
            mLogger.error(ret,e);
    //#CalendarTag.java:346: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag
    //#    method: String toString()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
        }
        return ret;
    //#CalendarTag.java:348: end of method: String org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag.toString()
    }
    
    public String emit() {
        return toString();
    //#CalendarTag.java:352: method: String org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag.emit()
    //#input(String emit()): " <a href=""._tainted
    //#input(String emit()): " summary=""._tainted
    //#input(String emit()): "" "._tainted
    //#input(String emit()): "" align="center">"._tainted
    //#input(String emit()): "" class="hCalendarNavBar">"._tainted
    //#input(String emit()): "" class="hCalendarNavBar">&amp;laquo;<.a> "._tainted
    //#input(String emit()): "" class="hCalendarNavBar">&amp;raquo;<.a>"._tainted
    //#input(String emit()): "" class="hCalendarTable"._tainted
    //#input(String emit()): "" title=""._tainted
    //#input(String emit()): "">"._tainted
    //#input(String emit()): "..."._tainted
    //#input(String emit()): "<.a>"._tainted
    //#input(String emit()): "<.a><.div>"._tainted
    //#input(String emit()): "<.div>"._tainted
    //#input(String emit()): "<a href=""._tainted
    //#input(String emit()): "<div class="bCalendarDayContentBig".>"._tainted
    //#input(String emit()): "<div class="bCalendarDayContentBig">"._tainted
    //#input(String emit()): "<div class="hCalendarDayTitle"._tainted
    //#input(String emit()): "<div class="hCalendarDayTitleBig">"._tainted
    //#input(String emit()): "<td class="hCalendarDay"._tainted
    //#input(String emit()): "<td class="hCalendarDayCurrent"._tainted
    //#input(String emit()): "<td class="hCalendarDayLinked"._tainted
    //#input(String emit()): "<td class="hCalendarDayNotInMonth"._tainted
    //#input(String emit()): "<td colspan="7" align="center" class="hCalendarMonthYearRow"._tainted
    //#input(String emit()): "<th class="hCalendarDayNameRow"._tainted
    //#input(String emit()): "<tr class="hCalendarNextPrev"._tainted
    //#input(String emit()): "class="hCalendarDayTitle"._tainted
    //#input(String emit()): __Descendant_Table[org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag]
    //#input(String emit()): __Descendant_Table[others]
    //#input(String emit()): __Dispatch_Table.doEndTag(Ljava/io/PrintWriter;)I
    //#input(String emit()): __Dispatch_Table.doStartTag(Ljava/io/PrintWriter;)I
    //#input(String emit()): __Dispatch_Table.toString()Ljava/lang/String;
    //#input(String emit()): mLogger
    //#input(String emit()): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.computeNextMonthUrl()Ljava/lang/String;
    //#input(String emit()): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.computePrevMonthUrl()Ljava/lang/String;
    //#input(String emit()): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.computeTodayMonthUrl()Ljava/lang/String;
    //#input(String emit()): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.computeUrl(Ljava/util/Date;ZZ)Ljava/lang/String;
    //#input(String emit()): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.getCalendar()Ljava/util/Calendar;
    //#input(String emit()): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.getContent(Ljava/util/Date;)Ljava/lang/String;
    //#input(String emit()): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.getDay()Ljava/util/Date;
    //#input(String emit()): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.getNextMonth()Ljava/util/Date;
    //#input(String emit()): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.getPrevMonth()Ljava/util/Date;
    //#input(String emit()): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.mSingleDayFormat
    //#input(String emit()): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.mStarDateFormat
    //#input(String emit()): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Descendant_Table[org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel]
    //#input(String emit()): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Descendant_Table[org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel]
    //#input(String emit()): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Descendant_Table[org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel]
    //#input(String emit()): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Descendant_Table[others]
    //#input(String emit()): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Dispatch_Table.computeNextMonthUrl()Ljava/lang/String;
    //#input(String emit()): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Dispatch_Table.computePrevMonthUrl()Ljava/lang/String;
    //#input(String emit()): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Dispatch_Table.computeTodayMonthUrl()Ljava/lang/String;
    //#input(String emit()): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Dispatch_Table.computeUrl(Ljava/util/Date;ZZ)Ljava/lang/String;
    //#input(String emit()): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Dispatch_Table.getCalendar()Ljava/util/Calendar;
    //#input(String emit()): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Dispatch_Table.getContent(Ljava/util/Date;)Ljava/lang/String;
    //#input(String emit()): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Dispatch_Table.getDay()Ljava/util/Date;
    //#input(String emit()): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Dispatch_Table.getNextMonth()Ljava/util/Date;
    //#input(String emit()): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Dispatch_Table.getPrevMonth()Ljava/util/Date;
    //#input(String emit()): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Descendant_Table[org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel]
    //#input(String emit()): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Descendant_Table[org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel]
    //#input(String emit()): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Descendant_Table[others]
    //#input(String emit()): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.computeNextMonthUrl()Ljava/lang/String;
    //#input(String emit()): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.computePrevMonthUrl()Ljava/lang/String;
    //#input(String emit()): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.computeTodayMonthUrl()Ljava/lang/String;
    //#input(String emit()): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.computeUrl(Ljava/util/Date;ZZ)Ljava/lang/String;
    //#input(String emit()): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.getCalendar()Ljava/util/Calendar;
    //#input(String emit()): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.getContent(Ljava/util/Date;)Ljava/lang/String;
    //#input(String emit()): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.getDay()Ljava/util/Date;
    //#input(String emit()): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.getNextMonth()Ljava/util/Date;
    //#input(String emit()): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.getPrevMonth()Ljava/util/Date;
    //#input(String emit()): this
    //#input(String emit()): this.__Tag
    //#input(String emit()): this.mClassSuffix
    //#input(String emit()): this.mClassSuffix._tainted
    //#input(String emit()): this.mDayNames.length
    //#input(String emit()): this.mDayNames[0..4_294_967_295]
    //#input(String emit()): this.mLocale
    //#input(String emit()): this.mModelName
    //#input(String emit()): this.mModelName._tainted
    //#input(String emit()): this.pageContext
    //#output(String emit()): java.io.StringWriter:toString(...)._tainted
    //#output(String emit()): new String[](buildDayNames#1) num objects
    //#output(String emit()): new String[](buildDayNames#1).length
    //#output(String emit()): new String[](buildDayNames#1)[0..4_294_967_295]
    //#output(String emit()): return_value
    //#output(String emit()): this.mDayNames
    //#output(String emit()): this.mDayNames[0..4_294_967_295]
    //#new obj(String emit()): java.io.StringWriter:toString(...)
    //#new obj(String emit()): new String[](buildDayNames#1)
    //#pre[7] (String emit()): this.__Tag == org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag
    //#pre[1] (String emit()): (soft) mLogger != null
    //#pre[3] (String emit()): (soft) init'ed(this.mDayNames[0..4_294_967_295])
    //#pre[8] (String emit()): (soft) init'ed(this.mClassSuffix)
    //#pre[11] (String emit()): (soft) init'ed(this.mLocale)
    //#pre[12] (String emit()): (soft) init'ed(this.mModelName)
    //#pre[14] (String emit()): (soft) this.pageContext != null
    //#post(String emit()): java.io.StringWriter:toString(...)._tainted == 0
    //#post(String emit()): return_value == One-of{&java.io.StringWriter:toString(...), &"Exception in tag"}
    //#post(String emit()): return_value in Addr_Set{&java.io.StringWriter:toString(...),&"Exception in tag"}
    //#post(String emit()): this.mDayNames == One-of{&new String[](buildDayNames#1), old this.mDayNames}
    //#post(String emit()): (soft) init'ed(this.mDayNames[0..4_294_967_295])
    //#post(String emit()): new String[](buildDayNames#1) num objects <= 1
    //#post(String emit()): new String[](buildDayNames#1).length == 7
    //#post(String emit()): init'ed(new String[](buildDayNames#1)[0..4_294_967_295])
    //#unanalyzed(String emit()): Effects-of-calling:java.util.Calendar:getInstance
    //#unanalyzed(String emit()): Effects-of-calling:java.text.SimpleDateFormat
    //#unanalyzed(String emit()): Effects-of-calling:java.util.Calendar:getFirstDayOfWeek
    //#unanalyzed(String emit()): Effects-of-calling:java.util.Calendar:set
    //#unanalyzed(String emit()): Effects-of-calling:java.util.Calendar:getTime
    //#unanalyzed(String emit()): Effects-of-calling:java.text.SimpleDateFormat:format
    //#unanalyzed(String emit()): Effects-of-calling:java.util.Calendar:add
    //#unanalyzed(String emit()): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(String emit()): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(String emit()): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(String emit()): Effects-of-calling:java.io.PrintWriter:print
    //#unanalyzed(String emit()): Effects-of-calling:java.util.Calendar:get
    //#unanalyzed(String emit()): Effects-of-calling:java.io.PrintWriter
    //#unanalyzed(String emit()): Effects-of-calling:java.io.StringWriter
    //#unanalyzed(String emit()): Effects-of-calling:doStartTag
    //#unanalyzed(String emit()): Effects-of-calling:java.io.StringWriter:toString
    //#unanalyzed(String emit()): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(String emit()): Effects-of-calling:org.apache.commons.logging.Log:error
    //#unanalyzed(String emit()): Effects-of-calling:java.util.StringTokenizer
    //#unanalyzed(String emit()): Effects-of-calling:java.util.StringTokenizer:nextToken
    //#unanalyzed(String emit()): Effects-of-calling:java.util.StringTokenizer:hasMoreTokens
    //#unanalyzed(String emit()): Effects-of-calling:javax.servlet.jsp.PageContext:findAttribute
    //#unanalyzed(String emit()): Effects-of-calling:org.apache.commons.beanutils.PropertyUtils:getProperty
    //#unanalyzed(String emit()): Effects-of-calling:java.util.Date:clone
    //#unanalyzed(String emit()): Effects-of-calling:getDay
    //#unanalyzed(String emit()): Effects-of-calling:java.util.Calendar:clone
    //#unanalyzed(String emit()): Effects-of-calling:getCalendar
    //#unanalyzed(String emit()): Effects-of-calling:java.util.Date
    //#unanalyzed(String emit()): Effects-of-calling:java.util.Calendar:setTime
    //#unanalyzed(String emit()): Effects-of-calling:javax.servlet.jsp.PageContext:getRequest
    //#unanalyzed(String emit()): Effects-of-calling:java.util.ResourceBundle:getBundle
    //#unanalyzed(String emit()): Effects-of-calling:org.apache.roller.util.DateUtil:getNoonOfDay
    //#unanalyzed(String emit()): Effects-of-calling:java.util.Calendar:getMinimum
    //#unanalyzed(String emit()): Effects-of-calling:java.util.ResourceBundle:getString
    //#unanalyzed(String emit()): Effects-of-calling:getPrevMonth
    //#unanalyzed(String emit()): Effects-of-calling:org.apache.roller.util.DateUtil:get8charDateFormat
    //#unanalyzed(String emit()): Effects-of-calling:java.text.SimpleDateFormat:setCalendar
    //#unanalyzed(String emit()): Effects-of-calling:org.apache.roller.util.DateUtil:get6charDateFormat
    //#unanalyzed(String emit()): Effects-of-calling:org.apache.roller.util.DateUtil:format
    //#unanalyzed(String emit()): Effects-of-calling:org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger
    //#unanalyzed(String emit()): Effects-of-calling:org.apache.roller.weblogger.business.Weblogger:getUrlStrategy
    //#unanalyzed(String emit()): Effects-of-calling:org.apache.roller.weblogger.business.URLStrategy:getWeblogCollectionURL
    //#unanalyzed(String emit()): Effects-of-calling:org.apache.roller.weblogger.business.URLStrategy:getWeblogPageURL
    //#unanalyzed(String emit()): Effects-of-calling:java.util.Map:get
    //#unanalyzed(String emit()): Effects-of-calling:computeUrl
    //#unanalyzed(String emit()): Effects-of-calling:org.apache.roller.util.DateUtil:format8chars
    //#unanalyzed(String emit()): Effects-of-calling:java.util.List:get
    //#unanalyzed(String emit()): Effects-of-calling:org.apache.roller.weblogger.pojos.WeblogEntry:getPubTime
    //#unanalyzed(String emit()): Effects-of-calling:org.apache.roller.util.DateUtil:format6chars
    //#unanalyzed(String emit()): Effects-of-calling:computePrevMonthUrl
    //#unanalyzed(String emit()): Effects-of-calling:getNextMonth
    //#unanalyzed(String emit()): Effects-of-calling:computeNextMonthUrl
    //#unanalyzed(String emit()): Effects-of-calling:java.lang.StringBuffer
    //#unanalyzed(String emit()): Effects-of-calling:java.lang.StringBuffer:append
    //#unanalyzed(String emit()): Effects-of-calling:java.util.List:size
    //#unanalyzed(String emit()): Effects-of-calling:org.apache.roller.weblogger.pojos.WeblogEntry:getPermalink
    //#unanalyzed(String emit()): Effects-of-calling:org.apache.roller.weblogger.pojos.WeblogEntry:getTitle
    //#unanalyzed(String emit()): Effects-of-calling:java.lang.String:trim
    //#unanalyzed(String emit()): Effects-of-calling:java.lang.String:length
    //#unanalyzed(String emit()): Effects-of-calling:org.apache.roller.weblogger.pojos.WeblogEntry:getAnchor
    //#unanalyzed(String emit()): Effects-of-calling:java.lang.String:substring
    //#unanalyzed(String emit()): Effects-of-calling:java.lang.StringBuffer:toString
    //#unanalyzed(String emit()): Effects-of-calling:getContent
    //#unanalyzed(String emit()): Effects-of-calling:computeTodayMonthUrl
    //#CalendarTag.java:352: end of method: String org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag.emit()
    }
    
    public int doStartTag() throws JspException {
        return doStartTag( new PrintWriter( pageContext.getOut(), true) );
    //#CalendarTag.java:356: method: int org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag.doStartTag()
    //#input(int doStartTag()): " <a href=""._tainted
    //#input(int doStartTag()): " summary=""._tainted
    //#input(int doStartTag()): "" "._tainted
    //#input(int doStartTag()): "" align="center">"._tainted
    //#input(int doStartTag()): "" class="hCalendarNavBar">"._tainted
    //#input(int doStartTag()): "" class="hCalendarNavBar">&amp;laquo;<.a> "._tainted
    //#input(int doStartTag()): "" class="hCalendarNavBar">&amp;raquo;<.a>"._tainted
    //#input(int doStartTag()): "" class="hCalendarTable"._tainted
    //#input(int doStartTag()): "" title=""._tainted
    //#input(int doStartTag()): "">"._tainted
    //#input(int doStartTag()): "..."._tainted
    //#input(int doStartTag()): "<.a>"._tainted
    //#input(int doStartTag()): "<.a><.div>"._tainted
    //#input(int doStartTag()): "<.div>"._tainted
    //#input(int doStartTag()): "<a href=""._tainted
    //#input(int doStartTag()): "<div class="bCalendarDayContentBig".>"._tainted
    //#input(int doStartTag()): "<div class="bCalendarDayContentBig">"._tainted
    //#input(int doStartTag()): "<div class="hCalendarDayTitle"._tainted
    //#input(int doStartTag()): "<div class="hCalendarDayTitleBig">"._tainted
    //#input(int doStartTag()): "<td class="hCalendarDay"._tainted
    //#input(int doStartTag()): "<td class="hCalendarDayCurrent"._tainted
    //#input(int doStartTag()): "<td class="hCalendarDayLinked"._tainted
    //#input(int doStartTag()): "<td class="hCalendarDayNotInMonth"._tainted
    //#input(int doStartTag()): "<td colspan="7" align="center" class="hCalendarMonthYearRow"._tainted
    //#input(int doStartTag()): "<th class="hCalendarDayNameRow"._tainted
    //#input(int doStartTag()): "<tr class="hCalendarNextPrev"._tainted
    //#input(int doStartTag()): "class="hCalendarDayTitle"._tainted
    //#input(int doStartTag()): __Descendant_Table[org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag]
    //#input(int doStartTag()): __Descendant_Table[others]
    //#input(int doStartTag()): __Dispatch_Table.doStartTag(Ljava/io/PrintWriter;)I
    //#input(int doStartTag()): mLogger
    //#input(int doStartTag()): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.computeNextMonthUrl()Ljava/lang/String;
    //#input(int doStartTag()): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.computePrevMonthUrl()Ljava/lang/String;
    //#input(int doStartTag()): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.computeTodayMonthUrl()Ljava/lang/String;
    //#input(int doStartTag()): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.computeUrl(Ljava/util/Date;ZZ)Ljava/lang/String;
    //#input(int doStartTag()): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.getCalendar()Ljava/util/Calendar;
    //#input(int doStartTag()): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.getContent(Ljava/util/Date;)Ljava/lang/String;
    //#input(int doStartTag()): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.getDay()Ljava/util/Date;
    //#input(int doStartTag()): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.getNextMonth()Ljava/util/Date;
    //#input(int doStartTag()): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.__Dispatch_Table.getPrevMonth()Ljava/util/Date;
    //#input(int doStartTag()): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.mSingleDayFormat
    //#input(int doStartTag()): org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel.mStarDateFormat
    //#input(int doStartTag()): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Descendant_Table[org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel]
    //#input(int doStartTag()): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Descendant_Table[org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel]
    //#input(int doStartTag()): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Descendant_Table[org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel]
    //#input(int doStartTag()): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Descendant_Table[others]
    //#input(int doStartTag()): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Dispatch_Table.computeNextMonthUrl()Ljava/lang/String;
    //#input(int doStartTag()): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Dispatch_Table.computePrevMonthUrl()Ljava/lang/String;
    //#input(int doStartTag()): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Dispatch_Table.computeTodayMonthUrl()Ljava/lang/String;
    //#input(int doStartTag()): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Dispatch_Table.computeUrl(Ljava/util/Date;ZZ)Ljava/lang/String;
    //#input(int doStartTag()): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Dispatch_Table.getCalendar()Ljava/util/Calendar;
    //#input(int doStartTag()): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Dispatch_Table.getContent(Ljava/util/Date;)Ljava/lang/String;
    //#input(int doStartTag()): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Dispatch_Table.getDay()Ljava/util/Date;
    //#input(int doStartTag()): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Dispatch_Table.getNextMonth()Ljava/util/Date;
    //#input(int doStartTag()): org/apache/roller/weblogger/ui/core/tags/calendar/CalendarModel.__Dispatch_Table.getPrevMonth()Ljava/util/Date;
    //#input(int doStartTag()): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Descendant_Table[org/apache/roller/weblogger/ui/core/tags/calendar/BigWeblogCalendarModel]
    //#input(int doStartTag()): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Descendant_Table[org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel]
    //#input(int doStartTag()): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Descendant_Table[others]
    //#input(int doStartTag()): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.computeNextMonthUrl()Ljava/lang/String;
    //#input(int doStartTag()): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.computePrevMonthUrl()Ljava/lang/String;
    //#input(int doStartTag()): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.computeTodayMonthUrl()Ljava/lang/String;
    //#input(int doStartTag()): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.computeUrl(Ljava/util/Date;ZZ)Ljava/lang/String;
    //#input(int doStartTag()): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.getCalendar()Ljava/util/Calendar;
    //#input(int doStartTag()): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.getContent(Ljava/util/Date;)Ljava/lang/String;
    //#input(int doStartTag()): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.getDay()Ljava/util/Date;
    //#input(int doStartTag()): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.getNextMonth()Ljava/util/Date;
    //#input(int doStartTag()): org/apache/roller/weblogger/ui/core/tags/calendar/WeblogCalendarModel.__Dispatch_Table.getPrevMonth()Ljava/util/Date;
    //#input(int doStartTag()): this
    //#input(int doStartTag()): this.__Tag
    //#input(int doStartTag()): this.mClassSuffix
    //#input(int doStartTag()): this.mClassSuffix._tainted
    //#input(int doStartTag()): this.mDayNames.length
    //#input(int doStartTag()): this.mDayNames[0..4_294_967_295]
    //#input(int doStartTag()): this.mLocale
    //#input(int doStartTag()): this.mModelName
    //#input(int doStartTag()): this.mModelName._tainted
    //#input(int doStartTag()): this.pageContext
    //#output(int doStartTag()): new String[](buildDayNames#1) num objects
    //#output(int doStartTag()): this.mDayNames.length
    //#output(int doStartTag()): this.mDayNames[0..4_294_967_295]
    //#output(int doStartTag()): return_value
    //#output(int doStartTag()): this.mDayNames
    //#new obj(int doStartTag()): new String[](buildDayNames#1)
    //#pre[7] (int doStartTag()): this.__Tag == org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag
    //#pre[14] (int doStartTag()): this.pageContext != null
    //#pre[1] (int doStartTag()): (soft) mLogger != null
    //#pre[3] (int doStartTag()): (soft) init'ed(this.mDayNames[0..4_294_967_295])
    //#pre[8] (int doStartTag()): (soft) init'ed(this.mClassSuffix)
    //#pre[11] (int doStartTag()): (soft) init'ed(this.mLocale)
    //#pre[12] (int doStartTag()): (soft) init'ed(this.mModelName)
    //#post(int doStartTag()): return_value == 0
    //#post(int doStartTag()): this.mDayNames == &new String[](buildDayNames#1)
    //#post(int doStartTag()): (soft) init'ed(this.mDayNames[0..4_294_967_295])
    //#post(int doStartTag()): new String[](buildDayNames#1) num objects == 1
    //#post(int doStartTag()): this.mDayNames.length == 7
    //#post(int doStartTag()): init'ed(this.mDayNames[0..4_294_967_295])
    //#unanalyzed(int doStartTag()): Effects-of-calling:java.util.Calendar:getInstance
    //#unanalyzed(int doStartTag()): Effects-of-calling:java.text.SimpleDateFormat
    //#unanalyzed(int doStartTag()): Effects-of-calling:java.util.Calendar:getFirstDayOfWeek
    //#unanalyzed(int doStartTag()): Effects-of-calling:java.util.Calendar:set
    //#unanalyzed(int doStartTag()): Effects-of-calling:java.util.Calendar:getTime
    //#unanalyzed(int doStartTag()): Effects-of-calling:java.text.SimpleDateFormat:format
    //#unanalyzed(int doStartTag()): Effects-of-calling:java.util.Calendar:add
    //#unanalyzed(int doStartTag()): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(int doStartTag()): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(int doStartTag()): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(int doStartTag()): Effects-of-calling:java.io.PrintWriter:print
    //#unanalyzed(int doStartTag()): Effects-of-calling:java.util.Calendar:get
    //#unanalyzed(int doStartTag()): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(int doStartTag()): Effects-of-calling:org.apache.commons.logging.Log:error
    //#unanalyzed(int doStartTag()): Effects-of-calling:java.util.StringTokenizer
    //#unanalyzed(int doStartTag()): Effects-of-calling:java.util.StringTokenizer:nextToken
    //#unanalyzed(int doStartTag()): Effects-of-calling:java.util.StringTokenizer:hasMoreTokens
    //#unanalyzed(int doStartTag()): Effects-of-calling:javax.servlet.jsp.PageContext:findAttribute
    //#unanalyzed(int doStartTag()): Effects-of-calling:org.apache.commons.beanutils.PropertyUtils:getProperty
    //#unanalyzed(int doStartTag()): Effects-of-calling:java.util.Date:clone
    //#unanalyzed(int doStartTag()): Effects-of-calling:getDay
    //#unanalyzed(int doStartTag()): Effects-of-calling:java.util.Calendar:clone
    //#unanalyzed(int doStartTag()): Effects-of-calling:getCalendar
    //#unanalyzed(int doStartTag()): Effects-of-calling:java.util.Date
    //#unanalyzed(int doStartTag()): Effects-of-calling:java.util.Calendar:setTime
    //#unanalyzed(int doStartTag()): Effects-of-calling:javax.servlet.jsp.PageContext:getRequest
    //#unanalyzed(int doStartTag()): Effects-of-calling:java.util.ResourceBundle:getBundle
    //#unanalyzed(int doStartTag()): Effects-of-calling:org.apache.roller.util.DateUtil:getNoonOfDay
    //#unanalyzed(int doStartTag()): Effects-of-calling:java.util.Calendar:getMinimum
    //#unanalyzed(int doStartTag()): Effects-of-calling:java.util.ResourceBundle:getString
    //#unanalyzed(int doStartTag()): Effects-of-calling:getPrevMonth
    //#unanalyzed(int doStartTag()): Effects-of-calling:org.apache.roller.util.DateUtil:get8charDateFormat
    //#unanalyzed(int doStartTag()): Effects-of-calling:java.text.SimpleDateFormat:setCalendar
    //#unanalyzed(int doStartTag()): Effects-of-calling:org.apache.roller.util.DateUtil:get6charDateFormat
    //#unanalyzed(int doStartTag()): Effects-of-calling:org.apache.roller.util.DateUtil:format
    //#unanalyzed(int doStartTag()): Effects-of-calling:org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger
    //#unanalyzed(int doStartTag()): Effects-of-calling:org.apache.roller.weblogger.business.Weblogger:getUrlStrategy
    //#unanalyzed(int doStartTag()): Effects-of-calling:org.apache.roller.weblogger.business.URLStrategy:getWeblogCollectionURL
    //#unanalyzed(int doStartTag()): Effects-of-calling:org.apache.roller.weblogger.business.URLStrategy:getWeblogPageURL
    //#unanalyzed(int doStartTag()): Effects-of-calling:java.util.Map:get
    //#unanalyzed(int doStartTag()): Effects-of-calling:computeUrl
    //#unanalyzed(int doStartTag()): Effects-of-calling:org.apache.roller.util.DateUtil:format8chars
    //#unanalyzed(int doStartTag()): Effects-of-calling:java.util.List:get
    //#unanalyzed(int doStartTag()): Effects-of-calling:org.apache.roller.weblogger.pojos.WeblogEntry:getPubTime
    //#unanalyzed(int doStartTag()): Effects-of-calling:org.apache.roller.util.DateUtil:format6chars
    //#unanalyzed(int doStartTag()): Effects-of-calling:computePrevMonthUrl
    //#unanalyzed(int doStartTag()): Effects-of-calling:getNextMonth
    //#unanalyzed(int doStartTag()): Effects-of-calling:computeNextMonthUrl
    //#unanalyzed(int doStartTag()): Effects-of-calling:java.lang.StringBuffer
    //#unanalyzed(int doStartTag()): Effects-of-calling:java.lang.StringBuffer:append
    //#unanalyzed(int doStartTag()): Effects-of-calling:java.util.List:size
    //#unanalyzed(int doStartTag()): Effects-of-calling:org.apache.roller.weblogger.pojos.WeblogEntry:getPermalink
    //#unanalyzed(int doStartTag()): Effects-of-calling:org.apache.roller.weblogger.pojos.WeblogEntry:getTitle
    //#unanalyzed(int doStartTag()): Effects-of-calling:java.lang.String:trim
    //#unanalyzed(int doStartTag()): Effects-of-calling:java.lang.String:length
    //#unanalyzed(int doStartTag()): Effects-of-calling:org.apache.roller.weblogger.pojos.WeblogEntry:getAnchor
    //#unanalyzed(int doStartTag()): Effects-of-calling:java.lang.String:substring
    //#unanalyzed(int doStartTag()): Effects-of-calling:java.lang.StringBuffer:toString
    //#unanalyzed(int doStartTag()): Effects-of-calling:getContent
    //#unanalyzed(int doStartTag()): Effects-of-calling:computeTodayMonthUrl
    //#CalendarTag.java:356: end of method: int org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag.doStartTag()
    }
    
    
    public int doEndTag() throws JspException {
        return doEndTag( new PrintWriter( pageContext.getOut(), true) );
    //#CalendarTag.java:361: method: int org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag.doEndTag()
    //#input(int doEndTag()): __Descendant_Table[org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag]
    //#input(int doEndTag()): __Descendant_Table[others]
    //#input(int doEndTag()): __Dispatch_Table.doEndTag(Ljava/io/PrintWriter;)I
    //#input(int doEndTag()): this
    //#input(int doEndTag()): this.__Tag
    //#input(int doEndTag()): this.pageContext
    //#output(int doEndTag()): return_value
    //#pre[2] (int doEndTag()): this.__Tag == org/apache/roller/weblogger/ui/core/tags/calendar/CalendarTag
    //#pre[3] (int doEndTag()): this.pageContext != null
    //#post(int doEndTag()): return_value == 6
    //#CalendarTag.java:361: end of method: int org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag.doEndTag()
    }
    
    /** Default processing of the end tag returning EVAL_PAGE. */
    public int doEndTag( PrintWriter pw ) throws JspException {
        return EVAL_PAGE;
    //#CalendarTag.java:366: method: int org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag.doEndTag(PrintWriter)
    //#output(int doEndTag(PrintWriter)): return_value
    //#post(int doEndTag(PrintWriter)): return_value == 6
    //#CalendarTag.java:366: end of method: int org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag.doEndTag(PrintWriter)
    }
    
}

    //#CalendarTag.java:: end of class: org.apache.roller.weblogger.ui.core.tags.calendar.CalendarTag
