//# 1 errors, 339 messages
//#
/*
    //#multiblog.java:1:1: class: net.sourceforge.pebble.domain.MultiBlog
    //#multiblog.java:1:1: method: net.sourceforge.pebble.domain.MultiBlog.net.sourceforge.pebble.domain.MultiBlog__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 net.sourceforge.pebble.comparator.BlogEntryComparator;
import net.sourceforge.pebble.PebbleContext;

import javax.servlet.http.HttpServletRequest;
import java.util.*;

/**
 * A composite blog is one that is made up of one or more simple blogs. This
 * is effectively a container when Pebble is running in multi-user mode - there
 * being a single MultiBlog and many Blog instances.
 * <br /><br />
 * In addition to managing one or more simple blogs, a composite blog provides
 * some aggegration functionality over the blogs it manages in order to
 * generate an aggregated XML (RSS/RDF/Atom) feed.
 *
 * @author    Simon Brown
 */
public class MultiBlog extends AbstractBlog {

  /**
   * Creates a new Blog instance, based at the specified location.
   *
   * @param root    an absolute path pointing to the root directory of the blog
   */
  public MultiBlog(String root) {
    super(root);
    //#multiblog.java:59: method: void net.sourceforge.pebble.domain.MultiBlog.net.sourceforge.pebble.domain.MultiBlog(String)
    //#input(void net.sourceforge.pebble.domain.MultiBlog(String)): __Descendant_Table[net/sourceforge/pebble/domain/MultiBlog]
    //#input(void net.sourceforge.pebble.domain.MultiBlog(String)): __Descendant_Table[others]
    //#input(void net.sourceforge.pebble.domain.MultiBlog(String)): __Dispatch_Table.getDefaultProperties()Ljava/util/Properties;
    //#input(void net.sourceforge.pebble.domain.MultiBlog(String)): __Dispatch_Table.getRoot()Ljava/lang/String;
    //#input(void net.sourceforge.pebble.domain.MultiBlog(String)): __Dispatch_Table.init()V
    //#input(void net.sourceforge.pebble.domain.MultiBlog(String)): __Dispatch_Table.loadProperties()V
    //#input(void net.sourceforge.pebble.domain.MultiBlog(String)): net/sourceforge/pebble/domain/AbstractBlog.__Descendant_Table[net/sourceforge/pebble/domain/AbstractBlog]
    //#input(void net.sourceforge.pebble.domain.MultiBlog(String)): net/sourceforge/pebble/domain/AbstractBlog.__Descendant_Table[net/sourceforge/pebble/domain/Blog]
    //#input(void net.sourceforge.pebble.domain.MultiBlog(String)): net/sourceforge/pebble/domain/AbstractBlog.__Descendant_Table[net/sourceforge/pebble/domain/MultiBlog]
    //#input(void net.sourceforge.pebble.domain.MultiBlog(String)): net/sourceforge/pebble/domain/AbstractBlog.__Descendant_Table[others]
    //#input(void net.sourceforge.pebble.domain.MultiBlog(String)): net/sourceforge/pebble/domain/AbstractBlog.__Dispatch_Table.getDefaultProperties()Ljava/util/Properties;
    //#input(void net.sourceforge.pebble.domain.MultiBlog(String)): net/sourceforge/pebble/domain/AbstractBlog.__Dispatch_Table.getRoot()Ljava/lang/String;
    //#input(void net.sourceforge.pebble.domain.MultiBlog(String)): net/sourceforge/pebble/domain/AbstractBlog.__Dispatch_Table.loadProperties()V
    //#input(void net.sourceforge.pebble.domain.MultiBlog(String)): net/sourceforge/pebble/domain/AbstractBlog.log
    //#input(void net.sourceforge.pebble.domain.MultiBlog(String)): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.getDefaultProperties()Ljava/util/Properties;
    //#input(void net.sourceforge.pebble.domain.MultiBlog(String)): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.getRoot()Ljava/lang/String;
    //#input(void net.sourceforge.pebble.domain.MultiBlog(String)): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.loadProperties()V
    //#input(void net.sourceforge.pebble.domain.MultiBlog(String)): root
    //#input(void net.sourceforge.pebble.domain.MultiBlog(String)): this
    //#input(void net.sourceforge.pebble.domain.MultiBlog(String)): this.__Tag
    //#output(void net.sourceforge.pebble.domain.MultiBlog(String)): new LinkedList(AbstractBlog#1) num objects
    //#output(void net.sourceforge.pebble.domain.MultiBlog(String)): new Properties(loadProperties#1) num objects
    //#output(void net.sourceforge.pebble.domain.MultiBlog(String)): this.__Tag
    //#output(void net.sourceforge.pebble.domain.MultiBlog(String)): this.blog
    //#output(void net.sourceforge.pebble.domain.MultiBlog(String)): this.messages
    //#output(void net.sourceforge.pebble.domain.MultiBlog(String)): this.properties
    //#output(void net.sourceforge.pebble.domain.MultiBlog(String)): this.root
    //#new obj(void net.sourceforge.pebble.domain.MultiBlog(String)): new LinkedList(AbstractBlog#1)
    //#new obj(void net.sourceforge.pebble.domain.MultiBlog(String)): new Properties(loadProperties#1)
    //#pre[2] (void net.sourceforge.pebble.domain.MultiBlog(String)): this.__Tag == net/sourceforge/pebble/domain/MultiBlog
    //#pre[1] (void net.sourceforge.pebble.domain.MultiBlog(String)): (soft) net/sourceforge/pebble/domain/AbstractBlog.log != null
    //#post(void net.sourceforge.pebble.domain.MultiBlog(String)): this.__Tag == net/sourceforge/pebble/domain/MultiBlog
    //#post(void net.sourceforge.pebble.domain.MultiBlog(String)): init'ed(this.blog)
    //#post(void net.sourceforge.pebble.domain.MultiBlog(String)): this.messages == &new LinkedList(AbstractBlog#1)
    //#post(void net.sourceforge.pebble.domain.MultiBlog(String)): this.properties == &new Properties(loadProperties#1)
    //#post(void net.sourceforge.pebble.domain.MultiBlog(String)): this.root == root
    //#post(void net.sourceforge.pebble.domain.MultiBlog(String)): init'ed(this.root)
    //#post(void net.sourceforge.pebble.domain.MultiBlog(String)): new LinkedList(AbstractBlog#1) num objects == 1
    //#post(void net.sourceforge.pebble.domain.MultiBlog(String)): new Properties(loadProperties#1) num objects == 1
    //#unanalyzed(void net.sourceforge.pebble.domain.MultiBlog(String)): Effects-of-calling:java.util.Properties
    //#unanalyzed(void net.sourceforge.pebble.domain.MultiBlog(String)): Effects-of-calling:java.util.Properties:setProperty
    //#unanalyzed(void net.sourceforge.pebble.domain.MultiBlog(String)): Effects-of-calling:java.util.LinkedList
    //#unanalyzed(void net.sourceforge.pebble.domain.MultiBlog(String)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void net.sourceforge.pebble.domain.MultiBlog(String)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void net.sourceforge.pebble.domain.MultiBlog(String)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void net.sourceforge.pebble.domain.MultiBlog(String)): Effects-of-calling:java.io.File
    //#unanalyzed(void net.sourceforge.pebble.domain.MultiBlog(String)): Effects-of-calling:java.io.File:exists
    //#unanalyzed(void net.sourceforge.pebble.domain.MultiBlog(String)): Effects-of-calling:getDefaultProperties
    //#unanalyzed(void net.sourceforge.pebble.domain.MultiBlog(String)): Effects-of-calling:java.io.FileInputStream
    //#unanalyzed(void net.sourceforge.pebble.domain.MultiBlog(String)): Effects-of-calling:java.util.Properties:load
    //#unanalyzed(void net.sourceforge.pebble.domain.MultiBlog(String)): Effects-of-calling:java.io.FileInputStream:close
    //#unanalyzed(void net.sourceforge.pebble.domain.MultiBlog(String)): Effects-of-calling:org.apache.commons.logging.Log:error

    // probably MultiBlog should be made a final class if init is called from here - 
    // see javadoc comment on AbstractBlog.init() for reasons
    init();
  }
    //#multiblog.java:64: end of method: void net.sourceforge.pebble.domain.MultiBlog.net.sourceforge.pebble.domain.MultiBlog(String)

  /**
   * Gets the default properties for a MultiBlog.
   *
   * @return    a Properties instance
   */
  protected Properties getDefaultProperties() {
    Properties defaultProperties = new Properties();
    //#multiblog.java:72: method: Properties net.sourceforge.pebble.domain.MultiBlog.getDefaultProperties()
    //#output(Properties getDefaultProperties()): new Properties(getDefaultProperties#1) num objects
    //#output(Properties getDefaultProperties()): return_value
    //#new obj(Properties getDefaultProperties()): new Properties(getDefaultProperties#1)
    //#post(Properties getDefaultProperties()): return_value == &new Properties(getDefaultProperties#1)
    //#post(Properties getDefaultProperties()): new Properties(getDefaultProperties#1) num objects == 1
    defaultProperties.setProperty(NAME_KEY, "My blogs");
    defaultProperties.setProperty(DESCRIPTION_KEY, "");
    defaultProperties.setProperty(IMAGE_KEY, "");
    defaultProperties.setProperty(AUTHOR_KEY, "Various");
    defaultProperties.setProperty(TIMEZONE_KEY, "Europe/London");
    defaultProperties.setProperty(RECENT_BLOG_ENTRIES_ON_HOME_PAGE_KEY, "3");
    defaultProperties.setProperty(LANGUAGE_KEY, "en");
    defaultProperties.setProperty(COUNTRY_KEY, "GB");
    defaultProperties.setProperty(CHARACTER_ENCODING_KEY, "UTF-8");
    defaultProperties.setProperty(THEME_KEY, "default");

    return defaultProperties;
    //#multiblog.java:84: end of method: Properties net.sourceforge.pebble.domain.MultiBlog.getDefaultProperties()
  }

  /**
   * Gets the ID of this blog.
   *
   * @return the ID as a String
   */
  public String getId() {
    return "";
    //#multiblog.java:93: method: String net.sourceforge.pebble.domain.MultiBlog.getId()
    //#output(String getId()): return_value
    //#post(String getId()): return_value == &""
    //#multiblog.java:93: end of method: String net.sourceforge.pebble.domain.MultiBlog.getId()
  }

  /**
   * Gets the URL where this blog is deployed.
   *
   * @return a URL as a String
   */
  public String getUrl() {
    return PebbleContext.getInstance().getConfiguration().getUrl();
    //#multiblog.java:102: method: String net.sourceforge.pebble.domain.MultiBlog.getUrl()
    //#multiblog.java:102: Warning: method not available
    //#    -- call on PebbleContext net.sourceforge.pebble.PebbleContext:getInstance()
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.domain.MultiBlog
    //#    method: String getUrl()
    //#    unanalyzed callee: PebbleContext net.sourceforge.pebble.PebbleContext:getInstance()
    //#multiblog.java:102: Warning: method not available
    //#    -- call on Configuration net.sourceforge.pebble.PebbleContext:getConfiguration()
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.domain.MultiBlog
    //#    method: String getUrl()
    //#    unanalyzed callee: Configuration net.sourceforge.pebble.PebbleContext:getConfiguration()
    //#input(String getUrl()): net/sourceforge/pebble/Configuration.__Descendant_Table[net/sourceforge/pebble/Configuration]
    //#input(String getUrl()): net/sourceforge/pebble/Configuration.__Descendant_Table[others]
    //#input(String getUrl()): net/sourceforge/pebble/Configuration.__Dispatch_Table.getUrl()Ljava/lang/String;
    //#output(String getUrl()): return_value
    //#presumption(String getUrl()): net.sourceforge.pebble.PebbleContext:getConfiguration(...).__Tag@102 == net/sourceforge/pebble/Configuration
    //#presumption(String getUrl()): net.sourceforge.pebble.PebbleContext:getConfiguration(...)@102 != null
    //#presumption(String getUrl()): net.sourceforge.pebble.PebbleContext:getInstance(...)@102 != null
    //#post(String getUrl()): init'ed(return_value)
    //#multiblog.java:102: end of method: String net.sourceforge.pebble.domain.MultiBlog.getUrl()
  }

  /**
   * Gets the relative URL where this blog is deployed.
   *
   * @return a URL as a String
   */
  public String getRelativeUrl() {
    return "/";
    //#multiblog.java:111: method: String net.sourceforge.pebble.domain.MultiBlog.getRelativeUrl()
    //#output(String getRelativeUrl()): return_value
    //#post(String getRelativeUrl()): return_value == &"."
    //#multiblog.java:111: end of method: String net.sourceforge.pebble.domain.MultiBlog.getRelativeUrl()
  }

  /**
   * Gets the date that this blog was last updated.
   *
   * @return  a Date instance representing the time of the most recent entry
   */
  public Date getLastModified() {
    Date date = new Date(0);
    //#multiblog.java:120: method: Date net.sourceforge.pebble.domain.MultiBlog.getLastModified()
    //#input(Date getLastModified()): net/sourceforge/pebble/domain/Blog.__Descendant_Table[net/sourceforge/pebble/domain/Blog]
    //#input(Date getLastModified()): net/sourceforge/pebble/domain/Blog.__Descendant_Table[others]
    //#input(Date getLastModified()): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.getLastModified()Ljava/util/Date;
    //#input(Date getLastModified()): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.getRecentPublishedBlogEntries(I)Ljava/util/List;
    //#input(Date getLastModified()): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.isPublic()Z
    //#input(Date getLastModified()): net/sourceforge/pebble/domain/Blog.log
    //#input(Date getLastModified()): net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[net/sourceforge/pebble/domain/BlogEntry]
    //#input(Date getLastModified()): net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[others]
    //#input(Date getLastModified()): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getDate()Ljava/util/Date;
    //#input(Date getLastModified()): net/sourceforge/pebble/domain/BlogManager.__Descendant_Table[net/sourceforge/pebble/domain/BlogManager]
    //#input(Date getLastModified()): net/sourceforge/pebble/domain/BlogManager.__Descendant_Table[others]
    //#input(Date getLastModified()): net/sourceforge/pebble/domain/BlogManager.__Dispatch_Table.getPublicBlogs()Ljava/util/List;
    //#input(Date getLastModified()): net/sourceforge/pebble/domain/BlogManager.instance
    //#input(Date getLastModified()): net/sourceforge/pebble/domain/BlogManager.instance.__Tag
    //#input(Date getLastModified()): net/sourceforge/pebble/domain/BlogManager.instance.blogs
    //#input(Date getLastModified()): net/sourceforge/pebble/domain/BlogService.__Descendant_Table[net/sourceforge/pebble/domain/BlogService]
    //#input(Date getLastModified()): net/sourceforge/pebble/domain/BlogService.__Dispatch_Table.getBlogEntry(Lnet/sourceforge/pebble/domain/Blog;Ljava/lang/String;)Lnet/sourceforge/pebble/domain/BlogEntry;
    //#input(Date getLastModified()): net/sourceforge/pebble/index/BlogEntryIndex.__Descendant_Table[net/sourceforge/pebble/index/BlogEntryIndex]
    //#input(Date getLastModified()): net/sourceforge/pebble/index/BlogEntryIndex.__Descendant_Table[others]
    //#input(Date getLastModified()): net/sourceforge/pebble/index/BlogEntryIndex.__Dispatch_Table.getPublishedBlogEntries()Ljava/util/List;
    //#output(Date getLastModified()): new Date(getLastModified#1) num objects
    //#output(Date getLastModified()): new Date(getLastModified#1*) num objects
    //#output(Date getLastModified()): return_value
    //#new obj(Date getLastModified()): new Date(getLastModified#1)
    //#new obj(Date getLastModified()): new Date(getLastModified#1*)
    //#pre[2] (Date getLastModified()): net/sourceforge/pebble/domain/BlogManager.instance != null
    //#pre[3] (Date getLastModified()): net/sourceforge/pebble/domain/BlogManager.instance.__Tag == net/sourceforge/pebble/domain/BlogManager
    //#pre[4] (Date getLastModified()): net/sourceforge/pebble/domain/BlogManager.instance.blogs != null
    //#presumption(Date getLastModified()): blog.blogEntryIndex.__Tag@125 == net/sourceforge/pebble/index/BlogEntryIndex
    //#presumption(Date getLastModified()): blog.blogEntryIndex.__Tag@126 == net/sourceforge/pebble/index/BlogEntryIndex
    //#presumption(Date getLastModified()): blog.blogEntryIndex@125 != null
    //#presumption(Date getLastModified()): blog.blogEntryIndex@126 != null
    //#presumption(Date getLastModified()): java.util.Iterator:next(...).__Tag@125 == net/sourceforge/pebble/domain/Blog
    //#presumption(Date getLastModified()): java.util.Iterator:next(...)@125 != null
    //#post(Date getLastModified()): init'ed(return_value)
    //#post(Date getLastModified()): new Date(getLastModified#1) num objects == 1
    //#post(Date getLastModified()): init'ed(new Date(getLastModified#1*) num objects)
    //#unanalyzed(Date getLastModified()): Effects-of-calling:java.util.Map:values
    //#unanalyzed(Date getLastModified()): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(Date getLastModified()): Effects-of-calling:java.util.Collection:iterator
    //#unanalyzed(Date getLastModified()): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(Date getLastModified()): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(Date getLastModified()): Effects-of-calling:isPublic
    //#unanalyzed(Date getLastModified()): Effects-of-calling:java.util.List:add
    //#unanalyzed(Date getLastModified()): Effects-of-calling:java.util.Properties:getProperty
    //#unanalyzed(Date getLastModified()): Effects-of-calling:java.lang.String:equalsIgnoreCase
    //#unanalyzed(Date getLastModified()): Effects-of-calling:java.util.List:size
    //#unanalyzed(Date getLastModified()): Effects-of-calling:java.util.List:get
    //#unanalyzed(Date getLastModified()): Effects-of-calling:java.util.Date
    //#unanalyzed(Date getLastModified()): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(Date getLastModified()): Effects-of-calling:getConfiguredFactory
    //#unanalyzed(Date getLastModified()): Effects-of-calling:getBlogEntryDAO
    //#unanalyzed(Date getLastModified()): Effects-of-calling:getBlog
    //#unanalyzed(Date getLastModified()): Effects-of-calling:getId
    //#unanalyzed(Date getLastModified()): Effects-of-calling:getCompositeKeyForBlogEntry
    //#unanalyzed(Date getLastModified()): Effects-of-calling:java.lang.String:valueOf
    //#unanalyzed(Date getLastModified()): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(Date getLastModified()): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(Date getLastModified()): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(Date getLastModified()): Effects-of-calling:setPersistent
    //#unanalyzed(Date getLastModified()): Effects-of-calling:setEventsEnabled
    //#unanalyzed(Date getLastModified()): Effects-of-calling:net.sourceforge.pebble.domain.BlogServiceException
    //#unanalyzed(Date getLastModified()): Effects-of-calling:net.sf.ehcache.Cache:get
    //#unanalyzed(Date getLastModified()): Effects-of-calling:net.sf.ehcache.Element:getValue
    //#unanalyzed(Date getLastModified()): Effects-of-calling:org.apache.commons.logging.Log:debug
    //#unanalyzed(Date getLastModified()): Effects-of-calling:loadBlogEntry
    //#unanalyzed(Date getLastModified()): Effects-of-calling:net.sf.ehcache.Element
    //#unanalyzed(Date getLastModified()): Effects-of-calling:net.sf.ehcache.Cache:put
    //#unanalyzed(Date getLastModified()): Effects-of-calling:clone
    //#unanalyzed(Date getLastModified()): Effects-of-calling:getBlogEntry
    //#unanalyzed(Date getLastModified()): Effects-of-calling:org.apache.commons.logging.Log:error
    //#test_vector(Date getLastModified()): java.util.Date:after(...)@126: {0}, {1}
    //#test_vector(Date getLastModified()): java.util.Iterator:hasNext(...)@124: {1}, {0}

    Iterator it = BlogManager.getInstance().getPublicBlogs().iterator();
    Blog blog;
    while (it.hasNext()) {
      blog = (Blog)it.next();
      if (blog.getLastModified().after(date)) {
    //#multiblog.java:126: ?null dereference
    //#    getLastModified(...) != null
    //#    severity: MEDIUM
    //#    class: net.sourceforge.pebble.domain.MultiBlog
    //#    method: Date getLastModified()
    //#    basic block: bb_6
    //#    assertion: getLastModified(...) != null
    //#    VN: getLastModified(...)
    //#    Expected: Inverse{null} or Invalid
    //#    Bad: Addr_Set{null}
    //#    Attribs:  Ptr  null in Bad
        date = blog.getLastModified();
      }
    }

    return date;
    //#multiblog.java:131: end of method: Date net.sourceforge.pebble.domain.MultiBlog.getLastModified()
  }

  /**
   * Gets the most recent blog entries, the number
   * of which is specified.
   *
   * @param numberOfEntries the number of entries to get
   * @return a List containing the most recent blog entries
   */
  public List getRecentBlogEntries(int numberOfEntries) {
    List blogEntries = new ArrayList();
    //#multiblog.java:142: method: List net.sourceforge.pebble.domain.MultiBlog.getRecentBlogEntries(int)
    //#input(List getRecentBlogEntries(int)): net/sourceforge/pebble/domain/Blog.__Descendant_Table[net/sourceforge/pebble/domain/Blog]
    //#input(List getRecentBlogEntries(int)): net/sourceforge/pebble/domain/Blog.__Descendant_Table[others]
    //#input(List getRecentBlogEntries(int)): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.getRecentBlogEntriesOnHomePage()I
    //#input(List getRecentBlogEntries(int)): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.getRecentPublishedBlogEntries()Ljava/util/List;
    //#input(List getRecentBlogEntries(int)): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.getRecentPublishedBlogEntries(I)Ljava/util/List;
    //#input(List getRecentBlogEntries(int)): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.isPublic()Z
    //#input(List getRecentBlogEntries(int)): net/sourceforge/pebble/domain/Blog.log
    //#input(List getRecentBlogEntries(int)): net/sourceforge/pebble/domain/BlogManager.__Descendant_Table[net/sourceforge/pebble/domain/BlogManager]
    //#input(List getRecentBlogEntries(int)): net/sourceforge/pebble/domain/BlogManager.__Descendant_Table[others]
    //#input(List getRecentBlogEntries(int)): net/sourceforge/pebble/domain/BlogManager.__Dispatch_Table.getPublicBlogs()Ljava/util/List;
    //#input(List getRecentBlogEntries(int)): net/sourceforge/pebble/domain/BlogManager.instance
    //#input(List getRecentBlogEntries(int)): net/sourceforge/pebble/domain/BlogManager.instance.__Tag
    //#input(List getRecentBlogEntries(int)): net/sourceforge/pebble/domain/BlogManager.instance.blogs
    //#input(List getRecentBlogEntries(int)): net/sourceforge/pebble/domain/BlogService.__Descendant_Table[net/sourceforge/pebble/domain/BlogService]
    //#input(List getRecentBlogEntries(int)): net/sourceforge/pebble/domain/BlogService.__Dispatch_Table.getBlogEntry(Lnet/sourceforge/pebble/domain/Blog;Ljava/lang/String;)Lnet/sourceforge/pebble/domain/BlogEntry;
    //#input(List getRecentBlogEntries(int)): net/sourceforge/pebble/index/BlogEntryIndex.__Descendant_Table[net/sourceforge/pebble/index/BlogEntryIndex]
    //#input(List getRecentBlogEntries(int)): net/sourceforge/pebble/index/BlogEntryIndex.__Descendant_Table[others]
    //#input(List getRecentBlogEntries(int)): net/sourceforge/pebble/index/BlogEntryIndex.__Dispatch_Table.getPublishedBlogEntries()Ljava/util/List;
    //#input(List getRecentBlogEntries(int)): numberOfEntries
    //#output(List getRecentBlogEntries(int)): new ArrayList(getRecentBlogEntries#4) num objects
    //#output(List getRecentBlogEntries(int)): return_value
    //#new obj(List getRecentBlogEntries(int)): new ArrayList(getRecentBlogEntries#4)
    //#pre[2] (List getRecentBlogEntries(int)): net/sourceforge/pebble/domain/BlogManager.instance != null
    //#pre[3] (List getRecentBlogEntries(int)): net/sourceforge/pebble/domain/BlogManager.instance.__Tag == net/sourceforge/pebble/domain/BlogManager
    //#pre[4] (List getRecentBlogEntries(int)): net/sourceforge/pebble/domain/BlogManager.instance.blogs != null
    //#presumption(List getRecentBlogEntries(int)): blog.blogEntryIndex.__Tag@144 == net/sourceforge/pebble/index/BlogEntryIndex
    //#presumption(List getRecentBlogEntries(int)): blog.blogEntryIndex@144 != null
    //#presumption(List getRecentBlogEntries(int)): blog.properties@144 != null
    //#presumption(List getRecentBlogEntries(int)): java.util.Iterator:next(...).__Tag@144 == net/sourceforge/pebble/domain/Blog
    //#presumption(List getRecentBlogEntries(int)): java.util.Iterator:next(...)@144 != null
    //#post(List getRecentBlogEntries(int)): init'ed(return_value)
    //#post(List getRecentBlogEntries(int)): new ArrayList(getRecentBlogEntries#4) num objects <= 1
    //#unanalyzed(List getRecentBlogEntries(int)): Effects-of-calling:java.util.Map:values
    //#unanalyzed(List getRecentBlogEntries(int)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(List getRecentBlogEntries(int)): Effects-of-calling:java.util.Collection:iterator
    //#unanalyzed(List getRecentBlogEntries(int)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(List getRecentBlogEntries(int)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(List getRecentBlogEntries(int)): Effects-of-calling:isPublic
    //#unanalyzed(List getRecentBlogEntries(int)): Effects-of-calling:java.util.List:add
    //#unanalyzed(List getRecentBlogEntries(int)): Effects-of-calling:java.util.Properties:getProperty
    //#unanalyzed(List getRecentBlogEntries(int)): Effects-of-calling:java.lang.String:equalsIgnoreCase
    //#unanalyzed(List getRecentBlogEntries(int)): Effects-of-calling:java.util.List:size
    //#unanalyzed(List getRecentBlogEntries(int)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(List getRecentBlogEntries(int)): Effects-of-calling:getConfiguredFactory
    //#unanalyzed(List getRecentBlogEntries(int)): Effects-of-calling:getBlogEntryDAO
    //#unanalyzed(List getRecentBlogEntries(int)): Effects-of-calling:getBlog
    //#unanalyzed(List getRecentBlogEntries(int)): Effects-of-calling:getId
    //#unanalyzed(List getRecentBlogEntries(int)): Effects-of-calling:getCompositeKeyForBlogEntry
    //#unanalyzed(List getRecentBlogEntries(int)): Effects-of-calling:java.lang.String:valueOf
    //#unanalyzed(List getRecentBlogEntries(int)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(List getRecentBlogEntries(int)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(List getRecentBlogEntries(int)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(List getRecentBlogEntries(int)): Effects-of-calling:setPersistent
    //#unanalyzed(List getRecentBlogEntries(int)): Effects-of-calling:setEventsEnabled
    //#unanalyzed(List getRecentBlogEntries(int)): Effects-of-calling:net.sourceforge.pebble.domain.BlogServiceException
    //#unanalyzed(List getRecentBlogEntries(int)): Effects-of-calling:net.sf.ehcache.Cache:get
    //#unanalyzed(List getRecentBlogEntries(int)): Effects-of-calling:net.sf.ehcache.Element:getValue
    //#unanalyzed(List getRecentBlogEntries(int)): Effects-of-calling:org.apache.commons.logging.Log:debug
    //#unanalyzed(List getRecentBlogEntries(int)): Effects-of-calling:loadBlogEntry
    //#unanalyzed(List getRecentBlogEntries(int)): Effects-of-calling:net.sf.ehcache.Element
    //#unanalyzed(List getRecentBlogEntries(int)): Effects-of-calling:net.sf.ehcache.Cache:put
    //#unanalyzed(List getRecentBlogEntries(int)): Effects-of-calling:clone
    //#unanalyzed(List getRecentBlogEntries(int)): Effects-of-calling:getBlogEntry
    //#unanalyzed(List getRecentBlogEntries(int)): Effects-of-calling:org.apache.commons.logging.Log:error
    //#unanalyzed(List getRecentBlogEntries(int)): Effects-of-calling:java.lang.Integer:parseInt
    //#test_vector(List getRecentBlogEntries(int)): java.util.Iterator:hasNext(...)@144: {1}, {0}

    for (Blog blog : BlogManager.getInstance().getPublicBlogs()) {
      blogEntries.addAll(blog.getRecentPublishedBlogEntries());
    }

    Collections.sort(blogEntries, new BlogEntryComparator());

    if (blogEntries.size() >= numberOfEntries) {
      return new ArrayList(blogEntries).subList(0, numberOfEntries);
    } else {
      return new ArrayList(blogEntries);
    //#multiblog.java:153: end of method: List net.sourceforge.pebble.domain.MultiBlog.getRecentBlogEntries(int)
    }
  }

  /**
   * Logs this request for blog.
   *
   * @param request   the HttpServletRequest instance for this request
   */
  public void log(HttpServletRequest request, int status) {
    // no op
  }
    //#multiblog.java:164: method: void net.sourceforge.pebble.domain.MultiBlog.log(HttpServletRequest, int)
    //#multiblog.java:164: end of method: void net.sourceforge.pebble.domain.MultiBlog.log(HttpServletRequest, int)

}
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Descendant_Table[net/sourceforge/pebble/domain/MultiBlog]
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.clearMessages()V
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.error(Ljava/lang/String;)V
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getAuthor()Ljava/lang/String;
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getCalendar()Ljava/util/Calendar;
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getCharacterEncoding()Ljava/lang/String;
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getContext()Ljava/lang/String;
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getCountry()Ljava/lang/String;
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getDate()Ljava/util/Date;
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getDefaultProperties()Ljava/util/Properties;
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getDescription()Ljava/lang/String;
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getDomainName()Ljava/lang/String;
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getId()Ljava/lang/String;
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getImage()Ljava/lang/String;
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getImagesDirectory()Ljava/lang/String;
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getIndexesDirectory()Ljava/lang/String;
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getLanguage()Ljava/lang/String;
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getLastModified()Ljava/util/Date;
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getLocale()Ljava/util/Locale;
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getLogsDirectory()Ljava/lang/String;
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getMessages()Ljava/util/List;
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getName()Ljava/lang/String;
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getNumberOfMessages()I
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getProperties()Ljava/util/Properties;
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getProperty(Ljava/lang/String;)Ljava/lang/String;
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getProtocol()Ljava/lang/String;
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getRecentBlogEntries()Ljava/util/List;
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getRecentBlogEntries(I)Ljava/util/List;
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getRecentBlogEntriesOnHomePage()I
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getRecentResponsesOnHomePage()I
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getRelativeUrl()Ljava/lang/String;
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getRoot()Ljava/lang/String;
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getSearchIndexDirectory()Ljava/lang/String;
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getTheme()Ljava/lang/String;
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getTimeZone()Ljava/util/TimeZone;
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getTimeZoneId()Ljava/lang/String;
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getUrl()Ljava/lang/String;
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.info(Ljava/lang/String;)V
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.init()V
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.isConfigured()Z
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.loadProperties()V
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.log(Ljavax/servlet/http/HttpServletRequest;I)V
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.removeProperty(Ljava/lang/String;)V
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.setDate(Ljava/util/Date;)V
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.setProperty(Ljava/lang/String;Ljava/lang/String;)V
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.setRecentBlogEntries(Ljava/util/List;)V
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.setRoot(Ljava/lang/String;)V
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.storeProperties()V
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.toString()Ljava/lang/String;
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.truncateMessages()V
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.warn(Ljava/lang/String;)V
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): net/sourceforge/pebble/domain/AbstractBlog.__Descendant_Table[net/sourceforge/pebble/domain/MultiBlog]
    //#output(net.sourceforge.pebble.domain.MultiBlog__static_init): net/sourceforge/pebble/domain/TimePeriod.__Descendant_Table[net/sourceforge/pebble/domain/MultiBlog]
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Descendant_Table[net/sourceforge/pebble/domain/MultiBlog] == &__Dispatch_Table
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): net/sourceforge/pebble/domain/AbstractBlog.__Descendant_Table[net/sourceforge/pebble/domain/MultiBlog] == &__Dispatch_Table
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): net/sourceforge/pebble/domain/TimePeriod.__Descendant_Table[net/sourceforge/pebble/domain/MultiBlog] == &__Dispatch_Table
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.clearMessages()V == &net/sourceforge/pebble/domain/AbstractBlog.clearMessages
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.error(Ljava/lang/String;)V == &net/sourceforge/pebble/domain/AbstractBlog.error
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getAuthor()Ljava/lang/String; == &net/sourceforge/pebble/domain/AbstractBlog.getAuthor
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog; == &net/sourceforge/pebble/domain/TimePeriod.getBlog
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getCalendar()Ljava/util/Calendar; == &net/sourceforge/pebble/domain/AbstractBlog.getCalendar
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getCharacterEncoding()Ljava/lang/String; == &net/sourceforge/pebble/domain/AbstractBlog.getCharacterEncoding
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getContext()Ljava/lang/String; == &net/sourceforge/pebble/domain/AbstractBlog.getContext
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getCountry()Ljava/lang/String; == &net/sourceforge/pebble/domain/AbstractBlog.getCountry
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getDate()Ljava/util/Date; == &net/sourceforge/pebble/domain/TimePeriod.getDate
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getDefaultProperties()Ljava/util/Properties; == &getDefaultProperties
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getDescription()Ljava/lang/String; == &net/sourceforge/pebble/domain/AbstractBlog.getDescription
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getDomainName()Ljava/lang/String; == &net/sourceforge/pebble/domain/AbstractBlog.getDomainName
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getId()Ljava/lang/String; == &getId
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getImage()Ljava/lang/String; == &net/sourceforge/pebble/domain/AbstractBlog.getImage
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getImagesDirectory()Ljava/lang/String; == &net/sourceforge/pebble/domain/AbstractBlog.getImagesDirectory
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getIndexesDirectory()Ljava/lang/String; == &net/sourceforge/pebble/domain/AbstractBlog.getIndexesDirectory
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getLanguage()Ljava/lang/String; == &net/sourceforge/pebble/domain/AbstractBlog.getLanguage
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getLastModified()Ljava/util/Date; == &getLastModified
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getLocale()Ljava/util/Locale; == &net/sourceforge/pebble/domain/AbstractBlog.getLocale
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getLogsDirectory()Ljava/lang/String; == &net/sourceforge/pebble/domain/AbstractBlog.getLogsDirectory
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getMessages()Ljava/util/List; == &net/sourceforge/pebble/domain/AbstractBlog.getMessages
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getName()Ljava/lang/String; == &net/sourceforge/pebble/domain/AbstractBlog.getName
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getNumberOfMessages()I == &net/sourceforge/pebble/domain/AbstractBlog.getNumberOfMessages
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getProperties()Ljava/util/Properties; == &net/sourceforge/pebble/domain/AbstractBlog.getProperties
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getProperty(Ljava/lang/String;)Ljava/lang/String; == &net/sourceforge/pebble/domain/AbstractBlog.getProperty
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getProtocol()Ljava/lang/String; == &net/sourceforge/pebble/domain/AbstractBlog.getProtocol
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getRecentBlogEntries()Ljava/util/List; == &net/sourceforge/pebble/domain/AbstractBlog.getRecentBlogEntries
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getRecentBlogEntries(I)Ljava/util/List; == &getRecentBlogEntries
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getRecentBlogEntriesOnHomePage()I == &net/sourceforge/pebble/domain/AbstractBlog.getRecentBlogEntriesOnHomePage
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getRecentResponsesOnHomePage()I == &net/sourceforge/pebble/domain/AbstractBlog.getRecentResponsesOnHomePage
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getRelativeUrl()Ljava/lang/String; == &getRelativeUrl
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getRoot()Ljava/lang/String; == &net/sourceforge/pebble/domain/AbstractBlog.getRoot
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getSearchIndexDirectory()Ljava/lang/String; == &net/sourceforge/pebble/domain/AbstractBlog.getSearchIndexDirectory
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getTheme()Ljava/lang/String; == &net/sourceforge/pebble/domain/AbstractBlog.getTheme
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getTimeZone()Ljava/util/TimeZone; == &net/sourceforge/pebble/domain/AbstractBlog.getTimeZone
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getTimeZoneId()Ljava/lang/String; == &net/sourceforge/pebble/domain/AbstractBlog.getTimeZoneId
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.getUrl()Ljava/lang/String; == &getUrl
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.info(Ljava/lang/String;)V == &net/sourceforge/pebble/domain/AbstractBlog.info
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.init()V == &net/sourceforge/pebble/domain/AbstractBlog.init
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.isConfigured()Z == &net/sourceforge/pebble/domain/AbstractBlog.isConfigured
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.loadProperties()V == &net/sourceforge/pebble/domain/AbstractBlog.loadProperties
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.log(Ljavax/servlet/http/HttpServletRequest;I)V == &log
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.removeProperty(Ljava/lang/String;)V == &net/sourceforge/pebble/domain/AbstractBlog.removeProperty
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.setDate(Ljava/util/Date;)V == &net/sourceforge/pebble/domain/TimePeriod.setDate
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.setProperty(Ljava/lang/String;Ljava/lang/String;)V == &net/sourceforge/pebble/domain/AbstractBlog.setProperty
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.setRecentBlogEntries(Ljava/util/List;)V == &net/sourceforge/pebble/domain/AbstractBlog.setRecentBlogEntries
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.setRoot(Ljava/lang/String;)V == &net/sourceforge/pebble/domain/AbstractBlog.setRoot
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.storeProperties()V == &net/sourceforge/pebble/domain/AbstractBlog.storeProperties
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.toString()Ljava/lang/String; == &net/sourceforge/pebble/domain/AbstractBlog.toString
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.truncateMessages()V == &net/sourceforge/pebble/domain/AbstractBlog.truncateMessages
    //#post(net.sourceforge.pebble.domain.MultiBlog__static_init): __Dispatch_Table.warn(Ljava/lang/String;)V == &net/sourceforge/pebble/domain/AbstractBlog.warn
    //#multiblog.java:: end of method: net.sourceforge.pebble.domain.MultiBlog.net.sourceforge.pebble.domain.MultiBlog__static_init
    //#multiblog.java:: end of class: net.sourceforge.pebble.domain.MultiBlog
