//# 18 errors, 1,020 messages
//#
/*
    //#month.java:1:1: class: net.sourceforge.pebble.domain.Month
    //#month.java:1:1: method: net.sourceforge.pebble.domain.Month.net.sourceforge.pebble.domain.Month__static_init
 * Copyright (c) 2003-2006, Simon Brown
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 *   - Redistributions of source code must retain the above copyright
 *     notice, this list of conditions and the following disclaimer.
 *
 *   - Redistributions in binary form must reproduce the above copyright
 *     notice, this list of conditions and the following disclaimer in
 *     the documentation and/or other materials provided with the
 *     distribution.
 *
 *   - Neither the name of Pebble nor the names of its contributors may
 *     be used to endorse or promote products derived from this software
 *     without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */
package net.sourceforge.pebble.domain;

import java.text.SimpleDateFormat;
import java.util.*;

/**
 * Represents a blog at a monthly level. This manages a collection of Day instances.
 *
 * @author    Simon Brown
 */
public class Month extends TimePeriod implements Permalinkable {

  /** the parent, Year instance */
  private Year year;

  /** an integer representing the month that this Month is for */
  private int month;

  /** the collection of Day instances that this blog is managing */
  private Day[] dailyBlogs;

  /** the last day in this month */
  private int lastDayInMonth;

  /**
   * Creates a new Month based upon the specified Year and month.
   *
   * @param year    the owning Year instance
   * @param month         the month as an int
   */
  Month(Year year, int month) {
    super(year.getBlog());
    //#month.java:63: method: void net.sourceforge.pebble.domain.Month.net.sourceforge.pebble.domain.Month(Year, int)
    //#input(void net.sourceforge.pebble.domain.Month(Year, int)): __Descendant_Table[net/sourceforge/pebble/domain/Month]
    //#input(void net.sourceforge.pebble.domain.Month(Year, int)): __Descendant_Table[others]
    //#input(void net.sourceforge.pebble.domain.Month(Year, int)): __Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#input(void net.sourceforge.pebble.domain.Month(Year, int)): __Dispatch_Table.getDate()Ljava/util/Date;
    //#input(void net.sourceforge.pebble.domain.Month(Year, int)): __Dispatch_Table.getMonth()I
    //#input(void net.sourceforge.pebble.domain.Month(Year, int)): __Dispatch_Table.getYear()Lnet/sourceforge/pebble/domain/Year;
    //#input(void net.sourceforge.pebble.domain.Month(Year, int)): __Dispatch_Table.setDate(Ljava/util/Date;)V
    //#input(void net.sourceforge.pebble.domain.Month(Year, int)): month
    //#input(void net.sourceforge.pebble.domain.Month(Year, int)): net/sourceforge/pebble/domain/Day.__Descendant_Table[net/sourceforge/pebble/domain/Day]
    //#input(void net.sourceforge.pebble.domain.Month(Year, int)): net/sourceforge/pebble/domain/Day.__Descendant_Table[others]
    //#input(void net.sourceforge.pebble.domain.Month(Year, int)): net/sourceforge/pebble/domain/Day.__Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#input(void net.sourceforge.pebble.domain.Month(Year, int)): net/sourceforge/pebble/domain/Day.__Dispatch_Table.getDay()I
    //#input(void net.sourceforge.pebble.domain.Month(Year, int)): net/sourceforge/pebble/domain/Day.__Dispatch_Table.getMonth()Lnet/sourceforge/pebble/domain/Month;
    //#input(void net.sourceforge.pebble.domain.Month(Year, int)): net/sourceforge/pebble/domain/Day.__Dispatch_Table.setDate(Ljava/util/Date;)V
    //#input(void net.sourceforge.pebble.domain.Month(Year, int)): net/sourceforge/pebble/domain/Year.__Descendant_Table[net/sourceforge/pebble/domain/Year]
    //#input(void net.sourceforge.pebble.domain.Month(Year, int)): net/sourceforge/pebble/domain/Year.__Descendant_Table[others]
    //#input(void net.sourceforge.pebble.domain.Month(Year, int)): net/sourceforge/pebble/domain/Year.__Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#input(void net.sourceforge.pebble.domain.Month(Year, int)): net/sourceforge/pebble/domain/Year.__Dispatch_Table.getYear()I
    //#input(void net.sourceforge.pebble.domain.Month(Year, int)): this
    //#input(void net.sourceforge.pebble.domain.Month(Year, int)): this.__Tag
    //#input(void net.sourceforge.pebble.domain.Month(Year, int)): year
    //#input(void net.sourceforge.pebble.domain.Month(Year, int)): year.__Tag
    //#input(void net.sourceforge.pebble.domain.Month(Year, int)): year.blog
    //#input(void net.sourceforge.pebble.domain.Month(Year, int)): year.year
    //#output(void net.sourceforge.pebble.domain.Month(Year, int)): new ArrayList(Day#1) num objects
    //#output(void net.sourceforge.pebble.domain.Month(Year, int)): new ArrayList(Day#2) num objects
    //#output(void net.sourceforge.pebble.domain.Month(Year, int)): new ArrayList(Day#3) num objects
    //#output(void net.sourceforge.pebble.domain.Month(Year, int)): new Day(Month#2) num objects
    //#output(void net.sourceforge.pebble.domain.Month(Year, int)): new Day(Month#2).__Tag
    //#output(void net.sourceforge.pebble.domain.Month(Year, int)): new Day(Month#2).blog
    //#output(void net.sourceforge.pebble.domain.Month(Year, int)): new Day(Month#2).blogEntries
    //#output(void net.sourceforge.pebble.domain.Month(Year, int)): new Day(Month#2).date
    //#output(void net.sourceforge.pebble.domain.Month(Year, int)): new Day(Month#2).day
    //#output(void net.sourceforge.pebble.domain.Month(Year, int)): new Day(Month#2).month
    //#output(void net.sourceforge.pebble.domain.Month(Year, int)): new Day(Month#2).publishedBlogEntries
    //#output(void net.sourceforge.pebble.domain.Month(Year, int)): new Day(Month#2).unpublishedBlogEntries
    //#output(void net.sourceforge.pebble.domain.Month(Year, int)): new Day[](Month#1) num objects
    //#output(void net.sourceforge.pebble.domain.Month(Year, int)): this.dailyBlogs.length
    //#output(void net.sourceforge.pebble.domain.Month(Year, int)): this.dailyBlogs[0..4_294_967_293]
    //#output(void net.sourceforge.pebble.domain.Month(Year, int)): this.__Tag
    //#output(void net.sourceforge.pebble.domain.Month(Year, int)): this.blog
    //#output(void net.sourceforge.pebble.domain.Month(Year, int)): this.dailyBlogs
    //#output(void net.sourceforge.pebble.domain.Month(Year, int)): this.date
    //#output(void net.sourceforge.pebble.domain.Month(Year, int)): this.lastDayInMonth
    //#output(void net.sourceforge.pebble.domain.Month(Year, int)): this.month
    //#output(void net.sourceforge.pebble.domain.Month(Year, int)): this.year
    //#new obj(void net.sourceforge.pebble.domain.Month(Year, int)): new ArrayList(Day#1)
    //#new obj(void net.sourceforge.pebble.domain.Month(Year, int)): new ArrayList(Day#2)
    //#new obj(void net.sourceforge.pebble.domain.Month(Year, int)): new ArrayList(Day#3)
    //#new obj(void net.sourceforge.pebble.domain.Month(Year, int)): new Day(Month#2)
    //#new obj(void net.sourceforge.pebble.domain.Month(Year, int)): new Day[](Month#1)
    //#pre[1] (void net.sourceforge.pebble.domain.Month(Year, int)): month >= -2_147_483_647
    //#pre[2] (void net.sourceforge.pebble.domain.Month(Year, int)): this.__Tag == net/sourceforge/pebble/domain/Month
    //#pre[4] (void net.sourceforge.pebble.domain.Month(Year, int)): year != null
    //#pre[5] (void net.sourceforge.pebble.domain.Month(Year, int)): year.__Tag == net/sourceforge/pebble/domain/Year
    //#pre[6] (void net.sourceforge.pebble.domain.Month(Year, int)): year.blog != null
    //#pre[7] (void net.sourceforge.pebble.domain.Month(Year, int)): init'ed(year.year)
    //#presumption(void net.sourceforge.pebble.domain.Month(Year, int)): java.util.Calendar:getActualMaximum(...)@71 in 0..4_294_967_294
    //#presumption(void net.sourceforge.pebble.domain.Month(Year, int)): net.sourceforge.pebble.domain.Blog:getCalendar(...)@69 != null
    //#post(void net.sourceforge.pebble.domain.Month(Year, int)): this.__Tag == net/sourceforge/pebble/domain/Month
    //#post(void net.sourceforge.pebble.domain.Month(Year, int)): this.blog == year.blog
    //#post(void net.sourceforge.pebble.domain.Month(Year, int)): this.blog != null
    //#post(void net.sourceforge.pebble.domain.Month(Year, int)): this.dailyBlogs == &new Day[](Month#1)
    //#post(void net.sourceforge.pebble.domain.Month(Year, int)): init'ed(this.date)
    //#post(void net.sourceforge.pebble.domain.Month(Year, int)): (soft) this.lastDayInMonth in 0..4_294_967_294
    //#post(void net.sourceforge.pebble.domain.Month(Year, int)): this.dailyBlogs.length == this.lastDayInMonth
    //#post(void net.sourceforge.pebble.domain.Month(Year, int)): this.month == month
    //#post(void net.sourceforge.pebble.domain.Month(Year, int)): this.month >= -2_147_483_647
    //#post(void net.sourceforge.pebble.domain.Month(Year, int)): this.year == year
    //#post(void net.sourceforge.pebble.domain.Month(Year, int)): this.year != null
    //#post(void net.sourceforge.pebble.domain.Month(Year, int)): (soft) new ArrayList(Day#1) num objects <= 4_294_967_294
    //#post(void net.sourceforge.pebble.domain.Month(Year, int)): (soft) new ArrayList(Day#2) num objects <= 4_294_967_294
    //#post(void net.sourceforge.pebble.domain.Month(Year, int)): (soft) new ArrayList(Day#3) num objects <= 4_294_967_294
    //#post(void net.sourceforge.pebble.domain.Month(Year, int)): (soft) new Day(Month#2) num objects <= 4_294_967_294
    //#post(void net.sourceforge.pebble.domain.Month(Year, int)): init'ed(new Day(Month#2).__Tag)
    //#post(void net.sourceforge.pebble.domain.Month(Year, int)): init'ed(new Day(Month#2).blog)
    //#post(void net.sourceforge.pebble.domain.Month(Year, int)): init'ed(new Day(Month#2).blogEntries)
    //#post(void net.sourceforge.pebble.domain.Month(Year, int)): init'ed(new Day(Month#2).date)
    //#post(void net.sourceforge.pebble.domain.Month(Year, int)): init'ed(new Day(Month#2).day)
    //#post(void net.sourceforge.pebble.domain.Month(Year, int)): init'ed(new Day(Month#2).month)
    //#post(void net.sourceforge.pebble.domain.Month(Year, int)): init'ed(new Day(Month#2).publishedBlogEntries)
    //#post(void net.sourceforge.pebble.domain.Month(Year, int)): init'ed(new Day(Month#2).unpublishedBlogEntries)
    //#post(void net.sourceforge.pebble.domain.Month(Year, int)): new Day[](Month#1) num objects == 1
    //#post(void net.sourceforge.pebble.domain.Month(Year, int)): init'ed(this.dailyBlogs[0..4_294_967_293])
    //#post(void net.sourceforge.pebble.domain.Month(Year, int)): (soft) new ArrayList(Day#1) num objects == java.util.Calendar:getActualMaximum(...)@71
    //#post(void net.sourceforge.pebble.domain.Month(Year, int)): (soft) new ArrayList(Day#2) num objects == java.util.Calendar:getActualMaximum(...)@71
    //#post(void net.sourceforge.pebble.domain.Month(Year, int)): (soft) new ArrayList(Day#3) num objects == java.util.Calendar:getActualMaximum(...)@71
    //#post(void net.sourceforge.pebble.domain.Month(Year, int)): (soft) new Day(Month#2) num objects == java.util.Calendar:getActualMaximum(...)@71
    //#unanalyzed(void net.sourceforge.pebble.domain.Month(Year, int)): Effects-of-calling:getMonth
    //#unanalyzed(void net.sourceforge.pebble.domain.Month(Year, int)): Effects-of-calling:getBlog
    //#unanalyzed(void net.sourceforge.pebble.domain.Month(Year, int)): Effects-of-calling:net.sourceforge.pebble.domain.Blog:getCalendar
    //#unanalyzed(void net.sourceforge.pebble.domain.Month(Year, int)): Effects-of-calling:java.util.Calendar:set
    //#unanalyzed(void net.sourceforge.pebble.domain.Month(Year, int)): Effects-of-calling:java.util.Calendar:getTime
    //#unanalyzed(void net.sourceforge.pebble.domain.Month(Year, int)): Effects-of-calling:getYear
    //#unanalyzed(void net.sourceforge.pebble.domain.Month(Year, int)): Effects-of-calling:net.sourceforge.pebble.domain.Month:getBlog
    //#unanalyzed(void net.sourceforge.pebble.domain.Month(Year, int)): Effects-of-calling:net.sourceforge.pebble.domain.TimePeriod
    //#unanalyzed(void net.sourceforge.pebble.domain.Month(Year, int)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void net.sourceforge.pebble.domain.Month(Year, int)): Effects-of-calling:setDate

    this.year = year;
    this.month = month;
    setDate(getCalendar().getTime());

    Calendar cal = getBlog().getCalendar();
    //#month.java:69: Warning: method not available
    //#    -- call on Calendar net.sourceforge.pebble.domain.Blog:getCalendar()
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.domain.Month
    //#    method: void net.sourceforge.pebble.domain.Month(Year, int)
    //#    unanalyzed callee: Calendar net.sourceforge.pebble.domain.Blog:getCalendar()
    cal.setTime(getDate());
    this.lastDayInMonth = cal.getActualMaximum(Calendar.DAY_OF_MONTH);

    // and create all days
    dailyBlogs = new Day[lastDayInMonth];
    for (int day = 1; day <= lastDayInMonth; day++) {
      dailyBlogs[day-1] = new Day(this, day);
    }
  }
    //#month.java:78: end of method: void net.sourceforge.pebble.domain.Month.net.sourceforge.pebble.domain.Month(Year, int)

  private Calendar getCalendar() {
    // set the date corresponding to the 1st of the month
    // (this is used in determining whether another Month is
    // before or after this one)
    Calendar cal = getBlog().getCalendar();
    //#month.java:84: method: Calendar net.sourceforge.pebble.domain.Month.getCalendar()
    //#month.java:84: Warning: method not available
    //#    -- call on Calendar net.sourceforge.pebble.domain.Blog:getCalendar()
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.domain.Month
    //#    method: Calendar getCalendar()
    //#    unanalyzed callee: Calendar net.sourceforge.pebble.domain.Blog:getCalendar()
    //#input(Calendar getCalendar()): __Descendant_Table[net/sourceforge/pebble/domain/Month]
    //#input(Calendar getCalendar()): __Descendant_Table[others]
    //#input(Calendar getCalendar()): __Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#input(Calendar getCalendar()): net/sourceforge/pebble/domain/Year.__Descendant_Table[net/sourceforge/pebble/domain/Year]
    //#input(Calendar getCalendar()): net/sourceforge/pebble/domain/Year.__Descendant_Table[others]
    //#input(Calendar getCalendar()): net/sourceforge/pebble/domain/Year.__Dispatch_Table.getYear()I
    //#input(Calendar getCalendar()): this
    //#input(Calendar getCalendar()): this.__Tag
    //#input(Calendar getCalendar()): this.blog
    //#input(Calendar getCalendar()): this.month
    //#input(Calendar getCalendar()): this.year
    //#input(Calendar getCalendar()): this.year.__Tag
    //#input(Calendar getCalendar()): this.year.year
    //#output(Calendar getCalendar()): return_value
    //#pre[2] (Calendar getCalendar()): this.__Tag == net/sourceforge/pebble/domain/Month
    //#pre[3] (Calendar getCalendar()): this.blog != null
    //#pre[4] (Calendar getCalendar()): this.month >= -2_147_483_647
    //#pre[5] (Calendar getCalendar()): this.year != null
    //#pre[6] (Calendar getCalendar()): this.year.__Tag == net/sourceforge/pebble/domain/Year
    //#pre[7] (Calendar getCalendar()): init'ed(this.year.year)
    //#presumption(Calendar getCalendar()): net.sourceforge.pebble.domain.Blog:getCalendar(...)@84 != null
    //#post(Calendar getCalendar()): (soft) return_value != null
    cal.set(Calendar.YEAR, year.getYear());
    cal.set(Calendar.MONTH, month - 1);
    cal.set(Calendar.DAY_OF_MONTH, 1);
    cal.set(Calendar.HOUR_OF_DAY, 0);
    cal.set(Calendar.MINUTE, 0);
    cal.set(Calendar.SECOND, 0);
    cal.set(Calendar.MILLISECOND, 0);

    return cal;
    //#month.java:93: end of method: Calendar net.sourceforge.pebble.domain.Month.getCalendar()
  }

  /**
   * Gets a reference to the parent Year instance.
   *
   * @return  a Year instance
   */
  public Year getYear() {
    return year;
    //#month.java:102: method: Year net.sourceforge.pebble.domain.Month.getYear()
    //#input(Year getYear()): this
    //#input(Year getYear()): this.year
    //#output(Year getYear()): return_value
    //#pre[2] (Year getYear()): init'ed(this.year)
    //#post(Year getYear()): return_value == this.year
    //#post(Year getYear()): init'ed(return_value)
    //#month.java:102: end of method: Year net.sourceforge.pebble.domain.Month.getYear()
  }

  /**
   * Gets an integer representing the month that this monthly blog is for.
   *
   * @return  an int representing the month (i.e. 1 to 12)
   */
  public int getMonth() {
    return month;
    //#month.java:111: method: int net.sourceforge.pebble.domain.Month.getMonth()
    //#input(int getMonth()): this
    //#input(int getMonth()): this.month
    //#output(int getMonth()): return_value
    //#pre[2] (int getMonth()): init'ed(this.month)
    //#post(int getMonth()): return_value == this.month
    //#post(int getMonth()): init'ed(return_value)
    //#month.java:111: end of method: int net.sourceforge.pebble.domain.Month.getMonth()
  }

  /**
   * Gets the permalink to display all entries for this Month.
   *
   * @return  an absolute URL
   */
  public String getPermalink() {
    String s = getBlog().getPermalinkProvider().getPermalink(this);
    //#month.java:120: method: String net.sourceforge.pebble.domain.Month.getPermalink()
    //#month.java:120: Warning: method not available
    //#    -- call on String getPermalink(Month)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.domain.Month
    //#    method: String getPermalink()
    //#    unanalyzed callee: String getPermalink(Month)
    //#input(String getPermalink()): __Descendant_Table[net/sourceforge/pebble/domain/Month]
    //#input(String getPermalink()): __Descendant_Table[others]
    //#input(String getPermalink()): __Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#input(String getPermalink()): net/sourceforge/pebble/Configuration.__Descendant_Table[net/sourceforge/pebble/Configuration]
    //#input(String getPermalink()): net/sourceforge/pebble/Configuration.__Descendant_Table[others]
    //#input(String getPermalink()): net/sourceforge/pebble/Configuration.__Dispatch_Table.getUrl()Ljava/lang/String;
    //#input(String getPermalink()): net/sourceforge/pebble/Configuration.__Dispatch_Table.isVirtualHostingEnabled()Z
    //#input(String getPermalink()): net/sourceforge/pebble/api/permalink/PermalinkProvider.__Descendant_Table[net/sourceforge/pebble/api/permalink/PermalinkProvider]
    //#input(String getPermalink()): net/sourceforge/pebble/api/permalink/PermalinkProvider.__Descendant_Table[others]
    //#input(String getPermalink()): net/sourceforge/pebble/api/permalink/PermalinkProvider.__Dispatch_Table.getPermalink(Lnet/sourceforge/pebble/domain/Month;)Ljava/lang/String;
    //#input(String getPermalink()): net/sourceforge/pebble/domain/Blog.__Descendant_Table[net/sourceforge/pebble/domain/Blog]
    //#input(String getPermalink()): net/sourceforge/pebble/domain/Blog.__Descendant_Table[others]
    //#input(String getPermalink()): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.getId()Ljava/lang/String;
    //#input(String getPermalink()): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.getPermalinkProvider()Lnet/sourceforge/pebble/api/permalink/PermalinkProvider;
    //#input(String getPermalink()): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.getUrl()Ljava/lang/String;
    //#input(String getPermalink()): net/sourceforge/pebble/domain/BlogManager.__Descendant_Table[net/sourceforge/pebble/domain/BlogManager]
    //#input(String getPermalink()): net/sourceforge/pebble/domain/BlogManager.__Descendant_Table[others]
    //#input(String getPermalink()): net/sourceforge/pebble/domain/BlogManager.__Dispatch_Table.isMultiBlog()Z
    //#input(String getPermalink()): net/sourceforge/pebble/domain/BlogManager.instance
    //#input(String getPermalink()): net/sourceforge/pebble/domain/BlogManager.instance.__Tag
    //#input(String getPermalink()): net/sourceforge/pebble/domain/BlogManager.instance.multiBlog
    //#input(String getPermalink()): this
    //#input(String getPermalink()): this.__Tag
    //#input(String getPermalink()): this.blog
    //#input(String getPermalink()): this.blog.__Tag
    //#input(String getPermalink()): this.blog.id
    //#input(String getPermalink()): this.blog.permalinkProvider
    //#input(String getPermalink()): this.blog.permalinkProvider.__Tag
    //#output(String getPermalink()): return_value
    //#pre[5] (String getPermalink()): this.__Tag == net/sourceforge/pebble/domain/Month
    //#pre[6] (String getPermalink()): this.blog != null
    //#pre[7] (String getPermalink()): this.blog.__Tag == net/sourceforge/pebble/domain/Blog
    //#pre[9] (String getPermalink()): this.blog.permalinkProvider != null
    //#pre[10] (String getPermalink()): this.blog.permalinkProvider.__Tag == net/sourceforge/pebble/api/permalink/PermalinkProvider
    //#pre[1] (String getPermalink()): (soft) net/sourceforge/pebble/domain/BlogManager.instance != null
    //#pre[2] (String getPermalink()): (soft) net/sourceforge/pebble/domain/BlogManager.instance.__Tag == net/sourceforge/pebble/domain/BlogManager
    //#pre[3] (String getPermalink()): (soft) init'ed(net/sourceforge/pebble/domain/BlogManager.instance.multiBlog)
    //#pre[8] (String getPermalink()): (soft) init'ed(this.blog.id)
    //#post(String getPermalink()): return_value != null
    //#unanalyzed(String getPermalink()): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(String getPermalink()): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(String getPermalink()): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(String getPermalink()): Effects-of-calling:java.lang.String:valueOf
    //#unanalyzed(String getPermalink()): Effects-of-calling:java.lang.String:indexOf
    //#unanalyzed(String getPermalink()): Effects-of-calling:net.sourceforge.pebble.PebbleContext:getInstance
    //#unanalyzed(String getPermalink()): Effects-of-calling:net.sourceforge.pebble.PebbleContext:getConfiguration
    //#unanalyzed(String getPermalink()): Effects-of-calling:java.lang.String:length
    //#unanalyzed(String getPermalink()): Effects-of-calling:java.lang.String:substring
    //#test_vector(String getPermalink()): getPermalink(...)@120: Addr_Set{null}, Inverse{null}
    //#test_vector(String getPermalink()): java.lang.String:length(...)@121: {0}, {1..4_294_967_295}
    if (s != null && s.length() > 0) {
      return getBlog().getUrl() + s.substring(1);
    } else {
      return "";
    //#month.java:124: end of method: String net.sourceforge.pebble.domain.Month.getPermalink()
    }
  }

  /**
   * Determines whether this monthly blog has entries.
   *
   * @return    true if this blog contains entries, false otherwise
   */
  public boolean hasBlogEntries() {
    for (int i = 1; i <= lastDayInMonth; i++) {
    //#month.java:134: method: bool net.sourceforge.pebble.domain.Month.hasBlogEntries()
    //#input(bool hasBlogEntries()): __Descendant_Table[net/sourceforge/pebble/domain/Month]
    //#input(bool hasBlogEntries()): __Descendant_Table[others]
    //#input(bool hasBlogEntries()): __Dispatch_Table.getBlogForDay(I)Lnet/sourceforge/pebble/domain/Day;
    //#input(bool hasBlogEntries()): net/sourceforge/pebble/domain/Day.__Descendant_Table[net/sourceforge/pebble/domain/Day]
    //#input(bool hasBlogEntries()): net/sourceforge/pebble/domain/Day.__Descendant_Table[others]
    //#input(bool hasBlogEntries()): net/sourceforge/pebble/domain/Day.__Dispatch_Table.hasBlogEntries()Z
    //#input(bool hasBlogEntries()): this
    //#input(bool hasBlogEntries()): this.__Tag
    //#input(bool hasBlogEntries()): this.dailyBlogs
    //#input(bool hasBlogEntries()): this.dailyBlogs.length
    //#input(bool hasBlogEntries()): this.dailyBlogs[0..4_294_967_294]
    //#input(bool hasBlogEntries()): this.dailyBlogs[0..4_294_967_294].__Tag
    //#input(bool hasBlogEntries()): this.dailyBlogs[0..4_294_967_294].publishedBlogEntries
    //#input(bool hasBlogEntries()): this.lastDayInMonth
    //#output(bool hasBlogEntries()): return_value
    //#pre[2] (bool hasBlogEntries()): (soft) this.__Tag == net/sourceforge/pebble/domain/Month
    //#pre[3] (bool hasBlogEntries()): (soft) this.dailyBlogs != null
    //#pre[4] (bool hasBlogEntries()): (soft) this.dailyBlogs.length >= 1
    //#pre[5] (bool hasBlogEntries()): (soft) this.dailyBlogs[0..4_294_967_294] != null
    //#pre[6] (bool hasBlogEntries()): (soft) this.dailyBlogs[0..4_294_967_294].__Tag == net/sourceforge/pebble/domain/Day
    //#pre[7] (bool hasBlogEntries()): (soft) this.dailyBlogs[0..4_294_967_294].publishedBlogEntries != null
    //#pre[8] (bool hasBlogEntries()): (soft) this.lastDayInMonth <= 4_294_967_294
    //#post(bool hasBlogEntries()): init'ed(return_value)
    //#unanalyzed(bool hasBlogEntries()): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(bool hasBlogEntries()): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(bool hasBlogEntries()): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(bool hasBlogEntries()): Effects-of-calling:java.lang.IllegalArgumentException
    //#unanalyzed(bool hasBlogEntries()): Effects-of-calling:java.util.List:isEmpty
      if (getBlogForDay(i).hasBlogEntries()) {
    //#month.java:135: ?precondition failure
    //#    net/sourceforge/pebble/domain/Month.getBlogForDay: day <= this.dailyBlogs.length
    //#    severity: LOW
    //#    class: net.sourceforge.pebble.domain.Month
    //#    method: bool hasBlogEntries()
    //#    basic block: bb_2
    //#    assertion: i <= this.dailyBlogs.length
    //#    callee: Day net/sourceforge/pebble/domain/Month.getBlogForDay(int)
    //#    callee assertion: day <= this.dailyBlogs.length
    //#    callee file: month.java
    //#    callee precondition index: [8]
    //#    callee srcpos: 196
    //#    VN: -(i - this.dailyBlogs.length)
    //#    Expected: {0..+Inf}
    //#    Bad: {-1}
    //#    Attribs:  Int  Bad singleton  Bad overlaps +/-1000  Bad < Exp
        return true;
      }
    }

    return false;
    //#month.java:140: end of method: bool net.sourceforge.pebble.domain.Month.hasBlogEntries()
  }

  /**
   * Gets all blog entries for this month.
   *
   * @return  a List of BlogEntry instances, reverse ordered by date
   */
  public List<String> getBlogEntries() {
    Day days[] = getAllDays();
    //#month.java:149: method: List net.sourceforge.pebble.domain.Month.getBlogEntries()
    //#input(List getBlogEntries()): __Descendant_Table[net/sourceforge/pebble/domain/Month]
    //#input(List getBlogEntries()): __Descendant_Table[others]
    //#input(List getBlogEntries()): __Dispatch_Table.getAllDays()[Lnet/sourceforge/pebble/domain/Day;
    //#input(List getBlogEntries()): __Dispatch_Table.getBlogForDay(I)Lnet/sourceforge/pebble/domain/Day;
    //#input(List getBlogEntries()): net/sourceforge/pebble/domain/Day.__Descendant_Table[net/sourceforge/pebble/domain/Day]
    //#input(List getBlogEntries()): net/sourceforge/pebble/domain/Day.__Descendant_Table[others]
    //#input(List getBlogEntries()): net/sourceforge/pebble/domain/Day.__Dispatch_Table.getBlogEntries()Ljava/util/List;
    //#input(List getBlogEntries()): this
    //#input(List getBlogEntries()): this.__Tag
    //#input(List getBlogEntries()): this.dailyBlogs
    //#input(List getBlogEntries()): this.dailyBlogs.length
    //#input(List getBlogEntries()): this.dailyBlogs[0..4_294_967_294]
    //#input(List getBlogEntries()): this.dailyBlogs[0..4_294_967_294].__Tag
    //#input(List getBlogEntries()): this.dailyBlogs[0..4_294_967_294].blogEntries
    //#input(List getBlogEntries()): this.lastDayInMonth
    //#output(List getBlogEntries()): new ArrayList(getBlogEntries#1) num objects
    //#output(List getBlogEntries()): return_value
    //#new obj(List getBlogEntries()): new ArrayList(getBlogEntries#1)
    //#pre[3] (List getBlogEntries()): this.dailyBlogs != null
    //#pre[4] (List getBlogEntries()): this.dailyBlogs.length <= 4_294_967_295
    //#pre[9] (List getBlogEntries()): this.lastDayInMonth - this.dailyBlogs.length in -2_147_483_648..4_294_967_295
    //#pre[2] (List getBlogEntries()): (soft) this.__Tag == net/sourceforge/pebble/domain/Month
    //#pre[5] (List getBlogEntries()): (soft) init'ed(this.dailyBlogs[0..4_294_967_294])
    //#pre[6] (List getBlogEntries()): (soft) this.dailyBlogs[0..4_294_967_294].__Tag == net/sourceforge/pebble/domain/Day
    //#pre[7] (List getBlogEntries()): (soft) init'ed(this.dailyBlogs[0..4_294_967_294].blogEntries)
    //#pre[8] (List getBlogEntries()): (soft) init'ed(this.lastDayInMonth)
    //#post(List getBlogEntries()): return_value == &new ArrayList(getBlogEntries#1)
    //#post(List getBlogEntries()): new ArrayList(getBlogEntries#1) num objects == 1
    //#unanalyzed(List getBlogEntries()): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(List getBlogEntries()): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(List getBlogEntries()): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(List getBlogEntries()): Effects-of-calling:java.lang.IllegalArgumentException
    //#unanalyzed(List getBlogEntries()): Effects-of-calling:java.util.ArrayList
    List blogEntries = new ArrayList();
    for (Day day : days) {
    //#month.java:151: ?use of default init
    //#    init'ed(Local_6[Local_4])
    //#    severity: SUPPRESSED
    //#    class: net.sourceforge.pebble.domain.Month
    //#    method: List getBlogEntries()
    //#    basic block: bb_2
    //#    assertion: init'ed(Local_6[Local_4])
    //#    VN: Local_6[Local_4]
    //#    Expected: Univ-VN-Set
    //#    Bad: {Invalid}
    //#    Attribs:  Ptr  Bad only invalid
      blogEntries.addAll(day.getBlogEntries());
    //#month.java:152: ?null dereference
    //#    day != null
    //#    severity: MEDIUM
    //#    class: net.sourceforge.pebble.domain.Month
    //#    method: List getBlogEntries()
    //#    basic block: bb_2
    //#    assertion: day != null
    //#    VN: Local_6[Local_4]
    //#    Expected: Inverse{null}
    //#    Bad: Addr_Set{null}
    //#    Attribs:  Ptr  null in Bad
    }
    return blogEntries;
    //#month.java:154: end of method: List net.sourceforge.pebble.domain.Month.getBlogEntries()
  }

  /**
   * Gets the number of blog entries for this month.
   *
   * @return  an int
   */
  public int getNumberOfBlogEntries() {
    int count = 0;
    //#month.java:163: method: int net.sourceforge.pebble.domain.Month.getNumberOfBlogEntries()
    //#input(int getNumberOfBlogEntries()): __Descendant_Table[net/sourceforge/pebble/domain/Month]
    //#input(int getNumberOfBlogEntries()): __Descendant_Table[others]
    //#input(int getNumberOfBlogEntries()): __Dispatch_Table.getAllDays()[Lnet/sourceforge/pebble/domain/Day;
    //#input(int getNumberOfBlogEntries()): __Dispatch_Table.getBlogForDay(I)Lnet/sourceforge/pebble/domain/Day;
    //#input(int getNumberOfBlogEntries()): net/sourceforge/pebble/domain/Day.__Descendant_Table[net/sourceforge/pebble/domain/Day]
    //#input(int getNumberOfBlogEntries()): net/sourceforge/pebble/domain/Day.__Descendant_Table[others]
    //#input(int getNumberOfBlogEntries()): net/sourceforge/pebble/domain/Day.__Dispatch_Table.getNumberOfBlogEntries()I
    //#input(int getNumberOfBlogEntries()): this
    //#input(int getNumberOfBlogEntries()): this.__Tag
    //#input(int getNumberOfBlogEntries()): this.dailyBlogs
    //#input(int getNumberOfBlogEntries()): this.dailyBlogs.length
    //#input(int getNumberOfBlogEntries()): this.dailyBlogs[0..4_294_967_294]
    //#input(int getNumberOfBlogEntries()): this.dailyBlogs[0..4_294_967_294].__Tag
    //#input(int getNumberOfBlogEntries()): this.dailyBlogs[0..4_294_967_294].publishedBlogEntries
    //#input(int getNumberOfBlogEntries()): this.lastDayInMonth
    //#output(int getNumberOfBlogEntries()): return_value
    //#pre[2] (int getNumberOfBlogEntries()): this.__Tag == net/sourceforge/pebble/domain/Month
    //#pre[3] (int getNumberOfBlogEntries()): this.dailyBlogs != null
    //#pre[4] (int getNumberOfBlogEntries()): this.dailyBlogs.length <= 4_294_967_295
    //#pre[9] (int getNumberOfBlogEntries()): this.lastDayInMonth - this.dailyBlogs.length in -2_147_483_648..4_294_967_295
    //#pre[5] (int getNumberOfBlogEntries()): (soft) init'ed(this.dailyBlogs[0..4_294_967_294])
    //#pre[6] (int getNumberOfBlogEntries()): (soft) this.dailyBlogs[0..4_294_967_294].__Tag == net/sourceforge/pebble/domain/Day
    //#pre[7] (int getNumberOfBlogEntries()): (soft) this.dailyBlogs[0..4_294_967_294].publishedBlogEntries != null
    //#pre[8] (int getNumberOfBlogEntries()): (soft) init'ed(this.lastDayInMonth)
    //#post(int getNumberOfBlogEntries()): init'ed(return_value)
    //#unanalyzed(int getNumberOfBlogEntries()): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(int getNumberOfBlogEntries()): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(int getNumberOfBlogEntries()): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(int getNumberOfBlogEntries()): Effects-of-calling:java.lang.IllegalArgumentException
    //#unanalyzed(int getNumberOfBlogEntries()): Effects-of-calling:java.util.List:size
    Day days[] = getAllDays();
    for (Day day : days) {
    //#month.java:165: ?use of default init
    //#    init'ed(Local_6[Local_4])
    //#    severity: SUPPRESSED
    //#    class: net.sourceforge.pebble.domain.Month
    //#    method: int getNumberOfBlogEntries()
    //#    basic block: bb_2
    //#    assertion: init'ed(Local_6[Local_4])
    //#    VN: Local_6[Local_4]
    //#    Expected: Univ-VN-Set
    //#    Bad: {Invalid}
    //#    Attribs:  Ptr  Bad only invalid
      count += day.getNumberOfBlogEntries();
    //#month.java:166: ?null dereference
    //#    day != null
    //#    severity: MEDIUM
    //#    class: net.sourceforge.pebble.domain.Month
    //#    method: int getNumberOfBlogEntries()
    //#    basic block: bb_2
    //#    assertion: day != null
    //#    VN: Local_6[Local_4]
    //#    Expected: Inverse{null}
    //#    Bad: Addr_Set{null}
    //#    Attribs:  Ptr  null in Bad
    //#month.java:166: ?overflow
    //#    count + getNumberOfBlogEntries(...) in -2_147_483_648..4_294_967_295
    //#    severity: SUPPRESSED
    //#    class: net.sourceforge.pebble.domain.Month
    //#    method: int getNumberOfBlogEntries()
    //#    basic block: bb_2
    //#    assertion: count + getNumberOfBlogEntries(...) in -2_147_483_648..4_294_967_295
    //#    VN: java.util.List:size(...)@181 + count
    //#    Expected: {-2_147_483_648..4_294_967_295, Invalid}
    //#    Bad: {-4_294_967_296..-2_147_483_649, 4_294_967_296..8_589_934_590}
    //#    Attribs:  Int  Bad < Exp  Bad > Exp
    }

    return count;
    //#month.java:169: end of method: int net.sourceforge.pebble.domain.Month.getNumberOfBlogEntries()
  }

  /**
   * Gets an array of all Days.
   *
   * @return  a Collection of Day instances for all those days
   *          that have entries (this can return an empty collection)
   */
  public Day[] getAllDays() {
    Day blogs[] = new Day[dailyBlogs.length];
    //#month.java:179: method: Day[] net.sourceforge.pebble.domain.Month.getAllDays()
    //#input(Day[] getAllDays()): __Descendant_Table[net/sourceforge/pebble/domain/Month]
    //#input(Day[] getAllDays()): __Descendant_Table[others]
    //#input(Day[] getAllDays()): __Dispatch_Table.getBlogForDay(I)Lnet/sourceforge/pebble/domain/Day;
    //#input(Day[] getAllDays()): this
    //#input(Day[] getAllDays()): this.__Tag
    //#input(Day[] getAllDays()): this.dailyBlogs
    //#input(Day[] getAllDays()): this.dailyBlogs.length
    //#input(Day[] getAllDays()): this.dailyBlogs[0..4_294_967_294]
    //#input(Day[] getAllDays()): this.lastDayInMonth
    //#output(Day[] getAllDays()): new Day[](getAllDays#1) num objects
    //#output(Day[] getAllDays()): return_value.length
    //#output(Day[] getAllDays()): return_value[0..4_294_967_295]
    //#output(Day[] getAllDays()): return_value
    //#new obj(Day[] getAllDays()): new Day[](getAllDays#1)
    //#pre[4] (Day[] getAllDays()): this.dailyBlogs != null
    //#pre[5] (Day[] getAllDays()): this.dailyBlogs.length <= 4_294_967_295
    //#pre[8] (Day[] getAllDays()): this.lastDayInMonth - this.dailyBlogs.length in -2_147_483_648..4_294_967_295
    //#pre[3] (Day[] getAllDays()): (soft) this.__Tag == net/sourceforge/pebble/domain/Month
    //#pre[6] (Day[] getAllDays()): (soft) init'ed(this.dailyBlogs[0..4_294_967_294])
    //#pre[7] (Day[] getAllDays()): (soft) init'ed(this.lastDayInMonth)
    //#post(Day[] getAllDays()): return_value == &new Day[](getAllDays#1)
    //#post(Day[] getAllDays()): new Day[](getAllDays#1) num objects == 1
    //#post(Day[] getAllDays()): return_value.length == this.dailyBlogs.length
    //#post(Day[] getAllDays()): return_value.length <= 4_294_967_295
    //#post(Day[] getAllDays()): possibly_updated(return_value[0..4_294_967_295])
    //#post(Day[] getAllDays()): this.lastDayInMonth - this.dailyBlogs.length in -2_147_483_648..4_294_967_295
    //#unanalyzed(Day[] getAllDays()): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(Day[] getAllDays()): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(Day[] getAllDays()): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(Day[] getAllDays()): Effects-of-calling:java.lang.IllegalArgumentException
    for (int day = 0; day < dailyBlogs.length; day++) {
      blogs[day] = getBlogForDay(day + 1);
    //#month.java:181: ?precondition failure
    //#    net/sourceforge/pebble/domain/Month.getBlogForDay: this.lastDayInMonth >= 1
    //#    severity: LOW
    //#    class: net.sourceforge.pebble.domain.Month
    //#    method: Day[] getAllDays()
    //#    basic block: bb_2
    //#    assertion: this.lastDayInMonth >= 1
    //#    callee: Day net/sourceforge/pebble/domain/Month.getBlogForDay(int)
    //#    callee assertion: this.lastDayInMonth >= 1
    //#    callee file: month.java
    //#    callee precondition index: [10]
    //#    callee srcpos: 196
    //#    VN: this.lastDayInMonth
    //#    Expected: {1..4_294_967_295}
    //#    Bad: {-2_147_483_647..0}
    //#    Attribs:  Int  Bad overlaps +/-1000  Bad < Exp
    //#month.java:181: ?precondition failure
    //#    net/sourceforge/pebble/domain/Month.getBlogForDay: this.lastDayInMonth - day in 0..4_294_967_294
    //#    severity: LOW
    //#    class: net.sourceforge.pebble.domain.Month
    //#    method: Day[] getAllDays()
    //#    basic block: bb_2
    //#    assertion: day - this.lastDayInMonth in -4_294_967_295..-1
    //#    callee: Day net/sourceforge/pebble/domain/Month.getBlogForDay(int)
    //#    callee assertion: this.lastDayInMonth - day in 0..4_294_967_294
    //#    callee file: month.java
    //#    callee precondition index: [11]
    //#    callee srcpos: 196
    //#    VN: -((day - this.lastDayInMonth) + 1)
    //#    Expected: {0..4_294_967_294}
    //#    Bad: {-1}
    //#    Attribs:  Int  Bad singleton  Bad overlaps +/-1000  Bad < Exp
    }

    return blogs;
    //#month.java:184: end of method: Day[] net.sourceforge.pebble.domain.Month.getAllDays()
  }

  /**
   * Gets a Day instance for the specified day. This lazy loads Day
   * instances as needed.
   *
   * @param day   the day as an int (i.e. 1 to 31)
   * @return  the corresponding Day instance
   */
  public synchronized Day getBlogForDay(int day) {
    // some bounds checking
    if (day < 1 || day > lastDayInMonth) {
    //#month.java:196: method: Day net.sourceforge.pebble.domain.Month.getBlogForDay(int)
    //#input(Day getBlogForDay(int)): day
    //#input(Day getBlogForDay(int)): this
    //#input(Day getBlogForDay(int)): this.dailyBlogs
    //#input(Day getBlogForDay(int)): this.dailyBlogs.length
    //#input(Day getBlogForDay(int)): this.dailyBlogs[0..4_294_967_294]
    //#input(Day getBlogForDay(int)): this.lastDayInMonth
    //#output(Day getBlogForDay(int)): return_value
    //#pre[2] (Day getBlogForDay(int)): day >= 1
    //#pre[6] (Day getBlogForDay(int)): this.dailyBlogs != null
    //#pre[7] (Day getBlogForDay(int)): this.dailyBlogs.length >= 1
    //#pre[8] (Day getBlogForDay(int)): day <= this.dailyBlogs.length
    //#pre[10] (Day getBlogForDay(int)): this.lastDayInMonth >= 1
    //#pre[11] (Day getBlogForDay(int)): this.lastDayInMonth - day in 0..4_294_967_294
    //#pre[9] (Day getBlogForDay(int)): (soft) init'ed(this.dailyBlogs[0..4_294_967_294])
    //#post(Day getBlogForDay(int)): return_value == this.dailyBlogs[0..4_294_967_294]
    //#post(Day getBlogForDay(int)): init'ed(return_value)
      throw new IllegalArgumentException("Invalid day of " + day + " specified, should be between 1 and " + lastDayInMonth);
    }

    return dailyBlogs[day-1];
    //#month.java:200: end of method: Day net.sourceforge.pebble.domain.Month.getBlogForDay(int)
  }

  /**
   * Gets a Day instance for the first day of the month.
   *
   * @return  the Day instance representing the first day in the month
   */
  public Day getBlogForFirstDay() {
    return getBlogForDay(1);
    //#month.java:209: method: Day net.sourceforge.pebble.domain.Month.getBlogForFirstDay()
    //#input(Day getBlogForFirstDay()): __Descendant_Table[net/sourceforge/pebble/domain/Month]
    //#input(Day getBlogForFirstDay()): __Descendant_Table[others]
    //#input(Day getBlogForFirstDay()): __Dispatch_Table.getBlogForDay(I)Lnet/sourceforge/pebble/domain/Day;
    //#input(Day getBlogForFirstDay()): this
    //#input(Day getBlogForFirstDay()): this.__Tag
    //#input(Day getBlogForFirstDay()): this.dailyBlogs
    //#input(Day getBlogForFirstDay()): this.dailyBlogs.length
    //#input(Day getBlogForFirstDay()): this.dailyBlogs[0..4_294_967_294]
    //#input(Day getBlogForFirstDay()): this.lastDayInMonth
    //#output(Day getBlogForFirstDay()): return_value
    //#pre[2] (Day getBlogForFirstDay()): this.__Tag == net/sourceforge/pebble/domain/Month
    //#pre[3] (Day getBlogForFirstDay()): this.dailyBlogs != null
    //#pre[4] (Day getBlogForFirstDay()): this.dailyBlogs.length >= 1
    //#pre[6] (Day getBlogForFirstDay()): this.lastDayInMonth >= 1
    //#pre[5] (Day getBlogForFirstDay()): (soft) init'ed(this.dailyBlogs[0..4_294_967_294])
    //#post(Day getBlogForFirstDay()): return_value == this.dailyBlogs[0..4_294_967_294]
    //#post(Day getBlogForFirstDay()): init'ed(return_value)
    //#unanalyzed(Day getBlogForFirstDay()): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(Day getBlogForFirstDay()): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(Day getBlogForFirstDay()): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(Day getBlogForFirstDay()): Effects-of-calling:java.lang.IllegalArgumentException
    //#month.java:209: end of method: Day net.sourceforge.pebble.domain.Month.getBlogForFirstDay()
  }

  /**
   * Gets a Day instance for the last day of the month.
   *
   * @return  the Day instance representing the last day in the month
   */
  public Day getBlogForLastDay() {
    return getBlogForDay(lastDayInMonth);
    //#month.java:218: method: Day net.sourceforge.pebble.domain.Month.getBlogForLastDay()
    //#input(Day getBlogForLastDay()): __Descendant_Table[net/sourceforge/pebble/domain/Month]
    //#input(Day getBlogForLastDay()): __Descendant_Table[others]
    //#input(Day getBlogForLastDay()): __Dispatch_Table.getBlogForDay(I)Lnet/sourceforge/pebble/domain/Day;
    //#input(Day getBlogForLastDay()): this
    //#input(Day getBlogForLastDay()): this.__Tag
    //#input(Day getBlogForLastDay()): this.dailyBlogs
    //#input(Day getBlogForLastDay()): this.dailyBlogs.length
    //#input(Day getBlogForLastDay()): this.dailyBlogs[0..4_294_967_294]
    //#input(Day getBlogForLastDay()): this.lastDayInMonth
    //#output(Day getBlogForLastDay()): return_value
    //#pre[2] (Day getBlogForLastDay()): this.__Tag == net/sourceforge/pebble/domain/Month
    //#pre[3] (Day getBlogForLastDay()): this.dailyBlogs != null
    //#pre[4] (Day getBlogForLastDay()): this.dailyBlogs.length >= 1
    //#pre[5] (Day getBlogForLastDay()): this.lastDayInMonth <= this.dailyBlogs.length
    //#pre[7] (Day getBlogForLastDay()): this.lastDayInMonth >= 1
    //#pre[6] (Day getBlogForLastDay()): (soft) init'ed(this.dailyBlogs[0..4_294_967_294])
    //#post(Day getBlogForLastDay()): return_value == this.dailyBlogs[0..4_294_967_294]
    //#post(Day getBlogForLastDay()): init'ed(return_value)
    //#unanalyzed(Day getBlogForLastDay()): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(Day getBlogForLastDay()): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(Day getBlogForLastDay()): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(Day getBlogForLastDay()): Effects-of-calling:java.lang.IllegalArgumentException
    //#month.java:218: end of method: Day net.sourceforge.pebble.domain.Month.getBlogForLastDay()
  }

  /**
   * Gets the last day of the month.
   *
   * @return  an int representing the last day in the month
   */
  public int getLastDayInMonth() {
    return lastDayInMonth;
    //#month.java:227: method: int net.sourceforge.pebble.domain.Month.getLastDayInMonth()
    //#input(int getLastDayInMonth()): this
    //#input(int getLastDayInMonth()): this.lastDayInMonth
    //#output(int getLastDayInMonth()): return_value
    //#pre[2] (int getLastDayInMonth()): init'ed(this.lastDayInMonth)
    //#post(int getLastDayInMonth()): return_value == this.lastDayInMonth
    //#post(int getLastDayInMonth()): init'ed(return_value)
    //#month.java:227: end of method: int net.sourceforge.pebble.domain.Month.getLastDayInMonth()
  }

  /**
   * Gets the Month instance for the previous month.
   *
   * @return    a Month instance
   */
  public Month getPreviousMonth() {
    return year.getBlogForPreviousMonth(this);
    //#month.java:236: method: Month net.sourceforge.pebble.domain.Month.getPreviousMonth()
    //#input(Month getPreviousMonth()): __Descendant_Table[net/sourceforge/pebble/domain/Month]
    //#input(Month getPreviousMonth()): __Descendant_Table[others]
    //#input(Month getPreviousMonth()): __Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#input(Month getPreviousMonth()): __Dispatch_Table.getDate()Ljava/util/Date;
    //#input(Month getPreviousMonth()): __Dispatch_Table.getMonth()I
    //#input(Month getPreviousMonth()): __Dispatch_Table.getYear()Lnet/sourceforge/pebble/domain/Year;
    //#input(Month getPreviousMonth()): __Dispatch_Table.setDate(Ljava/util/Date;)V
    //#input(Month getPreviousMonth()): net/sourceforge/pebble/domain/Blog.__Descendant_Table[net/sourceforge/pebble/domain/Blog]
    //#input(Month getPreviousMonth()): net/sourceforge/pebble/domain/Blog.__Descendant_Table[others]
    //#input(Month getPreviousMonth()): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.getBlogForPreviousYear(Lnet/sourceforge/pebble/domain/Year;)Lnet/sourceforge/pebble/domain/Year;
    //#input(Month getPreviousMonth()): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.getBlogForYear(I)Lnet/sourceforge/pebble/domain/Year;
    //#input(Month getPreviousMonth()): net/sourceforge/pebble/domain/Day.__Descendant_Table[net/sourceforge/pebble/domain/Day]
    //#input(Month getPreviousMonth()): net/sourceforge/pebble/domain/Day.__Descendant_Table[others]
    //#input(Month getPreviousMonth()): net/sourceforge/pebble/domain/Day.__Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#input(Month getPreviousMonth()): net/sourceforge/pebble/domain/Day.__Dispatch_Table.getDay()I
    //#input(Month getPreviousMonth()): net/sourceforge/pebble/domain/Day.__Dispatch_Table.getMonth()Lnet/sourceforge/pebble/domain/Month;
    //#input(Month getPreviousMonth()): net/sourceforge/pebble/domain/Day.__Dispatch_Table.setDate(Ljava/util/Date;)V
    //#input(Month getPreviousMonth()): net/sourceforge/pebble/domain/Year.__Descendant_Table[net/sourceforge/pebble/domain/Year]
    //#input(Month getPreviousMonth()): net/sourceforge/pebble/domain/Year.__Descendant_Table[others]
    //#input(Month getPreviousMonth()): net/sourceforge/pebble/domain/Year.__Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#input(Month getPreviousMonth()): net/sourceforge/pebble/domain/Year.__Dispatch_Table.getBlogForMonth(I)Lnet/sourceforge/pebble/domain/Month;
    //#input(Month getPreviousMonth()): net/sourceforge/pebble/domain/Year.__Dispatch_Table.getBlogForPreviousMonth(Lnet/sourceforge/pebble/domain/Month;)Lnet/sourceforge/pebble/domain/Month;
    //#input(Month getPreviousMonth()): net/sourceforge/pebble/domain/Year.__Dispatch_Table.getYear()I
    //#input(Month getPreviousMonth()): net/sourceforge/pebble/domain/Year.__Dispatch_Table.setDate(Ljava/util/Date;)V
    //#input(Month getPreviousMonth()): this
    //#input(Month getPreviousMonth()): this.__Tag
    //#input(Month getPreviousMonth()): this.month
    //#input(Month getPreviousMonth()): this.year
    //#input(Month getPreviousMonth()): this.year.__Tag
    //#input(Month getPreviousMonth()): this.year.blog
    //#input(Month getPreviousMonth()): this.year.blog.__Tag
    //#input(Month getPreviousMonth()): this.year.blog.years
    //#input(Month getPreviousMonth()): this.year.months
    //#input(Month getPreviousMonth()): this.year.months.length
    //#input(Month getPreviousMonth()): this.year.months[0..4_294_967_294]
    //#input(Month getPreviousMonth()): this.year.year
    //#output(Month getPreviousMonth()): new ArrayList(Day#1) num objects
    //#output(Month getPreviousMonth()): new ArrayList(Day#2) num objects
    //#output(Month getPreviousMonth()): new ArrayList(Day#3) num objects
    //#output(Month getPreviousMonth()): new Day(Month#2) num objects
    //#output(Month getPreviousMonth()): new Day(Month#2).__Tag
    //#output(Month getPreviousMonth()): new Day(Month#2).blog
    //#output(Month getPreviousMonth()): new Day(Month#2).blogEntries
    //#output(Month getPreviousMonth()): new Day(Month#2).date
    //#output(Month getPreviousMonth()): new Day(Month#2).day
    //#output(Month getPreviousMonth()): new Day(Month#2).month
    //#output(Month getPreviousMonth()): new Day(Month#2).publishedBlogEntries
    //#output(Month getPreviousMonth()): new Day(Month#2).unpublishedBlogEntries
    //#output(Month getPreviousMonth()): new Day[](Month#1) num objects
    //#output(Month getPreviousMonth()): new Day[](Month#1).length
    //#output(Month getPreviousMonth()): new Day[](Month#1)[0..4_294_967_295]
    //#output(Month getPreviousMonth()): new Month(init#2) num objects
    //#output(Month getPreviousMonth()): new Month(init#2).__Tag
    //#output(Month getPreviousMonth()): new Month(init#2).blog
    //#output(Month getPreviousMonth()): new Month(init#2).dailyBlogs
    //#output(Month getPreviousMonth()): new Month(init#2).date
    //#output(Month getPreviousMonth()): new Month(init#2).lastDayInMonth
    //#output(Month getPreviousMonth()): new Month(init#2).month
    //#output(Month getPreviousMonth()): new Month(init#2).year
    //#output(Month getPreviousMonth()): return_value
    //#new obj(Month getPreviousMonth()): new ArrayList(Day#1)
    //#new obj(Month getPreviousMonth()): new ArrayList(Day#2)
    //#new obj(Month getPreviousMonth()): new ArrayList(Day#3)
    //#new obj(Month getPreviousMonth()): new Day(Month#2)
    //#new obj(Month getPreviousMonth()): new Day[](Month#1)
    //#new obj(Month getPreviousMonth()): new Month(init#2)
    //#pre[2] (Month getPreviousMonth()): this.__Tag == net/sourceforge/pebble/domain/Month
    //#pre[3] (Month getPreviousMonth()): this.month <= 13
    //#pre[5] (Month getPreviousMonth()): this.year != null
    //#pre[6] (Month getPreviousMonth()): this.year.__Tag == net/sourceforge/pebble/domain/Year
    //#pre[4] (Month getPreviousMonth()): (soft) this.month <= this.year.months.length + 1
    //#pre[7] (Month getPreviousMonth()): (soft) this.year.blog != null
    //#pre[8] (Month getPreviousMonth()): (soft) this.year.blog.__Tag == net/sourceforge/pebble/domain/Blog
    //#pre[9] (Month getPreviousMonth()): (soft) this.year.blog.years != null
    //#pre[10] (Month getPreviousMonth()): (soft) this.year.months != null
    //#pre[12] (Month getPreviousMonth()): (soft) init'ed(this.year.months[0..4_294_967_294])
    //#pre[13] (Month getPreviousMonth()): (soft) this.year.year >= -2_147_483_647
    //#post(Month getPreviousMonth()): init'ed(return_value)
    //#post(Month getPreviousMonth()): init'ed(new ArrayList(Day#1) num objects)
    //#post(Month getPreviousMonth()): init'ed(new ArrayList(Day#2) num objects)
    //#post(Month getPreviousMonth()): init'ed(new ArrayList(Day#3) num objects)
    //#post(Month getPreviousMonth()): init'ed(new Day(Month#2) num objects)
    //#post(Month getPreviousMonth()): init'ed(new Day(Month#2).__Tag)
    //#post(Month getPreviousMonth()): init'ed(new Day(Month#2).blog)
    //#post(Month getPreviousMonth()): init'ed(new Day(Month#2).blogEntries)
    //#post(Month getPreviousMonth()): init'ed(new Day(Month#2).date)
    //#post(Month getPreviousMonth()): init'ed(new Day(Month#2).day)
    //#post(Month getPreviousMonth()): init'ed(new Day(Month#2).month)
    //#post(Month getPreviousMonth()): init'ed(new Day(Month#2).publishedBlogEntries)
    //#post(Month getPreviousMonth()): init'ed(new Day(Month#2).unpublishedBlogEntries)
    //#post(Month getPreviousMonth()): new Day[](Month#1) num objects in {0, 12}
    //#post(Month getPreviousMonth()): init'ed(new Day[](Month#1).length)
    //#post(Month getPreviousMonth()): init'ed(new Day[](Month#1)[0..4_294_967_295])
    //#post(Month getPreviousMonth()): new Month(init#2) num objects in {0, 12}
    //#post(Month getPreviousMonth()): new Month(init#2).__Tag == net/sourceforge/pebble/domain/Month
    //#post(Month getPreviousMonth()): new Month(init#2).blog != null
    //#post(Month getPreviousMonth()): new Month(init#2).dailyBlogs != null
    //#post(Month getPreviousMonth()): init'ed(new Month(init#2).date)
    //#post(Month getPreviousMonth()): init'ed(new Month(init#2).lastDayInMonth)
    //#post(Month getPreviousMonth()): new Month(init#2).month == 13
    //#post(Month getPreviousMonth()): new Month(init#2).year != null
    //#unanalyzed(Month getPreviousMonth()): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(Month getPreviousMonth()): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(Month getPreviousMonth()): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(Month getPreviousMonth()): Effects-of-calling:java.lang.IllegalArgumentException
    //#unanalyzed(Month getPreviousMonth()): Effects-of-calling:getMonth
    //#unanalyzed(Month getPreviousMonth()): Effects-of-calling:getBlog
    //#unanalyzed(Month getPreviousMonth()): Effects-of-calling:getBlogForPreviousYear
    //#unanalyzed(Month getPreviousMonth()): Effects-of-calling:net.sourceforge.pebble.domain.Blog:getCalendar
    //#unanalyzed(Month getPreviousMonth()): Effects-of-calling:java.util.Calendar:set
    //#unanalyzed(Month getPreviousMonth()): Effects-of-calling:java.util.Calendar:getTime
    //#unanalyzed(Month getPreviousMonth()): Effects-of-calling:java.util.Calendar:setTime
    //#unanalyzed(Month getPreviousMonth()): Effects-of-calling:java.util.Calendar:getActualMaximum
    //#unanalyzed(Month getPreviousMonth()): Effects-of-calling:getYear
    //#unanalyzed(Month getPreviousMonth()): Effects-of-calling:net.sourceforge.pebble.domain.Month:getBlog
    //#unanalyzed(Month getPreviousMonth()): Effects-of-calling:net.sourceforge.pebble.domain.TimePeriod
    //#unanalyzed(Month getPreviousMonth()): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(Month getPreviousMonth()): Effects-of-calling:setDate
    //#unanalyzed(Month getPreviousMonth()): Effects-of-calling:net.sourceforge.pebble.domain.Month
    //#unanalyzed(Month getPreviousMonth()): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(Month getPreviousMonth()): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(Month getPreviousMonth()): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(Month getPreviousMonth()): Effects-of-calling:java.util.List:add
    //#unanalyzed(Month getPreviousMonth()): Effects-of-calling:java.util.Collections:sort
    //#month.java:236: end of method: Month net.sourceforge.pebble.domain.Month.getPreviousMonth()
  }

  /**
   * Gets the Month instance for the next month.
   *
   * @return    a Month instance
   */
  public Month getNextMonth() {
    return year.getBlogForNextMonth(this);
    //#month.java:245: method: Month net.sourceforge.pebble.domain.Month.getNextMonth()
    //#month.java:245: Warning: suspicious precondition
    //#    the precondition for this.month - this.year.months.length is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: net.sourceforge.pebble.domain.Month
    //#    method: Month getNextMonth()
    //#    suspicious precondition index: [4]
    //#    Attribs:  Soft
    //#input(Month getNextMonth()): __Descendant_Table[net/sourceforge/pebble/domain/Month]
    //#input(Month getNextMonth()): __Descendant_Table[others]
    //#input(Month getNextMonth()): __Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#input(Month getNextMonth()): __Dispatch_Table.getDate()Ljava/util/Date;
    //#input(Month getNextMonth()): __Dispatch_Table.getMonth()I
    //#input(Month getNextMonth()): __Dispatch_Table.getYear()Lnet/sourceforge/pebble/domain/Year;
    //#input(Month getNextMonth()): __Dispatch_Table.setDate(Ljava/util/Date;)V
    //#input(Month getNextMonth()): net/sourceforge/pebble/domain/Blog.__Descendant_Table[net/sourceforge/pebble/domain/Blog]
    //#input(Month getNextMonth()): net/sourceforge/pebble/domain/Blog.__Descendant_Table[others]
    //#input(Month getNextMonth()): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.getBlogForNextYear(Lnet/sourceforge/pebble/domain/Year;)Lnet/sourceforge/pebble/domain/Year;
    //#input(Month getNextMonth()): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.getBlogForYear(I)Lnet/sourceforge/pebble/domain/Year;
    //#input(Month getNextMonth()): net/sourceforge/pebble/domain/Day.__Descendant_Table[net/sourceforge/pebble/domain/Day]
    //#input(Month getNextMonth()): net/sourceforge/pebble/domain/Day.__Descendant_Table[others]
    //#input(Month getNextMonth()): net/sourceforge/pebble/domain/Day.__Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#input(Month getNextMonth()): net/sourceforge/pebble/domain/Day.__Dispatch_Table.getDay()I
    //#input(Month getNextMonth()): net/sourceforge/pebble/domain/Day.__Dispatch_Table.getMonth()Lnet/sourceforge/pebble/domain/Month;
    //#input(Month getNextMonth()): net/sourceforge/pebble/domain/Day.__Dispatch_Table.setDate(Ljava/util/Date;)V
    //#input(Month getNextMonth()): net/sourceforge/pebble/domain/Year.__Descendant_Table[net/sourceforge/pebble/domain/Year]
    //#input(Month getNextMonth()): net/sourceforge/pebble/domain/Year.__Descendant_Table[others]
    //#input(Month getNextMonth()): net/sourceforge/pebble/domain/Year.__Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#input(Month getNextMonth()): net/sourceforge/pebble/domain/Year.__Dispatch_Table.getBlogForMonth(I)Lnet/sourceforge/pebble/domain/Month;
    //#input(Month getNextMonth()): net/sourceforge/pebble/domain/Year.__Dispatch_Table.getBlogForNextMonth(Lnet/sourceforge/pebble/domain/Month;)Lnet/sourceforge/pebble/domain/Month;
    //#input(Month getNextMonth()): net/sourceforge/pebble/domain/Year.__Dispatch_Table.getYear()I
    //#input(Month getNextMonth()): net/sourceforge/pebble/domain/Year.__Dispatch_Table.setDate(Ljava/util/Date;)V
    //#input(Month getNextMonth()): this
    //#input(Month getNextMonth()): this.__Tag
    //#input(Month getNextMonth()): this.month
    //#input(Month getNextMonth()): this.year
    //#input(Month getNextMonth()): this.year.__Tag
    //#input(Month getNextMonth()): this.year.blog
    //#input(Month getNextMonth()): this.year.blog.__Tag
    //#input(Month getNextMonth()): this.year.blog.years
    //#input(Month getNextMonth()): this.year.months
    //#input(Month getNextMonth()): this.year.months.length
    //#input(Month getNextMonth()): this.year.months[0..4_294_967_294]
    //#input(Month getNextMonth()): this.year.year
    //#output(Month getNextMonth()): new ArrayList(Day#1) num objects
    //#output(Month getNextMonth()): new ArrayList(Day#2) num objects
    //#output(Month getNextMonth()): new ArrayList(Day#3) num objects
    //#output(Month getNextMonth()): new Day(Month#2) num objects
    //#output(Month getNextMonth()): new Day(Month#2).__Tag
    //#output(Month getNextMonth()): new Day(Month#2).blog
    //#output(Month getNextMonth()): new Day(Month#2).blogEntries
    //#output(Month getNextMonth()): new Day(Month#2).date
    //#output(Month getNextMonth()): new Day(Month#2).day
    //#output(Month getNextMonth()): new Day(Month#2).month
    //#output(Month getNextMonth()): new Day(Month#2).publishedBlogEntries
    //#output(Month getNextMonth()): new Day(Month#2).unpublishedBlogEntries
    //#output(Month getNextMonth()): new Day[](Month#1) num objects
    //#output(Month getNextMonth()): new Day[](Month#1).length
    //#output(Month getNextMonth()): new Day[](Month#1)[0..4_294_967_295]
    //#output(Month getNextMonth()): new Month(init#2) num objects
    //#output(Month getNextMonth()): new Month(init#2).__Tag
    //#output(Month getNextMonth()): new Month(init#2).blog
    //#output(Month getNextMonth()): new Month(init#2).dailyBlogs
    //#output(Month getNextMonth()): new Month(init#2).date
    //#output(Month getNextMonth()): new Month(init#2).lastDayInMonth
    //#output(Month getNextMonth()): new Month(init#2).month
    //#output(Month getNextMonth()): new Month(init#2).year
    //#output(Month getNextMonth()): return_value
    //#new obj(Month getNextMonth()): new ArrayList(Day#1)
    //#new obj(Month getNextMonth()): new ArrayList(Day#2)
    //#new obj(Month getNextMonth()): new ArrayList(Day#3)
    //#new obj(Month getNextMonth()): new Day(Month#2)
    //#new obj(Month getNextMonth()): new Day[](Month#1)
    //#new obj(Month getNextMonth()): new Month(init#2)
    //#pre[2] (Month getNextMonth()): this.__Tag == net/sourceforge/pebble/domain/Month
    //#pre[3] (Month getNextMonth()): this.month >= 0
    //#pre[5] (Month getNextMonth()): this.year != null
    //#pre[6] (Month getNextMonth()): this.year.__Tag == net/sourceforge/pebble/domain/Year
    //#pre[4] (Month getNextMonth()): (soft) this.month - this.year.months.length in {-Inf..-1, 12..4_294_967_295}
    //#pre[7] (Month getNextMonth()): (soft) this.year.blog != null
    //#pre[8] (Month getNextMonth()): (soft) this.year.blog.__Tag == net/sourceforge/pebble/domain/Blog
    //#pre[9] (Month getNextMonth()): (soft) this.year.blog.years != null
    //#pre[10] (Month getNextMonth()): (soft) this.year.months != null
    //#pre[12] (Month getNextMonth()): (soft) init'ed(this.year.months[0..4_294_967_294])
    //#pre[13] (Month getNextMonth()): (soft) this.year.year <= 4_294_967_294
    //#post(Month getNextMonth()): init'ed(return_value)
    //#post(Month getNextMonth()): init'ed(new ArrayList(Day#1) num objects)
    //#post(Month getNextMonth()): init'ed(new ArrayList(Day#2) num objects)
    //#post(Month getNextMonth()): init'ed(new ArrayList(Day#3) num objects)
    //#post(Month getNextMonth()): init'ed(new Day(Month#2) num objects)
    //#post(Month getNextMonth()): init'ed(new Day(Month#2).__Tag)
    //#post(Month getNextMonth()): init'ed(new Day(Month#2).blog)
    //#post(Month getNextMonth()): init'ed(new Day(Month#2).blogEntries)
    //#post(Month getNextMonth()): init'ed(new Day(Month#2).date)
    //#post(Month getNextMonth()): init'ed(new Day(Month#2).day)
    //#post(Month getNextMonth()): init'ed(new Day(Month#2).month)
    //#post(Month getNextMonth()): init'ed(new Day(Month#2).publishedBlogEntries)
    //#post(Month getNextMonth()): init'ed(new Day(Month#2).unpublishedBlogEntries)
    //#post(Month getNextMonth()): new Day[](Month#1) num objects in {0, 12}
    //#post(Month getNextMonth()): init'ed(new Day[](Month#1).length)
    //#post(Month getNextMonth()): init'ed(new Day[](Month#1)[0..4_294_967_295])
    //#post(Month getNextMonth()): new Month(init#2) num objects in {0, 12}
    //#post(Month getNextMonth()): new Month(init#2).__Tag == net/sourceforge/pebble/domain/Month
    //#post(Month getNextMonth()): new Month(init#2).blog != null
    //#post(Month getNextMonth()): new Month(init#2).dailyBlogs != null
    //#post(Month getNextMonth()): init'ed(new Month(init#2).date)
    //#post(Month getNextMonth()): init'ed(new Month(init#2).lastDayInMonth)
    //#post(Month getNextMonth()): new Month(init#2).month == 13
    //#post(Month getNextMonth()): new Month(init#2).year != null
    //#unanalyzed(Month getNextMonth()): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(Month getNextMonth()): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(Month getNextMonth()): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(Month getNextMonth()): Effects-of-calling:java.lang.IllegalArgumentException
    //#unanalyzed(Month getNextMonth()): Effects-of-calling:getMonth
    //#unanalyzed(Month getNextMonth()): Effects-of-calling:getBlog
    //#unanalyzed(Month getNextMonth()): Effects-of-calling:getBlogForNextYear
    //#unanalyzed(Month getNextMonth()): Effects-of-calling:net.sourceforge.pebble.domain.Blog:getCalendar
    //#unanalyzed(Month getNextMonth()): Effects-of-calling:java.util.Calendar:set
    //#unanalyzed(Month getNextMonth()): Effects-of-calling:java.util.Calendar:getTime
    //#unanalyzed(Month getNextMonth()): Effects-of-calling:java.util.Calendar:setTime
    //#unanalyzed(Month getNextMonth()): Effects-of-calling:java.util.Calendar:getActualMaximum
    //#unanalyzed(Month getNextMonth()): Effects-of-calling:getYear
    //#unanalyzed(Month getNextMonth()): Effects-of-calling:net.sourceforge.pebble.domain.Month:getBlog
    //#unanalyzed(Month getNextMonth()): Effects-of-calling:net.sourceforge.pebble.domain.TimePeriod
    //#unanalyzed(Month getNextMonth()): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(Month getNextMonth()): Effects-of-calling:setDate
    //#unanalyzed(Month getNextMonth()): Effects-of-calling:net.sourceforge.pebble.domain.Month
    //#unanalyzed(Month getNextMonth()): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(Month getNextMonth()): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(Month getNextMonth()): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(Month getNextMonth()): Effects-of-calling:java.util.List:add
    //#unanalyzed(Month getNextMonth()): Effects-of-calling:java.util.Collections:sort
    //#month.java:245: end of method: Month net.sourceforge.pebble.domain.Month.getNextMonth()
  }

  /**
   * Determines if the this Month is before (in the calendar) the
   * specified Month.
   *
   * @return  true if this instance represents an earlier month than the
   *          specified Month instance, false otherwise
   */
  public boolean before(Month month) {
    return getDate().before(month.getDate());
    //#month.java:256: method: bool net.sourceforge.pebble.domain.Month.before(Month)
    //#input(bool before(Month)): __Descendant_Table[net/sourceforge/pebble/domain/Month]
    //#input(bool before(Month)): __Descendant_Table[others]
    //#input(bool before(Month)): __Dispatch_Table.getDate()Ljava/util/Date;
    //#input(bool before(Month)): month
    //#input(bool before(Month)): month.__Tag
    //#input(bool before(Month)): month.date
    //#input(bool before(Month)): this
    //#input(bool before(Month)): this.__Tag
    //#input(bool before(Month)): this.date
    //#output(bool before(Month)): return_value
    //#pre[1] (bool before(Month)): month != null
    //#pre[2] (bool before(Month)): month.__Tag == net/sourceforge/pebble/domain/Month
    //#pre[3] (bool before(Month)): init'ed(month.date)
    //#pre[5] (bool before(Month)): this.__Tag == net/sourceforge/pebble/domain/Month
    //#pre[6] (bool before(Month)): this.date != null
    //#post(bool before(Month)): init'ed(return_value)
    //#month.java:256: end of method: bool net.sourceforge.pebble.domain.Month.before(Month)
  }

  /**
   * Determines if the this Month is after (in the calendar) the
   * specified Month.
   *
   * @return  true if this instance represents a later month than the
   *          specified Month instance, false otherwise
   */
  public boolean after(Month month) {
    return getDate().after(month.getDate());
    //#month.java:267: method: bool net.sourceforge.pebble.domain.Month.after(Month)
    //#input(bool after(Month)): __Descendant_Table[net/sourceforge/pebble/domain/Month]
    //#input(bool after(Month)): __Descendant_Table[others]
    //#input(bool after(Month)): __Dispatch_Table.getDate()Ljava/util/Date;
    //#input(bool after(Month)): month
    //#input(bool after(Month)): month.__Tag
    //#input(bool after(Month)): month.date
    //#input(bool after(Month)): this
    //#input(bool after(Month)): this.__Tag
    //#input(bool after(Month)): this.date
    //#output(bool after(Month)): return_value
    //#pre[1] (bool after(Month)): month != null
    //#pre[2] (bool after(Month)): month.__Tag == net/sourceforge/pebble/domain/Month
    //#pre[3] (bool after(Month)): init'ed(month.date)
    //#pre[5] (bool after(Month)): this.__Tag == net/sourceforge/pebble/domain/Month
    //#pre[6] (bool after(Month)): this.date != null
    //#post(bool after(Month)): init'ed(return_value)
    //#month.java:267: end of method: bool net.sourceforge.pebble.domain.Month.after(Month)
  }

  /**
   * Given a Day, this method returns the Day instance for the
   * previous day.
   *
   * @param day   a Day instance
   * @return  a Day instance representing the previous day
   */
  Day getBlogForPreviousDay(Day day) {
    if (day.getDay() > 1) {
    //#month.java:278: method: Day net.sourceforge.pebble.domain.Month.getBlogForPreviousDay(Day)
    //#input(Day getBlogForPreviousDay(Day)): __Descendant_Table[net/sourceforge/pebble/domain/Month]
    //#input(Day getBlogForPreviousDay(Day)): __Descendant_Table[others]
    //#input(Day getBlogForPreviousDay(Day)): __Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#input(Day getBlogForPreviousDay(Day)): __Dispatch_Table.getBlogForDay(I)Lnet/sourceforge/pebble/domain/Day;
    //#input(Day getBlogForPreviousDay(Day)): __Dispatch_Table.getBlogForLastDay()Lnet/sourceforge/pebble/domain/Day;
    //#input(Day getBlogForPreviousDay(Day)): __Dispatch_Table.getDate()Ljava/util/Date;
    //#input(Day getBlogForPreviousDay(Day)): __Dispatch_Table.getMonth()I
    //#input(Day getBlogForPreviousDay(Day)): __Dispatch_Table.getYear()Lnet/sourceforge/pebble/domain/Year;
    //#input(Day getBlogForPreviousDay(Day)): __Dispatch_Table.setDate(Ljava/util/Date;)V
    //#input(Day getBlogForPreviousDay(Day)): day
    //#input(Day getBlogForPreviousDay(Day)): day.__Tag
    //#input(Day getBlogForPreviousDay(Day)): day.day
    //#input(Day getBlogForPreviousDay(Day)): net/sourceforge/pebble/domain/Blog.__Descendant_Table[net/sourceforge/pebble/domain/Blog]
    //#input(Day getBlogForPreviousDay(Day)): net/sourceforge/pebble/domain/Blog.__Descendant_Table[others]
    //#input(Day getBlogForPreviousDay(Day)): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.getBlogForPreviousYear(Lnet/sourceforge/pebble/domain/Year;)Lnet/sourceforge/pebble/domain/Year;
    //#input(Day getBlogForPreviousDay(Day)): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.getBlogForYear(I)Lnet/sourceforge/pebble/domain/Year;
    //#input(Day getBlogForPreviousDay(Day)): net/sourceforge/pebble/domain/Day.__Descendant_Table[net/sourceforge/pebble/domain/Day]
    //#input(Day getBlogForPreviousDay(Day)): net/sourceforge/pebble/domain/Day.__Descendant_Table[others]
    //#input(Day getBlogForPreviousDay(Day)): net/sourceforge/pebble/domain/Day.__Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#input(Day getBlogForPreviousDay(Day)): net/sourceforge/pebble/domain/Day.__Dispatch_Table.getDay()I
    //#input(Day getBlogForPreviousDay(Day)): net/sourceforge/pebble/domain/Day.__Dispatch_Table.getMonth()Lnet/sourceforge/pebble/domain/Month;
    //#input(Day getBlogForPreviousDay(Day)): net/sourceforge/pebble/domain/Day.__Dispatch_Table.setDate(Ljava/util/Date;)V
    //#input(Day getBlogForPreviousDay(Day)): net/sourceforge/pebble/domain/Year.__Descendant_Table[net/sourceforge/pebble/domain/Year]
    //#input(Day getBlogForPreviousDay(Day)): net/sourceforge/pebble/domain/Year.__Descendant_Table[others]
    //#input(Day getBlogForPreviousDay(Day)): net/sourceforge/pebble/domain/Year.__Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#input(Day getBlogForPreviousDay(Day)): net/sourceforge/pebble/domain/Year.__Dispatch_Table.getBlogForMonth(I)Lnet/sourceforge/pebble/domain/Month;
    //#input(Day getBlogForPreviousDay(Day)): net/sourceforge/pebble/domain/Year.__Dispatch_Table.getBlogForPreviousMonth(Lnet/sourceforge/pebble/domain/Month;)Lnet/sourceforge/pebble/domain/Month;
    //#input(Day getBlogForPreviousDay(Day)): net/sourceforge/pebble/domain/Year.__Dispatch_Table.getYear()I
    //#input(Day getBlogForPreviousDay(Day)): net/sourceforge/pebble/domain/Year.__Dispatch_Table.setDate(Ljava/util/Date;)V
    //#input(Day getBlogForPreviousDay(Day)): this
    //#input(Day getBlogForPreviousDay(Day)): this.__Tag
    //#input(Day getBlogForPreviousDay(Day)): this.dailyBlogs
    //#input(Day getBlogForPreviousDay(Day)): this.dailyBlogs.length
    //#input(Day getBlogForPreviousDay(Day)): this.dailyBlogs[0..4_294_967_294]
    //#input(Day getBlogForPreviousDay(Day)): this.lastDayInMonth
    //#input(Day getBlogForPreviousDay(Day)): this.month
    //#input(Day getBlogForPreviousDay(Day)): this.year
    //#input(Day getBlogForPreviousDay(Day)): this.year.__Tag
    //#input(Day getBlogForPreviousDay(Day)): this.year.blog
    //#input(Day getBlogForPreviousDay(Day)): this.year.blog.__Tag
    //#input(Day getBlogForPreviousDay(Day)): this.year.blog.years
    //#input(Day getBlogForPreviousDay(Day)): this.year.months
    //#input(Day getBlogForPreviousDay(Day)): this.year.months.length
    //#input(Day getBlogForPreviousDay(Day)): this.year.months[0..4_294_967_294]
    //#input(Day getBlogForPreviousDay(Day)): this.year.year
    //#output(Day getBlogForPreviousDay(Day)): new ArrayList(Day#1) num objects
    //#output(Day getBlogForPreviousDay(Day)): new ArrayList(Day#2) num objects
    //#output(Day getBlogForPreviousDay(Day)): new ArrayList(Day#3) num objects
    //#output(Day getBlogForPreviousDay(Day)): new Day(Month#2) num objects
    //#output(Day getBlogForPreviousDay(Day)): new Day(Month#2).__Tag
    //#output(Day getBlogForPreviousDay(Day)): new Day(Month#2).blog
    //#output(Day getBlogForPreviousDay(Day)): new Day(Month#2).blogEntries
    //#output(Day getBlogForPreviousDay(Day)): new Day(Month#2).date
    //#output(Day getBlogForPreviousDay(Day)): new Day(Month#2).day
    //#output(Day getBlogForPreviousDay(Day)): new Day(Month#2).month
    //#output(Day getBlogForPreviousDay(Day)): new Day(Month#2).publishedBlogEntries
    //#output(Day getBlogForPreviousDay(Day)): new Day(Month#2).unpublishedBlogEntries
    //#output(Day getBlogForPreviousDay(Day)): return_value
    //#new obj(Day getBlogForPreviousDay(Day)): new ArrayList(Day#1)
    //#new obj(Day getBlogForPreviousDay(Day)): new ArrayList(Day#2)
    //#new obj(Day getBlogForPreviousDay(Day)): new ArrayList(Day#3)
    //#new obj(Day getBlogForPreviousDay(Day)): new Day(Month#2)
    //#pre[1] (Day getBlogForPreviousDay(Day)): day != null
    //#pre[2] (Day getBlogForPreviousDay(Day)): day.__Tag == net/sourceforge/pebble/domain/Day
    //#pre[3] (Day getBlogForPreviousDay(Day)): init'ed(day.day)
    //#pre[6] (Day getBlogForPreviousDay(Day)): this.__Tag == net/sourceforge/pebble/domain/Month
    //#pre[7] (Day getBlogForPreviousDay(Day)): (soft) this.dailyBlogs != null
    //#pre[8] (Day getBlogForPreviousDay(Day)): (soft) this.dailyBlogs.length >= 1
    //#pre[9] (Day getBlogForPreviousDay(Day)): (soft) day.day <= this.dailyBlogs.length + 1
    //#pre[10] (Day getBlogForPreviousDay(Day)): (soft) init'ed(this.dailyBlogs[0..4_294_967_294])
    //#pre[11] (Day getBlogForPreviousDay(Day)): (soft) init'ed(this.lastDayInMonth)
    //#pre[13] (Day getBlogForPreviousDay(Day)): (soft) this.month <= 13
    //#pre[14] (Day getBlogForPreviousDay(Day)): (soft) this.month <= this.year.months.length + 1
    //#pre[15] (Day getBlogForPreviousDay(Day)): (soft) this.year != null
    //#pre[16] (Day getBlogForPreviousDay(Day)): (soft) this.year.__Tag == net/sourceforge/pebble/domain/Year
    //#pre[17] (Day getBlogForPreviousDay(Day)): (soft) this.year.blog != null
    //#pre[18] (Day getBlogForPreviousDay(Day)): (soft) this.year.blog.__Tag == net/sourceforge/pebble/domain/Blog
    //#pre[19] (Day getBlogForPreviousDay(Day)): (soft) this.year.blog.years != null
    //#pre[20] (Day getBlogForPreviousDay(Day)): (soft) this.year.months != null
    //#pre[22] (Day getBlogForPreviousDay(Day)): (soft) init'ed(this.year.months[0..4_294_967_294])
    //#pre[23] (Day getBlogForPreviousDay(Day)): (soft) this.year.year >= -2_147_483_647
    //#presumption(Day getBlogForPreviousDay(Day)): getBlogForPreviousMonth(...).__Tag@281 == net/sourceforge/pebble/domain/Month
    //#presumption(Day getBlogForPreviousDay(Day)): getBlogForPreviousMonth(...).dailyBlogs.length@281 >= 1
    //#presumption(Day getBlogForPreviousDay(Day)): getBlogForPreviousMonth(...).dailyBlogs@281 != null
    //#presumption(Day getBlogForPreviousDay(Day)): getBlogForPreviousMonth(...).lastDayInMonth@281 >= 1
    //#post(Day getBlogForPreviousDay(Day)): init'ed(return_value)
    //#post(Day getBlogForPreviousDay(Day)): init'ed(new ArrayList(Day#1) num objects)
    //#post(Day getBlogForPreviousDay(Day)): init'ed(new ArrayList(Day#2) num objects)
    //#post(Day getBlogForPreviousDay(Day)): init'ed(new ArrayList(Day#3) num objects)
    //#post(Day getBlogForPreviousDay(Day)): init'ed(new Day(Month#2) num objects)
    //#post(Day getBlogForPreviousDay(Day)): init'ed(new Day(Month#2).__Tag)
    //#post(Day getBlogForPreviousDay(Day)): init'ed(new Day(Month#2).blog)
    //#post(Day getBlogForPreviousDay(Day)): init'ed(new Day(Month#2).blogEntries)
    //#post(Day getBlogForPreviousDay(Day)): init'ed(new Day(Month#2).date)
    //#post(Day getBlogForPreviousDay(Day)): init'ed(new Day(Month#2).day)
    //#post(Day getBlogForPreviousDay(Day)): init'ed(new Day(Month#2).month)
    //#post(Day getBlogForPreviousDay(Day)): init'ed(new Day(Month#2).publishedBlogEntries)
    //#post(Day getBlogForPreviousDay(Day)): init'ed(new Day(Month#2).unpublishedBlogEntries)
    //#unanalyzed(Day getBlogForPreviousDay(Day)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(Day getBlogForPreviousDay(Day)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(Day getBlogForPreviousDay(Day)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(Day getBlogForPreviousDay(Day)): Effects-of-calling:java.lang.IllegalArgumentException
    //#unanalyzed(Day getBlogForPreviousDay(Day)): Effects-of-calling:getMonth
    //#unanalyzed(Day getBlogForPreviousDay(Day)): Effects-of-calling:getBlog
    //#unanalyzed(Day getBlogForPreviousDay(Day)): Effects-of-calling:getBlogForPreviousYear
    //#unanalyzed(Day getBlogForPreviousDay(Day)): Effects-of-calling:net.sourceforge.pebble.domain.Blog:getCalendar
    //#unanalyzed(Day getBlogForPreviousDay(Day)): Effects-of-calling:java.util.Calendar:set
    //#unanalyzed(Day getBlogForPreviousDay(Day)): Effects-of-calling:java.util.Calendar:getTime
    //#unanalyzed(Day getBlogForPreviousDay(Day)): Effects-of-calling:java.util.Calendar:setTime
    //#unanalyzed(Day getBlogForPreviousDay(Day)): Effects-of-calling:java.util.Calendar:getActualMaximum
    //#unanalyzed(Day getBlogForPreviousDay(Day)): Effects-of-calling:getYear
    //#unanalyzed(Day getBlogForPreviousDay(Day)): Effects-of-calling:net.sourceforge.pebble.domain.Month:getBlog
    //#unanalyzed(Day getBlogForPreviousDay(Day)): Effects-of-calling:net.sourceforge.pebble.domain.TimePeriod
    //#unanalyzed(Day getBlogForPreviousDay(Day)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(Day getBlogForPreviousDay(Day)): Effects-of-calling:setDate
    //#unanalyzed(Day getBlogForPreviousDay(Day)): Effects-of-calling:net.sourceforge.pebble.domain.Month
    //#unanalyzed(Day getBlogForPreviousDay(Day)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(Day getBlogForPreviousDay(Day)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(Day getBlogForPreviousDay(Day)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(Day getBlogForPreviousDay(Day)): Effects-of-calling:java.util.List:add
    //#unanalyzed(Day getBlogForPreviousDay(Day)): Effects-of-calling:java.util.Collections:sort
    //#test_vector(Day getBlogForPreviousDay(Day)): day.day: {-2_147_483_648..1}, {2..4_294_967_295}
      return this.getBlogForDay(day.getDay() - 1);
    //#month.java:279: ?precondition failure
    //#    net/sourceforge/pebble/domain/Month.getBlogForDay: this.lastDayInMonth >= 1
    //#    severity: LOW
    //#    class: net.sourceforge.pebble.domain.Month
    //#    method: Day getBlogForPreviousDay(Day)
    //#    basic block: bb_2
    //#    assertion: this.lastDayInMonth >= 1
    //#    callee: Day net/sourceforge/pebble/domain/Month.getBlogForDay(int)
    //#    callee assertion: this.lastDayInMonth >= 1
    //#    callee file: month.java
    //#    callee precondition index: [10]
    //#    callee srcpos: 196
    //#    VN: this.lastDayInMonth
    //#    Expected: {1..4_294_967_295}
    //#    Bad: {-2_147_483_648..0}
    //#    Attribs:  Int  Bad overlaps +/-1000  Bad < Exp
    //#month.java:279: ?precondition failure
    //#    net/sourceforge/pebble/domain/Month.getBlogForDay: this.lastDayInMonth - day in 0..4_294_967_294
    //#    severity: LOW
    //#    class: net.sourceforge.pebble.domain.Month
    //#    method: Day getBlogForPreviousDay(Day)
    //#    basic block: bb_2
    //#    assertion: this.lastDayInMonth - day.day in -1..4_294_967_293
    //#    callee: Day net/sourceforge/pebble/domain/Month.getBlogForDay(int)
    //#    callee assertion: this.lastDayInMonth - day in 0..4_294_967_294
    //#    callee file: month.java
    //#    callee precondition index: [11]
    //#    callee srcpos: 196
    //#    VN: (this.lastDayInMonth - day.day) + 1
    //#    Expected: {0..4_294_967_294}
    //#    Bad: {-4_294_967_293..-1}
    //#    Attribs:  Int  Bad overlaps +/-1000  Bad < Exp
    } else {
      return year.getBlogForPreviousMonth(this).getBlogForLastDay();
    //#month.java:281: ?null dereference
    //#    getBlogForPreviousMonth(...) != null
    //#    severity: MEDIUM
    //#    class: net.sourceforge.pebble.domain.Month
    //#    method: Day getBlogForPreviousDay(Day)
    //#    basic block: bb_3
    //#    assertion: getBlogForPreviousMonth(...) != null
    //#    VN: getBlogForPreviousMonth(...)
    //#    Expected: Inverse{null}
    //#    Bad: Addr_Set{null}
    //#    Attribs:  Ptr  null in Bad
    //#month.java:281: ?precondition failure
    //#    net/sourceforge/pebble/domain/Month.getBlogForLastDay: this.dailyBlogs.length >= 1
    //#    severity: LOW
    //#    class: net.sourceforge.pebble.domain.Month
    //#    method: Day getBlogForPreviousDay(Day)
    //#    basic block: bb_3
    //#    assertion: getBlogForPreviousMonth(...).dailyBlogs.length >= 1
    //#    callee: Day net/sourceforge/pebble/domain/Month.getBlogForLastDay()
    //#    callee assertion: this.dailyBlogs.length >= 1
    //#    callee file: month.java
    //#    callee precondition index: [4]
    //#    callee srcpos: 218
    //#    VN: getBlogForPreviousMonth(...).dailyBlogs.length
    //#    Expected: {1..+Inf}
    //#    Bad: {0}
    //#    Attribs:  Int  Bad singleton  Bad overlaps +/-1000  Bad < Exp
    //#month.java:281: ?precondition failure
    //#    net/sourceforge/pebble/domain/Month.getBlogForLastDay: this.lastDayInMonth <= this.dailyBlogs.length
    //#    severity: LOW
    //#    class: net.sourceforge.pebble.domain.Month
    //#    method: Day getBlogForPreviousDay(Day)
    //#    basic block: bb_3
    //#    assertion: getBlogForPreviousMonth(...).lastDayInMonth <= getBlogForPreviousMonth(...).dailyBlogs.length
    //#    callee: Day net/sourceforge/pebble/domain/Month.getBlogForLastDay()
    //#    callee assertion: this.lastDayInMonth <= this.dailyBlogs.length
    //#    callee file: month.java
    //#    callee precondition index: [5]
    //#    callee srcpos: 218
    //#    VN: getBlogForPreviousMonth(...).dailyBlogs.length - getBlogForPreviousMonth(...).lastDayInMonth
    //#    Expected: {0..+Inf}
    //#    Bad: {-4_294_967_294..-1}
    //#    Attribs:  Int  Bad overlaps +/-1000  Bad < Exp
    //#month.java:281: ?precondition failure
    //#    net/sourceforge/pebble/domain/Month.getBlogForLastDay: this.lastDayInMonth >= 1
    //#    severity: LOW
    //#    class: net.sourceforge.pebble.domain.Month
    //#    method: Day getBlogForPreviousDay(Day)
    //#    basic block: bb_3
    //#    assertion: getBlogForPreviousMonth(...).lastDayInMonth >= 1
    //#    callee: Day net/sourceforge/pebble/domain/Month.getBlogForLastDay()
    //#    callee assertion: this.lastDayInMonth >= 1
    //#    callee file: month.java
    //#    callee precondition index: [7]
    //#    callee srcpos: 218
    //#    VN: getBlogForPreviousMonth(...).lastDayInMonth
    //#    Expected: {1..4_294_967_295}
    //#    Bad: {-2_147_483_648..0}
    //#    Attribs:  Int  Bad overlaps +/-1000  Bad < Exp
    //#month.java:281: end of method: Day net.sourceforge.pebble.domain.Month.getBlogForPreviousDay(Day)
    }
  }

  /**
   * Given a Day, this method returns the Day instance for the
   * next day.
   *
   * @param day   a Day instance
   * @return  a Day instance representing the next day
   */
  Day getBlogForNextDay(Day day) {
    if (day.getDay() < lastDayInMonth) {
    //#month.java:293: method: Day net.sourceforge.pebble.domain.Month.getBlogForNextDay(Day)
    //#month.java:293: Warning: suspicious precondition
    //#    the precondition for this.month - this.year.months.length is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: net.sourceforge.pebble.domain.Month
    //#    method: Day getBlogForNextDay(Day)
    //#    suspicious precondition index: [14]
    //#    Attribs:  Soft
    //#input(Day getBlogForNextDay(Day)): __Descendant_Table[net/sourceforge/pebble/domain/Month]
    //#input(Day getBlogForNextDay(Day)): __Descendant_Table[others]
    //#input(Day getBlogForNextDay(Day)): __Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#input(Day getBlogForNextDay(Day)): __Dispatch_Table.getBlogForDay(I)Lnet/sourceforge/pebble/domain/Day;
    //#input(Day getBlogForNextDay(Day)): __Dispatch_Table.getBlogForFirstDay()Lnet/sourceforge/pebble/domain/Day;
    //#input(Day getBlogForNextDay(Day)): __Dispatch_Table.getDate()Ljava/util/Date;
    //#input(Day getBlogForNextDay(Day)): __Dispatch_Table.getMonth()I
    //#input(Day getBlogForNextDay(Day)): __Dispatch_Table.getYear()Lnet/sourceforge/pebble/domain/Year;
    //#input(Day getBlogForNextDay(Day)): __Dispatch_Table.setDate(Ljava/util/Date;)V
    //#input(Day getBlogForNextDay(Day)): day
    //#input(Day getBlogForNextDay(Day)): day.__Tag
    //#input(Day getBlogForNextDay(Day)): day.day
    //#input(Day getBlogForNextDay(Day)): net/sourceforge/pebble/domain/Blog.__Descendant_Table[net/sourceforge/pebble/domain/Blog]
    //#input(Day getBlogForNextDay(Day)): net/sourceforge/pebble/domain/Blog.__Descendant_Table[others]
    //#input(Day getBlogForNextDay(Day)): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.getBlogForNextYear(Lnet/sourceforge/pebble/domain/Year;)Lnet/sourceforge/pebble/domain/Year;
    //#input(Day getBlogForNextDay(Day)): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.getBlogForYear(I)Lnet/sourceforge/pebble/domain/Year;
    //#input(Day getBlogForNextDay(Day)): net/sourceforge/pebble/domain/Day.__Descendant_Table[net/sourceforge/pebble/domain/Day]
    //#input(Day getBlogForNextDay(Day)): net/sourceforge/pebble/domain/Day.__Descendant_Table[others]
    //#input(Day getBlogForNextDay(Day)): net/sourceforge/pebble/domain/Day.__Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#input(Day getBlogForNextDay(Day)): net/sourceforge/pebble/domain/Day.__Dispatch_Table.getDay()I
    //#input(Day getBlogForNextDay(Day)): net/sourceforge/pebble/domain/Day.__Dispatch_Table.getMonth()Lnet/sourceforge/pebble/domain/Month;
    //#input(Day getBlogForNextDay(Day)): net/sourceforge/pebble/domain/Day.__Dispatch_Table.setDate(Ljava/util/Date;)V
    //#input(Day getBlogForNextDay(Day)): net/sourceforge/pebble/domain/Year.__Descendant_Table[net/sourceforge/pebble/domain/Year]
    //#input(Day getBlogForNextDay(Day)): net/sourceforge/pebble/domain/Year.__Descendant_Table[others]
    //#input(Day getBlogForNextDay(Day)): net/sourceforge/pebble/domain/Year.__Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#input(Day getBlogForNextDay(Day)): net/sourceforge/pebble/domain/Year.__Dispatch_Table.getBlogForMonth(I)Lnet/sourceforge/pebble/domain/Month;
    //#input(Day getBlogForNextDay(Day)): net/sourceforge/pebble/domain/Year.__Dispatch_Table.getBlogForNextMonth(Lnet/sourceforge/pebble/domain/Month;)Lnet/sourceforge/pebble/domain/Month;
    //#input(Day getBlogForNextDay(Day)): net/sourceforge/pebble/domain/Year.__Dispatch_Table.getYear()I
    //#input(Day getBlogForNextDay(Day)): net/sourceforge/pebble/domain/Year.__Dispatch_Table.setDate(Ljava/util/Date;)V
    //#input(Day getBlogForNextDay(Day)): this
    //#input(Day getBlogForNextDay(Day)): this.__Tag
    //#input(Day getBlogForNextDay(Day)): this.dailyBlogs
    //#input(Day getBlogForNextDay(Day)): this.dailyBlogs.length
    //#input(Day getBlogForNextDay(Day)): this.dailyBlogs[0..4_294_967_294]
    //#input(Day getBlogForNextDay(Day)): this.lastDayInMonth
    //#input(Day getBlogForNextDay(Day)): this.month
    //#input(Day getBlogForNextDay(Day)): this.year
    //#input(Day getBlogForNextDay(Day)): this.year.__Tag
    //#input(Day getBlogForNextDay(Day)): this.year.blog
    //#input(Day getBlogForNextDay(Day)): this.year.blog.__Tag
    //#input(Day getBlogForNextDay(Day)): this.year.blog.years
    //#input(Day getBlogForNextDay(Day)): this.year.months
    //#input(Day getBlogForNextDay(Day)): this.year.months.length
    //#input(Day getBlogForNextDay(Day)): this.year.months[0..4_294_967_294]
    //#input(Day getBlogForNextDay(Day)): this.year.year
    //#output(Day getBlogForNextDay(Day)): new ArrayList(Day#1) num objects
    //#output(Day getBlogForNextDay(Day)): new ArrayList(Day#2) num objects
    //#output(Day getBlogForNextDay(Day)): new ArrayList(Day#3) num objects
    //#output(Day getBlogForNextDay(Day)): new Day(Month#2) num objects
    //#output(Day getBlogForNextDay(Day)): new Day(Month#2).__Tag
    //#output(Day getBlogForNextDay(Day)): new Day(Month#2).blog
    //#output(Day getBlogForNextDay(Day)): new Day(Month#2).blogEntries
    //#output(Day getBlogForNextDay(Day)): new Day(Month#2).date
    //#output(Day getBlogForNextDay(Day)): new Day(Month#2).day
    //#output(Day getBlogForNextDay(Day)): new Day(Month#2).month
    //#output(Day getBlogForNextDay(Day)): new Day(Month#2).publishedBlogEntries
    //#output(Day getBlogForNextDay(Day)): new Day(Month#2).unpublishedBlogEntries
    //#output(Day getBlogForNextDay(Day)): return_value
    //#new obj(Day getBlogForNextDay(Day)): new ArrayList(Day#1)
    //#new obj(Day getBlogForNextDay(Day)): new ArrayList(Day#2)
    //#new obj(Day getBlogForNextDay(Day)): new ArrayList(Day#3)
    //#new obj(Day getBlogForNextDay(Day)): new Day(Month#2)
    //#pre[1] (Day getBlogForNextDay(Day)): day != null
    //#pre[2] (Day getBlogForNextDay(Day)): day.__Tag == net/sourceforge/pebble/domain/Day
    //#pre[3] (Day getBlogForNextDay(Day)): init'ed(day.day)
    //#pre[4] (Day getBlogForNextDay(Day)): day.day - this.lastDayInMonth in -4_294_967_295..6_442_450_943
    //#pre[7] (Day getBlogForNextDay(Day)): this.__Tag == net/sourceforge/pebble/domain/Month
    //#pre[12] (Day getBlogForNextDay(Day)): init'ed(this.lastDayInMonth)
    //#pre[8] (Day getBlogForNextDay(Day)): (soft) this.dailyBlogs != null
    //#pre[9] (Day getBlogForNextDay(Day)): (soft) this.dailyBlogs.length >= 1
    //#pre[10] (Day getBlogForNextDay(Day)): (soft) day.day < this.dailyBlogs.length
    //#pre[11] (Day getBlogForNextDay(Day)): (soft) init'ed(this.dailyBlogs[0..4_294_967_294])
    //#pre[13] (Day getBlogForNextDay(Day)): (soft) this.month >= 0
    //#pre[14] (Day getBlogForNextDay(Day)): (soft) this.month - this.year.months.length in {-Inf..-1, 12..4_294_967_295}
    //#pre[15] (Day getBlogForNextDay(Day)): (soft) this.year != null
    //#pre[16] (Day getBlogForNextDay(Day)): (soft) this.year.__Tag == net/sourceforge/pebble/domain/Year
    //#pre[17] (Day getBlogForNextDay(Day)): (soft) this.year.blog != null
    //#pre[18] (Day getBlogForNextDay(Day)): (soft) this.year.blog.__Tag == net/sourceforge/pebble/domain/Blog
    //#pre[19] (Day getBlogForNextDay(Day)): (soft) this.year.blog.years != null
    //#pre[20] (Day getBlogForNextDay(Day)): (soft) this.year.months != null
    //#pre[22] (Day getBlogForNextDay(Day)): (soft) init'ed(this.year.months[0..4_294_967_294])
    //#pre[23] (Day getBlogForNextDay(Day)): (soft) this.year.year <= 4_294_967_294
    //#presumption(Day getBlogForNextDay(Day)): getBlogForNextMonth(...).__Tag@296 == net/sourceforge/pebble/domain/Month
    //#presumption(Day getBlogForNextDay(Day)): getBlogForNextMonth(...).dailyBlogs.length@296 >= 1
    //#presumption(Day getBlogForNextDay(Day)): getBlogForNextMonth(...).dailyBlogs@296 != null
    //#presumption(Day getBlogForNextDay(Day)): getBlogForNextMonth(...).lastDayInMonth@296 >= 1
    //#post(Day getBlogForNextDay(Day)): init'ed(return_value)
    //#post(Day getBlogForNextDay(Day)): init'ed(new ArrayList(Day#1) num objects)
    //#post(Day getBlogForNextDay(Day)): init'ed(new ArrayList(Day#2) num objects)
    //#post(Day getBlogForNextDay(Day)): init'ed(new ArrayList(Day#3) num objects)
    //#post(Day getBlogForNextDay(Day)): init'ed(new Day(Month#2) num objects)
    //#post(Day getBlogForNextDay(Day)): init'ed(new Day(Month#2).__Tag)
    //#post(Day getBlogForNextDay(Day)): init'ed(new Day(Month#2).blog)
    //#post(Day getBlogForNextDay(Day)): init'ed(new Day(Month#2).blogEntries)
    //#post(Day getBlogForNextDay(Day)): init'ed(new Day(Month#2).date)
    //#post(Day getBlogForNextDay(Day)): init'ed(new Day(Month#2).day)
    //#post(Day getBlogForNextDay(Day)): init'ed(new Day(Month#2).month)
    //#post(Day getBlogForNextDay(Day)): init'ed(new Day(Month#2).publishedBlogEntries)
    //#post(Day getBlogForNextDay(Day)): init'ed(new Day(Month#2).unpublishedBlogEntries)
    //#unanalyzed(Day getBlogForNextDay(Day)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(Day getBlogForNextDay(Day)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(Day getBlogForNextDay(Day)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(Day getBlogForNextDay(Day)): Effects-of-calling:java.lang.IllegalArgumentException
    //#unanalyzed(Day getBlogForNextDay(Day)): Effects-of-calling:getMonth
    //#unanalyzed(Day getBlogForNextDay(Day)): Effects-of-calling:getBlog
    //#unanalyzed(Day getBlogForNextDay(Day)): Effects-of-calling:getBlogForNextYear
    //#unanalyzed(Day getBlogForNextDay(Day)): Effects-of-calling:net.sourceforge.pebble.domain.Blog:getCalendar
    //#unanalyzed(Day getBlogForNextDay(Day)): Effects-of-calling:java.util.Calendar:set
    //#unanalyzed(Day getBlogForNextDay(Day)): Effects-of-calling:java.util.Calendar:getTime
    //#unanalyzed(Day getBlogForNextDay(Day)): Effects-of-calling:java.util.Calendar:setTime
    //#unanalyzed(Day getBlogForNextDay(Day)): Effects-of-calling:java.util.Calendar:getActualMaximum
    //#unanalyzed(Day getBlogForNextDay(Day)): Effects-of-calling:getYear
    //#unanalyzed(Day getBlogForNextDay(Day)): Effects-of-calling:net.sourceforge.pebble.domain.Month:getBlog
    //#unanalyzed(Day getBlogForNextDay(Day)): Effects-of-calling:net.sourceforge.pebble.domain.TimePeriod
    //#unanalyzed(Day getBlogForNextDay(Day)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(Day getBlogForNextDay(Day)): Effects-of-calling:setDate
    //#unanalyzed(Day getBlogForNextDay(Day)): Effects-of-calling:net.sourceforge.pebble.domain.Month
    //#unanalyzed(Day getBlogForNextDay(Day)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(Day getBlogForNextDay(Day)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(Day getBlogForNextDay(Day)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(Day getBlogForNextDay(Day)): Effects-of-calling:java.util.List:add
    //#unanalyzed(Day getBlogForNextDay(Day)): Effects-of-calling:java.util.Collections:sort
    //#test_vector(Day getBlogForNextDay(Day)): day.day - this.lastDayInMonth: {0..6_442_450_943}, {-4_294_967_295..-1}
      return this.getBlogForDay(day.getDay() + 1);
    //#month.java:294: ?precondition failure
    //#    net/sourceforge/pebble/domain/Month.getBlogForDay: day >= 1
    //#    severity: LOW
    //#    class: net.sourceforge.pebble.domain.Month
    //#    method: Day getBlogForNextDay(Day)
    //#    basic block: bb_2
    //#    assertion: day.day in 0..4_294_967_294
    //#    callee: Day net/sourceforge/pebble/domain/Month.getBlogForDay(int)
    //#    callee assertion: day >= 1
    //#    callee file: month.java
    //#    callee precondition index: [2]
    //#    callee srcpos: 196
    //#    VN: day.day + 1
    //#    Expected: {1..4_294_967_295}
    //#    Bad: {-2_147_483_647..0}
    //#    Attribs:  Int  Bad overlaps +/-1000  Bad < Exp
    } else {
      return year.getBlogForNextMonth(this).getBlogForFirstDay();
    //#month.java:296: ?null dereference
    //#    getBlogForNextMonth(...) != null
    //#    severity: MEDIUM
    //#    class: net.sourceforge.pebble.domain.Month
    //#    method: Day getBlogForNextDay(Day)
    //#    basic block: bb_3
    //#    assertion: getBlogForNextMonth(...) != null
    //#    VN: getBlogForNextMonth(...)
    //#    Expected: Inverse{null}
    //#    Bad: Addr_Set{null}
    //#    Attribs:  Ptr  null in Bad
    //#month.java:296: ?precondition failure
    //#    net/sourceforge/pebble/domain/Month.getBlogForFirstDay: this.dailyBlogs.length >= 1
    //#    severity: LOW
    //#    class: net.sourceforge.pebble.domain.Month
    //#    method: Day getBlogForNextDay(Day)
    //#    basic block: bb_3
    //#    assertion: getBlogForNextMonth(...).dailyBlogs.length >= 1
    //#    callee: Day net/sourceforge/pebble/domain/Month.getBlogForFirstDay()
    //#    callee assertion: this.dailyBlogs.length >= 1
    //#    callee file: month.java
    //#    callee precondition index: [4]
    //#    callee srcpos: 209
    //#    VN: getBlogForNextMonth(...).dailyBlogs.length
    //#    Expected: {1..+Inf}
    //#    Bad: {0}
    //#    Attribs:  Int  Bad singleton  Bad overlaps +/-1000  Bad < Exp
    //#month.java:296: ?precondition failure
    //#    net/sourceforge/pebble/domain/Month.getBlogForFirstDay: this.lastDayInMonth >= 1
    //#    severity: LOW
    //#    class: net.sourceforge.pebble.domain.Month
    //#    method: Day getBlogForNextDay(Day)
    //#    basic block: bb_3
    //#    assertion: getBlogForNextMonth(...).lastDayInMonth >= 1
    //#    callee: Day net/sourceforge/pebble/domain/Month.getBlogForFirstDay()
    //#    callee assertion: this.lastDayInMonth >= 1
    //#    callee file: month.java
    //#    callee precondition index: [6]
    //#    callee srcpos: 209
    //#    VN: getBlogForNextMonth(...).lastDayInMonth
    //#    Expected: {1..4_294_967_295}
    //#    Bad: {-2_147_483_648..0}
    //#    Attribs:  Int  Bad overlaps +/-1000  Bad < Exp
    //#month.java:296: end of method: Day net.sourceforge.pebble.domain.Month.getBlogForNextDay(Day)
    }
  }

  /**
   * Gets a string representation of this object.
   *
   * @return  a String
   */
  public String toString() {
    SimpleDateFormat sdf = new SimpleDateFormat("MMMM");
    //#month.java:306: method: String net.sourceforge.pebble.domain.Month.toString()
    //#input(String toString()): __Descendant_Table[net/sourceforge/pebble/domain/Month]
    //#input(String toString()): __Descendant_Table[others]
    //#input(String toString()): __Dispatch_Table.getDate()Ljava/util/Date;
    //#input(String toString()): this
    //#input(String toString()): this.__Tag
    //#input(String toString()): this.date
    //#output(String toString()): return_value
    //#pre[2] (String toString()): this.__Tag == net/sourceforge/pebble/domain/Month
    //#pre[3] (String toString()): init'ed(this.date)
    //#post(String toString()): init'ed(return_value)
    return sdf.format(getDate());
    //#month.java:307: end of method: String net.sourceforge.pebble.domain.Month.toString()
  }

}    //#output(net.sourceforge.pebble.domain.Month__static_init): __Descendant_Table[net/sourceforge/pebble/domain/Month]
    //#output(net.sourceforge.pebble.domain.Month__static_init): __Dispatch_Table.after(Lnet/sourceforge/pebble/domain/Month;)Z
    //#output(net.sourceforge.pebble.domain.Month__static_init): __Dispatch_Table.before(Lnet/sourceforge/pebble/domain/Month;)Z
    //#output(net.sourceforge.pebble.domain.Month__static_init): __Dispatch_Table.getAllDays()[Lnet/sourceforge/pebble/domain/Day;
    //#output(net.sourceforge.pebble.domain.Month__static_init): __Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#output(net.sourceforge.pebble.domain.Month__static_init): __Dispatch_Table.getBlogEntries()Ljava/util/List;
    //#output(net.sourceforge.pebble.domain.Month__static_init): __Dispatch_Table.getBlogForDay(I)Lnet/sourceforge/pebble/domain/Day;
    //#output(net.sourceforge.pebble.domain.Month__static_init): __Dispatch_Table.getBlogForFirstDay()Lnet/sourceforge/pebble/domain/Day;
    //#output(net.sourceforge.pebble.domain.Month__static_init): __Dispatch_Table.getBlogForLastDay()Lnet/sourceforge/pebble/domain/Day;
    //#output(net.sourceforge.pebble.domain.Month__static_init): __Dispatch_Table.getBlogForNextDay(Lnet/sourceforge/pebble/domain/Day;)Lnet/sourceforge/pebble/domain/Day;
    //#output(net.sourceforge.pebble.domain.Month__static_init): __Dispatch_Table.getBlogForPreviousDay(Lnet/sourceforge/pebble/domain/Day;)Lnet/sourceforge/pebble/domain/Day;
    //#output(net.sourceforge.pebble.domain.Month__static_init): __Dispatch_Table.getCalendar()Ljava/util/Calendar;
    //#output(net.sourceforge.pebble.domain.Month__static_init): __Dispatch_Table.getDate()Ljava/util/Date;
    //#output(net.sourceforge.pebble.domain.Month__static_init): __Dispatch_Table.getLastDayInMonth()I
    //#output(net.sourceforge.pebble.domain.Month__static_init): __Dispatch_Table.getMonth()I
    //#output(net.sourceforge.pebble.domain.Month__static_init): __Dispatch_Table.getNextMonth()Lnet/sourceforge/pebble/domain/Month;
    //#output(net.sourceforge.pebble.domain.Month__static_init): __Dispatch_Table.getNumberOfBlogEntries()I
    //#output(net.sourceforge.pebble.domain.Month__static_init): __Dispatch_Table.getPermalink()Ljava/lang/String;
    //#output(net.sourceforge.pebble.domain.Month__static_init): __Dispatch_Table.getPreviousMonth()Lnet/sourceforge/pebble/domain/Month;
    //#output(net.sourceforge.pebble.domain.Month__static_init): __Dispatch_Table.getYear()Lnet/sourceforge/pebble/domain/Year;
    //#output(net.sourceforge.pebble.domain.Month__static_init): __Dispatch_Table.hasBlogEntries()Z
    //#output(net.sourceforge.pebble.domain.Month__static_init): __Dispatch_Table.setDate(Ljava/util/Date;)V
    //#output(net.sourceforge.pebble.domain.Month__static_init): __Dispatch_Table.toString()Ljava/lang/String;
    //#output(net.sourceforge.pebble.domain.Month__static_init): net/sourceforge/pebble/domain/Permalinkable.__Descendant_Table[net/sourceforge/pebble/domain/Month]
    //#output(net.sourceforge.pebble.domain.Month__static_init): net/sourceforge/pebble/domain/TimePeriod.__Descendant_Table[net/sourceforge/pebble/domain/Month]
    //#post(net.sourceforge.pebble.domain.Month__static_init): __Descendant_Table[net/sourceforge/pebble/domain/Month] == &__Dispatch_Table
    //#post(net.sourceforge.pebble.domain.Month__static_init): net/sourceforge/pebble/domain/Permalinkable.__Descendant_Table[net/sourceforge/pebble/domain/Month] == &__Dispatch_Table
    //#post(net.sourceforge.pebble.domain.Month__static_init): net/sourceforge/pebble/domain/TimePeriod.__Descendant_Table[net/sourceforge/pebble/domain/Month] == &__Dispatch_Table
    //#post(net.sourceforge.pebble.domain.Month__static_init): __Dispatch_Table.after(Lnet/sourceforge/pebble/domain/Month;)Z == &after
    //#post(net.sourceforge.pebble.domain.Month__static_init): __Dispatch_Table.before(Lnet/sourceforge/pebble/domain/Month;)Z == &before
    //#post(net.sourceforge.pebble.domain.Month__static_init): __Dispatch_Table.getAllDays()[Lnet/sourceforge/pebble/domain/Day; == &getAllDays
    //#post(net.sourceforge.pebble.domain.Month__static_init): __Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog; == &net/sourceforge/pebble/domain/TimePeriod.getBlog
    //#post(net.sourceforge.pebble.domain.Month__static_init): __Dispatch_Table.getBlogEntries()Ljava/util/List; == &getBlogEntries
    //#post(net.sourceforge.pebble.domain.Month__static_init): __Dispatch_Table.getBlogForDay(I)Lnet/sourceforge/pebble/domain/Day; == &getBlogForDay
    //#post(net.sourceforge.pebble.domain.Month__static_init): __Dispatch_Table.getBlogForFirstDay()Lnet/sourceforge/pebble/domain/Day; == &getBlogForFirstDay
    //#post(net.sourceforge.pebble.domain.Month__static_init): __Dispatch_Table.getBlogForLastDay()Lnet/sourceforge/pebble/domain/Day; == &getBlogForLastDay
    //#post(net.sourceforge.pebble.domain.Month__static_init): __Dispatch_Table.getBlogForNextDay(Lnet/sourceforge/pebble/domain/Day;)Lnet/sourceforge/pebble/domain/Day; == &getBlogForNextDay
    //#post(net.sourceforge.pebble.domain.Month__static_init): __Dispatch_Table.getBlogForPreviousDay(Lnet/sourceforge/pebble/domain/Day;)Lnet/sourceforge/pebble/domain/Day; == &getBlogForPreviousDay
    //#post(net.sourceforge.pebble.domain.Month__static_init): __Dispatch_Table.getCalendar()Ljava/util/Calendar; == &getCalendar
    //#post(net.sourceforge.pebble.domain.Month__static_init): __Dispatch_Table.getDate()Ljava/util/Date; == &net/sourceforge/pebble/domain/TimePeriod.getDate
    //#post(net.sourceforge.pebble.domain.Month__static_init): __Dispatch_Table.getLastDayInMonth()I == &getLastDayInMonth
    //#post(net.sourceforge.pebble.domain.Month__static_init): __Dispatch_Table.getMonth()I == &getMonth
    //#post(net.sourceforge.pebble.domain.Month__static_init): __Dispatch_Table.getNextMonth()Lnet/sourceforge/pebble/domain/Month; == &getNextMonth
    //#post(net.sourceforge.pebble.domain.Month__static_init): __Dispatch_Table.getNumberOfBlogEntries()I == &getNumberOfBlogEntries
    //#post(net.sourceforge.pebble.domain.Month__static_init): __Dispatch_Table.getPermalink()Ljava/lang/String; == &getPermalink
    //#post(net.sourceforge.pebble.domain.Month__static_init): __Dispatch_Table.getPreviousMonth()Lnet/sourceforge/pebble/domain/Month; == &getPreviousMonth
    //#post(net.sourceforge.pebble.domain.Month__static_init): __Dispatch_Table.getYear()Lnet/sourceforge/pebble/domain/Year; == &getYear
    //#post(net.sourceforge.pebble.domain.Month__static_init): __Dispatch_Table.hasBlogEntries()Z == &hasBlogEntries
    //#post(net.sourceforge.pebble.domain.Month__static_init): __Dispatch_Table.setDate(Ljava/util/Date;)V == &net/sourceforge/pebble/domain/TimePeriod.setDate
    //#post(net.sourceforge.pebble.domain.Month__static_init): __Dispatch_Table.toString()Ljava/lang/String; == &toString
    //#month.java:: end of method: net.sourceforge.pebble.domain.Month.net.sourceforge.pebble.domain.Month__static_init
    //#month.java:: end of class: net.sourceforge.pebble.domain.Month
