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

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

import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.roller.weblogger.WebloggerException;
import org.apache.roller.weblogger.business.URLStrategy;
import org.apache.roller.weblogger.business.Weblogger;
import org.apache.roller.weblogger.business.WebloggerFactory;
import org.apache.roller.weblogger.business.UserManager;
import org.apache.roller.weblogger.business.WeblogManager;
import org.apache.roller.weblogger.pojos.WeblogHitCount;
import org.apache.roller.weblogger.pojos.WeblogPermission;
import org.apache.roller.weblogger.pojos.StatCount;
import org.apache.roller.weblogger.pojos.ThemeTemplate;
import org.apache.roller.weblogger.pojos.User;
import org.apache.roller.weblogger.pojos.WeblogEntry;
import org.apache.roller.weblogger.pojos.Weblog;
import org.apache.roller.weblogger.pojos.wrapper.UserWrapper;
import org.apache.roller.weblogger.pojos.wrapper.WeblogEntryWrapper;
import org.apache.roller.weblogger.pojos.wrapper.WeblogWrapper;
import org.apache.roller.weblogger.ui.rendering.pagers.CommentsPager;
import org.apache.roller.weblogger.ui.rendering.pagers.Pager;
import org.apache.roller.weblogger.ui.rendering.pagers.UsersPager;
import org.apache.roller.weblogger.ui.rendering.pagers.WeblogEntriesListPager;
import org.apache.roller.weblogger.ui.rendering.pagers.WeblogsPager;
import org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest;
import org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest;
import org.apache.roller.weblogger.ui.rendering.util.WeblogRequest;


/**
 * Page model that provides access to site-wide users, weblogs and entries.
 */
public class SiteModel implements Model {
    //#SiteModel.java:60: method: void org.apache.roller.weblogger.ui.rendering.model.SiteModel.org.apache.roller.weblogger.ui.rendering.model.SiteModel()
    //#input(void org.apache.roller.weblogger.ui.rendering.model.SiteModel()): this
    //#output(void org.apache.roller.weblogger.ui.rendering.model.SiteModel()): new ArrayList(SiteModel#1) num objects
    //#output(void org.apache.roller.weblogger.ui.rendering.model.SiteModel()): this.feedRequest
    //#output(void org.apache.roller.weblogger.ui.rendering.model.SiteModel()): this.pageLink
    //#output(void org.apache.roller.weblogger.ui.rendering.model.SiteModel()): this.pageNum
    //#output(void org.apache.roller.weblogger.ui.rendering.model.SiteModel()): this.tags
    //#output(void org.apache.roller.weblogger.ui.rendering.model.SiteModel()): this.urlStrategy
    //#output(void org.apache.roller.weblogger.ui.rendering.model.SiteModel()): this.weblog
    //#output(void org.apache.roller.weblogger.ui.rendering.model.SiteModel()): this.weblogRequest
    //#new obj(void org.apache.roller.weblogger.ui.rendering.model.SiteModel()): new ArrayList(SiteModel#1)
    //#post(void org.apache.roller.weblogger.ui.rendering.model.SiteModel()): this.feedRequest == null
    //#post(void org.apache.roller.weblogger.ui.rendering.model.SiteModel()): this.pageLink == null
    //#post(void org.apache.roller.weblogger.ui.rendering.model.SiteModel()): this.urlStrategy == null
    //#post(void org.apache.roller.weblogger.ui.rendering.model.SiteModel()): this.weblog == null
    //#post(void org.apache.roller.weblogger.ui.rendering.model.SiteModel()): this.weblogRequest == null
    //#post(void org.apache.roller.weblogger.ui.rendering.model.SiteModel()): this.pageNum == 0
    //#post(void org.apache.roller.weblogger.ui.rendering.model.SiteModel()): this.tags == &new ArrayList(SiteModel#1)
    //#post(void org.apache.roller.weblogger.ui.rendering.model.SiteModel()): new ArrayList(SiteModel#1) num objects == 1
    
    private static Log log = LogFactory.getLog(SiteModel.class);   
    //#SiteModel.java:62: method: org.apache.roller.weblogger.ui.rendering.model.SiteModel.org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init
    //#SiteModel.java:62: Warning: method not available
    //#    -- call on Log org.apache.commons.logging.LogFactory:getLog(Class)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init
    //#    unanalyzed callee: Log org.apache.commons.logging.LogFactory:getLog(Class)
    //#output(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/SiteModel]
    //#output(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getCommentCount()J
    //#output(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getCommentsPager(II)Lorg/apache/roller/weblogger/ui/rendering/pagers/Pager;
    //#output(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getEntryCount()J
    //#output(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getHotWeblogs(II)Ljava/util/List;
    //#output(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getModelName()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getMostCommentedWeblogEntries(Ljava/util/List;II)Ljava/util/List;
    //#output(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getMostCommentedWeblogs(II)Ljava/util/List;
    //#output(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getNewUsers(II)Ljava/util/List;
    //#output(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getNewWeblogs(II)Ljava/util/List;
    //#output(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getPinnedWeblogEntries(I)Ljava/util/List;
    //#output(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getPopularTags(II)Ljava/util/List;
    //#output(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getUser(Ljava/lang/String;)Lorg/apache/roller/weblogger/pojos/wrapper/UserWrapper;
    //#output(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getUserCount()J
    //#output(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getUserNameLetterMap()Ljava/util/Map;
    //#output(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getUsersByLetterPager(Ljava/lang/String;II)Lorg/apache/roller/weblogger/ui/rendering/pagers/Pager;
    //#output(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getUsersWeblogs(Ljava/lang/String;)Ljava/util/List;
    //#output(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getWeblog(Ljava/lang/String;)Lorg/apache/roller/weblogger/pojos/wrapper/WeblogWrapper;
    //#output(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getWeblogCount()J
    //#output(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getWeblogEntriesPager(II)Lorg/apache/roller/weblogger/ui/rendering/pagers/Pager;
    //#output(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getWeblogEntriesPager(Lorg/apache/roller/weblogger/pojos/wrapper/WeblogWrapper;II)Lorg/apache/roller/weblogger/ui/rendering/pagers/Pager;
    //#output(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getWeblogEntriesPager(Lorg/apache/roller/weblogger/pojos/wrapper/WeblogWrapper;Lorg/apache/roller/weblogger/pojos/User;II)Lorg/apache/roller/weblogger/ui/rendering/pagers/Pager;
    //#output(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getWeblogEntriesPager(Lorg/apache/roller/weblogger/pojos/wrapper/WeblogWrapper;Lorg/apache/roller/weblogger/pojos/User;Ljava/lang/String;II)Lorg/apache/roller/weblogger/ui/rendering/pagers/Pager;
    //#output(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getWeblogHandleLetterMap()Ljava/util/Map;
    //#output(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getWeblogsByLetterPager(Ljava/lang/String;II)Lorg/apache/roller/weblogger/ui/rendering/pagers/Pager;
    //#output(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getWeblogsUsers(Ljava/lang/String;)Ljava/util/List;
    //#output(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.init(Ljava/util/Map;)V
    //#output(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): log
    //#output(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): org/apache/roller/weblogger/ui/rendering/model/Model.__Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/SiteModel]
    //#post(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/SiteModel] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): org/apache/roller/weblogger/ui/rendering/model/Model.__Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/SiteModel] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getCommentCount()J == &getCommentCount
    //#post(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getCommentsPager(II)Lorg/apache/roller/weblogger/ui/rendering/pagers/Pager; == &getCommentsPager
    //#post(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getEntryCount()J == &getEntryCount
    //#post(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getHotWeblogs(II)Ljava/util/List; == &getHotWeblogs
    //#post(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getModelName()Ljava/lang/String; == &getModelName
    //#post(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getMostCommentedWeblogEntries(Ljava/util/List;II)Ljava/util/List; == &getMostCommentedWeblogEntries
    //#post(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getMostCommentedWeblogs(II)Ljava/util/List; == &getMostCommentedWeblogs
    //#post(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getNewUsers(II)Ljava/util/List; == &getNewUsers
    //#post(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getNewWeblogs(II)Ljava/util/List; == &getNewWeblogs
    //#post(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getPinnedWeblogEntries(I)Ljava/util/List; == &getPinnedWeblogEntries
    //#post(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getPopularTags(II)Ljava/util/List; == &getPopularTags
    //#post(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getUser(Ljava/lang/String;)Lorg/apache/roller/weblogger/pojos/wrapper/UserWrapper; == &getUser
    //#post(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getUserCount()J == &getUserCount
    //#post(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getUserNameLetterMap()Ljava/util/Map; == &getUserNameLetterMap
    //#post(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getUsersByLetterPager(Ljava/lang/String;II)Lorg/apache/roller/weblogger/ui/rendering/pagers/Pager; == &getUsersByLetterPager
    //#post(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getUsersWeblogs(Ljava/lang/String;)Ljava/util/List; == &getUsersWeblogs
    //#post(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getWeblog(Ljava/lang/String;)Lorg/apache/roller/weblogger/pojos/wrapper/WeblogWrapper; == &getWeblog
    //#post(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getWeblogCount()J == &getWeblogCount
    //#post(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getWeblogEntriesPager(II)Lorg/apache/roller/weblogger/ui/rendering/pagers/Pager; == &getWeblogEntriesPager
    //#post(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getWeblogEntriesPager(Lorg/apache/roller/weblogger/pojos/wrapper/WeblogWrapper;II)Lorg/apache/roller/weblogger/ui/rendering/pagers/Pager; == &getWeblogEntriesPager
    //#post(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getWeblogEntriesPager(Lorg/apache/roller/weblogger/pojos/wrapper/WeblogWrapper;Lorg/apache/roller/weblogger/pojos/User;II)Lorg/apache/roller/weblogger/ui/rendering/pagers/Pager; == &getWeblogEntriesPager
    //#post(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getWeblogEntriesPager(Lorg/apache/roller/weblogger/pojos/wrapper/WeblogWrapper;Lorg/apache/roller/weblogger/pojos/User;Ljava/lang/String;II)Lorg/apache/roller/weblogger/ui/rendering/pagers/Pager; == &getWeblogEntriesPager
    //#post(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getWeblogHandleLetterMap()Ljava/util/Map; == &getWeblogHandleLetterMap
    //#post(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getWeblogsByLetterPager(Ljava/lang/String;II)Lorg/apache/roller/weblogger/ui/rendering/pagers/Pager; == &getWeblogsByLetterPager
    //#post(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.getWeblogsUsers(Ljava/lang/String;)Ljava/util/List; == &getWeblogsUsers
    //#post(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): __Dispatch_Table.init(Ljava/util/Map;)V == &init
    //#post(org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init): init'ed(log)
    //#SiteModel.java:62: end of method: org.apache.roller.weblogger.ui.rendering.model.SiteModel.org.apache.roller.weblogger.ui.rendering.model.SiteModel__static_init
    
    private Weblog weblog = null;
    private WeblogRequest weblogRequest = null;
    private WeblogFeedRequest feedRequest = null;
    private List tags = new ArrayList();
    private String pageLink = null;
    private int pageNum = 0;
    
    private URLStrategy urlStrategy = null;
    //#SiteModel.java:71: end of method: void org.apache.roller.weblogger.ui.rendering.model.SiteModel.org.apache.roller.weblogger.ui.rendering.model.SiteModel()
    
    
    public String getModelName() {
        return "site";
    //#SiteModel.java:75: method: String org.apache.roller.weblogger.ui.rendering.model.SiteModel.getModelName()
    //#output(String getModelName()): return_value
    //#post(String getModelName()): return_value == &"site"
    //#SiteModel.java:75: end of method: String org.apache.roller.weblogger.ui.rendering.model.SiteModel.getModelName()
    }
    
    public void init(Map initData) throws WebloggerException {
        
        // we expect the init data to contain a weblogRequest object
        this.weblogRequest = (WeblogRequest) initData.get("parsedRequest");
    //#SiteModel.java:81: method: void org.apache.roller.weblogger.ui.rendering.model.SiteModel.init(Map)
    //#input(void init(Map)): initData
    //#input(void init(Map)): this
    //#output(void init(Map)): this.feedRequest
    //#output(void init(Map)): this.pageLink
    //#output(void init(Map)): this.pageNum
    //#output(void init(Map)): this.tags
    //#output(void init(Map)): this.urlStrategy
    //#output(void init(Map)): this.weblog
    //#output(void init(Map)): this.weblogRequest
    //#pre[1] (void init(Map)): initData != null
    //#presumption(void init(Map)): java.util.Map:get(...)@81 != null
    //#presumption(void init(Map)): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@100 != null
    //#post(void init(Map)): possibly_updated(this.feedRequest)
    //#post(void init(Map)): possibly_updated(this.pageLink)
    //#post(void init(Map)): possibly_updated(this.pageNum)
    //#post(void init(Map)): possibly_updated(this.tags)
    //#post(void init(Map)): init'ed(this.urlStrategy)
    //#post(void init(Map)): init'ed(this.weblog)
    //#post(void init(Map)): (soft) this.weblogRequest != null
    //#test_vector(void init(Map)): java.util.Map:get(...)@98: Inverse{null}, Addr_Set{null}
    //#test_vector(void init(Map)): org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:instanceof(...)@91: {0}, {1}
    //#test_vector(void init(Map)): org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest:instanceof(...)@86: {0}, {1}
        if(this.weblogRequest == null) {
            throw new WebloggerException("expected weblogRequest from init data");
        }
        
        if (weblogRequest instanceof WeblogPageRequest) {
            ThemeTemplate weblogPage = ((WeblogPageRequest)weblogRequest).getWeblogPage();
    //#SiteModel.java:87: Warning: method not available
    //#    -- call on ThemeTemplate org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest:getWeblogPage()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: void init(Map)
    //#    unanalyzed callee: ThemeTemplate org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest:getWeblogPage()
            pageLink = (weblogPage != null) ? weblogPage.getLink() : null;
    //#SiteModel.java:88: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.pojos.ThemeTemplate:getLink()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: void init(Map)
    //#    unanalyzed callee: String org.apache.roller.weblogger.pojos.ThemeTemplate:getLink()
            pageNum = ((WeblogPageRequest)weblogRequest).getPageNum();
    //#SiteModel.java:89: Warning: method not available
    //#    -- call on int org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest:getPageNum()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: void init(Map)
    //#    unanalyzed callee: int org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest:getPageNum()
            tags = ((WeblogPageRequest)weblogRequest).getTags();
    //#SiteModel.java:90: Warning: method not available
    //#    -- call on List org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest:getTags()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: void init(Map)
    //#    unanalyzed callee: List org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest:getTags()
        } else if (weblogRequest instanceof WeblogFeedRequest) {
            this.feedRequest = (WeblogFeedRequest) weblogRequest;
            tags = feedRequest.getTags();
    //#SiteModel.java:93: Warning: method not available
    //#    -- call on List org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getTags()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: void init(Map)
    //#    unanalyzed callee: List org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getTags()
            pageNum = feedRequest.getPage();
    //#SiteModel.java:94: Warning: method not available
    //#    -- call on int org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getPage()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: void init(Map)
    //#    unanalyzed callee: int org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getPage()
        }
        
        // look for url strategy
        urlStrategy = (URLStrategy) initData.get("urlStrategy");
        if(urlStrategy == null) {
            urlStrategy = WebloggerFactory.getWeblogger().getUrlStrategy();
    //#SiteModel.java:100: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: void init(Map)
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#SiteModel.java:100: Warning: method not available
    //#    -- call on URLStrategy org.apache.roller.weblogger.business.Weblogger:getUrlStrategy()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: void init(Map)
    //#    unanalyzed callee: URLStrategy org.apache.roller.weblogger.business.Weblogger:getUrlStrategy()
        }
        
        // extract weblog object
        weblog = weblogRequest.getWeblog();
    //#SiteModel.java:104: Warning: method not available
    //#    -- call on Weblog org.apache.roller.weblogger.ui.rendering.util.WeblogRequest:getWeblog()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: void init(Map)
    //#    unanalyzed callee: Weblog org.apache.roller.weblogger.ui.rendering.util.WeblogRequest:getWeblog()
    }
    //#SiteModel.java:105: end of method: void org.apache.roller.weblogger.ui.rendering.model.SiteModel.init(Map)
    
    //----------------------------------------------------------------- Pagers
    
    /**
     * Get pager ofWeblogEntry objects across all weblogs, in reverse chrono order by pubTime.
     * @param sinceDays Limit to past X days in past (or -1 for no limit)
     * @param length    Max number of results to return
     */
    public Pager getWeblogEntriesPager(int sinceDays, int length) {
        
        String pagerUrl = null;
    //#SiteModel.java:116: method: Pager org.apache.roller.weblogger.ui.rendering.model.SiteModel.getWeblogEntriesPager(int, int)
    //#SiteModel.java:116: Warning: unused assignment
    //#    unused assignment into pagerUrl
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Pager getWeblogEntriesPager(int, int)
    //#    Attribs:  Uncertain
    //#input(Pager getWeblogEntriesPager(int, int)): length
    //#input(Pager getWeblogEntriesPager(int, int)): org/apache/roller/weblogger/ui/rendering/model/FeedModel$FeedEntriesPager.__Dispatch_Table.getItems()Ljava/util/List;
    //#input(Pager getWeblogEntriesPager(int, int)): org/apache/roller/weblogger/ui/rendering/model/FeedModel$FeedEntriesPager.__Dispatch_Table.getPage()I
    //#input(Pager getWeblogEntriesPager(int, int)): org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager.__Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/FeedModel$FeedEntriesPager]
    //#input(Pager getWeblogEntriesPager(int, int)): org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager.__Descendant_Table[org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager]
    //#input(Pager getWeblogEntriesPager(int, int)): org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager.__Descendant_Table[others]
    //#input(Pager getWeblogEntriesPager(int, int)): org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager.__Dispatch_Table.getItems()Ljava/util/List;
    //#input(Pager getWeblogEntriesPager(int, int)): org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager.__Dispatch_Table.getPage()I
    //#input(Pager getWeblogEntriesPager(int, int)): org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager.log
    //#input(Pager getWeblogEntriesPager(int, int)): sinceDays
    //#input(Pager getWeblogEntriesPager(int, int)): this
    //#input(Pager getWeblogEntriesPager(int, int)): this.feedRequest
    //#input(Pager getWeblogEntriesPager(int, int)): this.pageLink
    //#input(Pager getWeblogEntriesPager(int, int)): this.pageNum
    //#input(Pager getWeblogEntriesPager(int, int)): this.tags
    //#input(Pager getWeblogEntriesPager(int, int)): this.urlStrategy
    //#input(Pager getWeblogEntriesPager(int, int)): this.weblog
    //#input(Pager getWeblogEntriesPager(int, int)): this.weblogRequest
    //#output(Pager getWeblogEntriesPager(int, int)): new ArrayList(getItems#1) num objects
    //#output(Pager getWeblogEntriesPager(int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1) num objects
    //#output(Pager getWeblogEntriesPager(int, int)): return_value.__Tag
    //#output(Pager getWeblogEntriesPager(int, int)): return_value.entries
    //#output(Pager getWeblogEntriesPager(int, int)): return_value.lastUpdated
    //#output(Pager getWeblogEntriesPager(int, int)): return_value.length
    //#output(Pager getWeblogEntriesPager(int, int)): return_value.locale
    //#output(Pager getWeblogEntriesPager(int, int)): return_value.more
    //#output(Pager getWeblogEntriesPager(int, int)): return_value.page
    //#output(Pager getWeblogEntriesPager(int, int)): return_value.queryCat
    //#output(Pager getWeblogEntriesPager(int, int)): return_value.queryTags
    //#output(Pager getWeblogEntriesPager(int, int)): return_value.queryUser
    //#output(Pager getWeblogEntriesPager(int, int)): return_value.queryWeblog
    //#output(Pager getWeblogEntriesPager(int, int)): return_value.sinceDays
    //#output(Pager getWeblogEntriesPager(int, int)): return_value.url
    //#output(Pager getWeblogEntriesPager(int, int)): return_value.urlStrategy
    //#output(Pager getWeblogEntriesPager(int, int)): return_value
    //#new obj(Pager getWeblogEntriesPager(int, int)): new ArrayList(getItems#1)
    //#new obj(Pager getWeblogEntriesPager(int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1)
    //#pre[5] (Pager getWeblogEntriesPager(int, int)): init'ed(this.feedRequest)
    //#pre[7] (Pager getWeblogEntriesPager(int, int)): init'ed(this.pageNum)
    //#pre[8] (Pager getWeblogEntriesPager(int, int)): init'ed(this.tags)
    //#pre[9] (Pager getWeblogEntriesPager(int, int)): this.urlStrategy != null
    //#pre[10] (Pager getWeblogEntriesPager(int, int)): init'ed(this.weblog)
    //#pre[11] (Pager getWeblogEntriesPager(int, int)): this.weblogRequest != null
    //#pre[1] (Pager getWeblogEntriesPager(int, int)): (soft) length <= 4_294_967_294
    //#pre[2] (Pager getWeblogEntriesPager(int, int)): (soft) org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager.log != null
    //#pre[3] (Pager getWeblogEntriesPager(int, int)): (soft) sinceDays <= 2_147_483_648
    //#pre[6] (Pager getWeblogEntriesPager(int, int)): (soft) init'ed(this.pageLink)
    //#post(Pager getWeblogEntriesPager(int, int)): return_value == &new WeblogEntriesListPager(getWeblogEntriesPager#1)
    //#post(Pager getWeblogEntriesPager(int, int)): new ArrayList(getItems#1) num objects == 1
    //#post(Pager getWeblogEntriesPager(int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1) num objects == 1
    //#post(Pager getWeblogEntriesPager(int, int)): return_value.__Tag == org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager
    //#post(Pager getWeblogEntriesPager(int, int)): return_value.entries == &new ArrayList(getItems#1)
    //#post(Pager getWeblogEntriesPager(int, int)): init'ed(return_value.lastUpdated)
    //#post(Pager getWeblogEntriesPager(int, int)): return_value.length == length
    //#post(Pager getWeblogEntriesPager(int, int)): (soft) return_value.length <= 4_294_967_294
    //#post(Pager getWeblogEntriesPager(int, int)): init'ed(return_value.locale)
    //#post(Pager getWeblogEntriesPager(int, int)): init'ed(return_value.more)
    //#post(Pager getWeblogEntriesPager(int, int)): return_value.page == One-of{0, this.pageNum}
    //#post(Pager getWeblogEntriesPager(int, int)): return_value.page >= 0
    //#post(Pager getWeblogEntriesPager(int, int)): return_value.queryCat == null
    //#post(Pager getWeblogEntriesPager(int, int)): return_value.queryUser == null
    //#post(Pager getWeblogEntriesPager(int, int)): return_value.queryWeblog == null
    //#post(Pager getWeblogEntriesPager(int, int)): return_value.queryTags == this.tags
    //#post(Pager getWeblogEntriesPager(int, int)): init'ed(return_value.queryTags)
    //#post(Pager getWeblogEntriesPager(int, int)): return_value.sinceDays == sinceDays
    //#post(Pager getWeblogEntriesPager(int, int)): (soft) return_value.sinceDays <= 2_147_483_648
    //#post(Pager getWeblogEntriesPager(int, int)): init'ed(return_value.url)
    //#post(Pager getWeblogEntriesPager(int, int)): return_value.urlStrategy == this.urlStrategy
    //#post(Pager getWeblogEntriesPager(int, int)): return_value.urlStrategy != null
    //#post(Pager getWeblogEntriesPager(int, int)): length*return_value.page in -2_147_483_648..4_294_967_295
    //#unanalyzed(Pager getWeblogEntriesPager(int, int)): Effects-of-calling:java.util.List:size
    //#unanalyzed(Pager getWeblogEntriesPager(int, int)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(Pager getWeblogEntriesPager(int, int)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(Pager getWeblogEntriesPager(int, int)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(Pager getWeblogEntriesPager(int, int)): Effects-of-calling:java.util.Date
    //#unanalyzed(Pager getWeblogEntriesPager(int, int)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(Pager getWeblogEntriesPager(int, int)): Effects-of-calling:java.util.Calendar:getInstance
    //#unanalyzed(Pager getWeblogEntriesPager(int, int)): Effects-of-calling:java.util.Calendar:setTime
    //#unanalyzed(Pager getWeblogEntriesPager(int, int)): Effects-of-calling:java.util.Calendar:add
    //#unanalyzed(Pager getWeblogEntriesPager(int, int)): Effects-of-calling:java.util.Calendar:getTime
    //#unanalyzed(Pager getWeblogEntriesPager(int, int)): Effects-of-calling:org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger
    //#unanalyzed(Pager getWeblogEntriesPager(int, int)): Effects-of-calling:org.apache.roller.weblogger.business.Weblogger:getWeblogManager
    //#unanalyzed(Pager getWeblogEntriesPager(int, int)): Effects-of-calling:org.apache.roller.weblogger.business.Weblogger:getUserManager
    //#unanalyzed(Pager getWeblogEntriesPager(int, int)): Effects-of-calling:org.apache.roller.weblogger.business.WeblogManager:getWeblogEntries
    //#unanalyzed(Pager getWeblogEntriesPager(int, int)): Effects-of-calling:java.util.List:add
    //#unanalyzed(Pager getWeblogEntriesPager(int, int)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(Pager getWeblogEntriesPager(int, int)): Effects-of-calling:org.apache.commons.logging.Log:error
    //#test_vector(Pager getWeblogEntriesPager(int, int)): this.feedRequest: Addr_Set{null}, Inverse{null}
        
        if (feedRequest != null) {
            pagerUrl = urlStrategy.getWeblogFeedURL(weblog, 
    //#SiteModel.java:119: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.ui.rendering.util.WeblogRequest:getLocale()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Pager getWeblogEntriesPager(int, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.ui.rendering.util.WeblogRequest:getLocale()
    //#SiteModel.java:119: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getType()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Pager getWeblogEntriesPager(int, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getType()
    //#SiteModel.java:119: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getFormat()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Pager getWeblogEntriesPager(int, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getFormat()
    //#SiteModel.java:119: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getWeblogCategoryName()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Pager getWeblogEntriesPager(int, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getWeblogCategoryName()
    //#SiteModel.java:119: Warning: method not available
    //#    -- call on List org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getTags()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Pager getWeblogEntriesPager(int, int)
    //#    unanalyzed callee: List org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getTags()
    //#SiteModel.java:119: Warning: method not available
    //#    -- call on bool org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:isExcerpts()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Pager getWeblogEntriesPager(int, int)
    //#    unanalyzed callee: bool org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:isExcerpts()
    //#SiteModel.java:119: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogFeedURL(Weblog, String, String, String, String, String, List, bool, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Pager getWeblogEntriesPager(int, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogFeedURL(Weblog, String, String, String, String, String, List, bool, bool)
                    weblogRequest.getLocale(), feedRequest.getType(),
                    feedRequest.getFormat(), feedRequest.getWeblogCategoryName(), null,
                    feedRequest.getTags(), feedRequest.isExcerpts(), true);
        } else {        
            pagerUrl = urlStrategy.getWeblogPageURL(weblog, 
    //#SiteModel.java:124: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.ui.rendering.util.WeblogRequest:getLocale()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Pager getWeblogEntriesPager(int, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.ui.rendering.util.WeblogRequest:getLocale()
    //#SiteModel.java:124: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogPageURL(Weblog, String, String, String, String, String, List, int, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Pager getWeblogEntriesPager(int, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogPageURL(Weblog, String, String, String, String, String, List, int, bool)
                weblogRequest.getLocale(), pageLink, 
                null, null, null, tags, 0, false);
        }
        
        return new WeblogEntriesListPager(
    //#SiteModel.java:129: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.ui.rendering.util.WeblogRequest:getLocale()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Pager getWeblogEntriesPager(int, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.ui.rendering.util.WeblogRequest:getLocale()
    //#SiteModel.java:129: end of method: Pager org.apache.roller.weblogger.ui.rendering.model.SiteModel.getWeblogEntriesPager(int, int)
            urlStrategy,
            pagerUrl, null, null, null,
            tags,
            weblogRequest.getLocale(),
            sinceDays,
            pageNum, 
            length);
    }
    
       
    /**
     * Get pager ofWeblogEntry objects across all weblogs,
     * in reverse chrono order by pubTime.
     * @param queryWeblog Restrict to this weblog
     * @param sinceDays   Limit to past X days in past (or -1 for no limit)
     * @param length      Max number of results to return
     */   
    public Pager getWeblogEntriesPager(WeblogWrapper queryWeblog, int sinceDays, int length) {
        return getWeblogEntriesPager(queryWeblog, null, null, sinceDays, length);
    //#SiteModel.java:148: method: Pager org.apache.roller.weblogger.ui.rendering.model.SiteModel.getWeblogEntriesPager(WeblogWrapper, int, int)
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/SiteModel]
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): __Descendant_Table[others]
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): __Dispatch_Table.getWeblogEntriesPager(Lorg/apache/roller/weblogger/pojos/wrapper/WeblogWrapper;Lorg/apache/roller/weblogger/pojos/User;Ljava/lang/String;II)Lorg/apache/roller/weblogger/ui/rendering/pagers/Pager;
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): length
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): org/apache/roller/weblogger/pojos/wrapper/WeblogWrapper.__Descendant_Table[org/apache/roller/weblogger/pojos/wrapper/WeblogWrapper]
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): org/apache/roller/weblogger/pojos/wrapper/WeblogWrapper.__Descendant_Table[others]
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): org/apache/roller/weblogger/pojos/wrapper/WeblogWrapper.__Dispatch_Table.getPojo()Lorg/apache/roller/weblogger/pojos/Weblog;
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): org/apache/roller/weblogger/ui/rendering/model/FeedModel$FeedEntriesPager.__Dispatch_Table.getItems()Ljava/util/List;
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): org/apache/roller/weblogger/ui/rendering/model/FeedModel$FeedEntriesPager.__Dispatch_Table.getPage()I
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager.__Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/FeedModel$FeedEntriesPager]
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager.__Descendant_Table[org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager]
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager.__Descendant_Table[others]
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager.__Dispatch_Table.getItems()Ljava/util/List;
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager.__Dispatch_Table.getPage()I
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager.log
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): queryWeblog
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): queryWeblog.__Tag
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): queryWeblog.pojo
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): sinceDays
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): this
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): this.__Tag
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): this.feedRequest
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): this.pageLink
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): this.pageNum
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): this.tags
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): this.urlStrategy
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): this.weblog
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): this.weblogRequest
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): new ArrayList(getItems#1) num objects
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*) num objects
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).__Tag
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).entries
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).lastUpdated
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).length
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).locale
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).more
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).page
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).queryCat
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).queryTags
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).queryUser
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).queryWeblog
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).sinceDays
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).url
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).urlStrategy
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): return_value
    //#new obj(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): new ArrayList(getItems#1)
    //#new obj(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*)
    //#pre[3] (Pager getWeblogEntriesPager(WeblogWrapper, int, int)): queryWeblog != null
    //#pre[4] (Pager getWeblogEntriesPager(WeblogWrapper, int, int)): queryWeblog.__Tag == org/apache/roller/weblogger/pojos/wrapper/WeblogWrapper
    //#pre[8] (Pager getWeblogEntriesPager(WeblogWrapper, int, int)): this.__Tag == org/apache/roller/weblogger/ui/rendering/model/SiteModel
    //#pre[9] (Pager getWeblogEntriesPager(WeblogWrapper, int, int)): init'ed(this.feedRequest)
    //#pre[11] (Pager getWeblogEntriesPager(WeblogWrapper, int, int)): init'ed(this.pageNum)
    //#pre[12] (Pager getWeblogEntriesPager(WeblogWrapper, int, int)): init'ed(this.tags)
    //#pre[13] (Pager getWeblogEntriesPager(WeblogWrapper, int, int)): this.urlStrategy != null
    //#pre[14] (Pager getWeblogEntriesPager(WeblogWrapper, int, int)): init'ed(this.weblog)
    //#pre[15] (Pager getWeblogEntriesPager(WeblogWrapper, int, int)): this.weblogRequest != null
    //#pre[1] (Pager getWeblogEntriesPager(WeblogWrapper, int, int)): (soft) length <= 4_294_967_294
    //#pre[2] (Pager getWeblogEntriesPager(WeblogWrapper, int, int)): (soft) org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager.log != null
    //#pre[6] (Pager getWeblogEntriesPager(WeblogWrapper, int, int)): (soft) sinceDays <= 2_147_483_648
    //#pre[10] (Pager getWeblogEntriesPager(WeblogWrapper, int, int)): (soft) init'ed(this.pageLink)
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): return_value == &new WeblogEntriesListPager(getWeblogEntriesPager#1*)
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): new ArrayList(getItems#1) num objects == 1
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*) num objects == 1
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).__Tag == org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).entries == &new ArrayList(getItems#1)
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): init'ed(new WeblogEntriesListPager(getWeblogEntriesPager#1*).lastUpdated)
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).length == length
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): (soft) new WeblogEntriesListPager(getWeblogEntriesPager#1*).length <= 4_294_967_294
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): init'ed(new WeblogEntriesListPager(getWeblogEntriesPager#1*).locale)
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): init'ed(new WeblogEntriesListPager(getWeblogEntriesPager#1*).more)
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).page == One-of{0, this.pageNum}
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).page >= 0
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).queryCat == null
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).queryUser == null
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).queryTags == this.tags
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): init'ed(new WeblogEntriesListPager(getWeblogEntriesPager#1*).queryTags)
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).queryWeblog == queryWeblog.pojo
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): init'ed(new WeblogEntriesListPager(getWeblogEntriesPager#1*).queryWeblog)
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).sinceDays == sinceDays
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): (soft) new WeblogEntriesListPager(getWeblogEntriesPager#1*).sinceDays <= 2_147_483_648
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): init'ed(new WeblogEntriesListPager(getWeblogEntriesPager#1*).url)
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).urlStrategy == this.urlStrategy
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).urlStrategy != null
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): length*new WeblogEntriesListPager(getWeblogEntriesPager#1*).page in -2_147_483_648..4_294_967_295
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): Effects-of-calling:org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getTags
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): Effects-of-calling:org.apache.roller.weblogger.ui.rendering.util.WeblogRequest:getLocale
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): Effects-of-calling:org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getType
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): Effects-of-calling:org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getFormat
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): Effects-of-calling:org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getWeblogCategoryName
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): Effects-of-calling:org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:isExcerpts
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): Effects-of-calling:org.apache.roller.weblogger.business.URLStrategy:getWeblogFeedURL
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): Effects-of-calling:org.apache.roller.weblogger.business.URLStrategy:getWeblogPageURL
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): Effects-of-calling:java.util.List:size
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): Effects-of-calling:java.util.Date
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): Effects-of-calling:java.util.Calendar:getInstance
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): Effects-of-calling:java.util.Calendar:setTime
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): Effects-of-calling:java.util.Calendar:add
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): Effects-of-calling:java.util.Calendar:getTime
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): Effects-of-calling:org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): Effects-of-calling:org.apache.roller.weblogger.business.Weblogger:getWeblogManager
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): Effects-of-calling:org.apache.roller.weblogger.business.Weblogger:getUserManager
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): Effects-of-calling:org.apache.roller.weblogger.business.WeblogManager:getWeblogEntries
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): Effects-of-calling:java.util.List:add
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, int, int)): Effects-of-calling:org.apache.commons.logging.Log:error
    //#SiteModel.java:148: end of method: Pager org.apache.roller.weblogger.ui.rendering.model.SiteModel.getWeblogEntriesPager(WeblogWrapper, int, int)
    }

    /**
     * Get pager ofWeblogEntry objects across all weblogs,
     * in reverse chrono order by pubTime.
     * @param queryWeblog Restrict to this weblog
     * @param user        Restrict to this user
     * @param sinceDays   Limit to past X days in past (or -1 for no limit)
     * @param length      Max number of results to return
     */   
    public Pager getWeblogEntriesPager(WeblogWrapper queryWeblog, User user, int sinceDays, int length) {
        return getWeblogEntriesPager(queryWeblog, user, null, sinceDays, length);
    //#SiteModel.java:160: method: Pager org.apache.roller.weblogger.ui.rendering.model.SiteModel.getWeblogEntriesPager(WeblogWrapper, User, int, int)
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/SiteModel]
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): __Descendant_Table[others]
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): __Dispatch_Table.getWeblogEntriesPager(Lorg/apache/roller/weblogger/pojos/wrapper/WeblogWrapper;Lorg/apache/roller/weblogger/pojos/User;Ljava/lang/String;II)Lorg/apache/roller/weblogger/ui/rendering/pagers/Pager;
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): length
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): org/apache/roller/weblogger/pojos/wrapper/WeblogWrapper.__Descendant_Table[org/apache/roller/weblogger/pojos/wrapper/WeblogWrapper]
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): org/apache/roller/weblogger/pojos/wrapper/WeblogWrapper.__Descendant_Table[others]
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): org/apache/roller/weblogger/pojos/wrapper/WeblogWrapper.__Dispatch_Table.getPojo()Lorg/apache/roller/weblogger/pojos/Weblog;
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): org/apache/roller/weblogger/ui/rendering/model/FeedModel$FeedEntriesPager.__Dispatch_Table.getItems()Ljava/util/List;
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): org/apache/roller/weblogger/ui/rendering/model/FeedModel$FeedEntriesPager.__Dispatch_Table.getPage()I
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager.__Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/FeedModel$FeedEntriesPager]
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager.__Descendant_Table[org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager]
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager.__Descendant_Table[others]
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager.__Dispatch_Table.getItems()Ljava/util/List;
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager.__Dispatch_Table.getPage()I
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager.log
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): queryWeblog
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): queryWeblog.__Tag
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): queryWeblog.pojo
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): sinceDays
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): this
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): this.__Tag
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): this.feedRequest
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): this.pageLink
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): this.pageNum
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): this.tags
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): this.urlStrategy
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): this.weblog
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): this.weblogRequest
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): user
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): new ArrayList(getItems#1) num objects
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*) num objects
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).__Tag
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).entries
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).lastUpdated
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).length
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).locale
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).more
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).page
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).queryCat
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).queryTags
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).queryUser
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).queryWeblog
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).sinceDays
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).url
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).urlStrategy
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): return_value
    //#new obj(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): new ArrayList(getItems#1)
    //#new obj(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*)
    //#pre[3] (Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): queryWeblog != null
    //#pre[4] (Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): queryWeblog.__Tag == org/apache/roller/weblogger/pojos/wrapper/WeblogWrapper
    //#pre[8] (Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): this.__Tag == org/apache/roller/weblogger/ui/rendering/model/SiteModel
    //#pre[9] (Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): init'ed(this.feedRequest)
    //#pre[11] (Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): init'ed(this.pageNum)
    //#pre[12] (Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): init'ed(this.tags)
    //#pre[13] (Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): this.urlStrategy != null
    //#pre[14] (Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): init'ed(this.weblog)
    //#pre[15] (Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): this.weblogRequest != null
    //#pre[1] (Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): (soft) length <= 4_294_967_294
    //#pre[2] (Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): (soft) org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager.log != null
    //#pre[6] (Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): (soft) sinceDays <= 2_147_483_648
    //#pre[10] (Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): (soft) init'ed(this.pageLink)
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): return_value == &new WeblogEntriesListPager(getWeblogEntriesPager#1*)
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): new ArrayList(getItems#1) num objects == 1
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*) num objects == 1
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).__Tag == org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).entries == &new ArrayList(getItems#1)
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): init'ed(new WeblogEntriesListPager(getWeblogEntriesPager#1*).lastUpdated)
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).length == length
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): (soft) new WeblogEntriesListPager(getWeblogEntriesPager#1*).length <= 4_294_967_294
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): init'ed(new WeblogEntriesListPager(getWeblogEntriesPager#1*).locale)
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): init'ed(new WeblogEntriesListPager(getWeblogEntriesPager#1*).more)
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).page == One-of{0, this.pageNum}
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).page >= 0
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).queryCat == null
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).queryTags == this.tags
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): init'ed(new WeblogEntriesListPager(getWeblogEntriesPager#1*).queryTags)
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).queryUser == user
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): init'ed(new WeblogEntriesListPager(getWeblogEntriesPager#1*).queryUser)
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).queryWeblog == queryWeblog.pojo
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): init'ed(new WeblogEntriesListPager(getWeblogEntriesPager#1*).queryWeblog)
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).sinceDays == sinceDays
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): (soft) new WeblogEntriesListPager(getWeblogEntriesPager#1*).sinceDays <= 2_147_483_648
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): init'ed(new WeblogEntriesListPager(getWeblogEntriesPager#1*).url)
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).urlStrategy == this.urlStrategy
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1*).urlStrategy != null
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): length*new WeblogEntriesListPager(getWeblogEntriesPager#1*).page in -2_147_483_648..4_294_967_295
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): Effects-of-calling:org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getTags
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): Effects-of-calling:org.apache.roller.weblogger.ui.rendering.util.WeblogRequest:getLocale
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): Effects-of-calling:org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getType
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): Effects-of-calling:org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getFormat
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): Effects-of-calling:org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getWeblogCategoryName
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): Effects-of-calling:org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:isExcerpts
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): Effects-of-calling:org.apache.roller.weblogger.business.URLStrategy:getWeblogFeedURL
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): Effects-of-calling:org.apache.roller.weblogger.business.URLStrategy:getWeblogPageURL
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): Effects-of-calling:java.util.List:size
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): Effects-of-calling:java.util.Date
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): Effects-of-calling:java.util.Calendar:getInstance
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): Effects-of-calling:java.util.Calendar:setTime
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): Effects-of-calling:java.util.Calendar:add
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): Effects-of-calling:java.util.Calendar:getTime
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): Effects-of-calling:org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): Effects-of-calling:org.apache.roller.weblogger.business.Weblogger:getWeblogManager
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): Effects-of-calling:org.apache.roller.weblogger.business.Weblogger:getUserManager
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): Effects-of-calling:org.apache.roller.weblogger.business.WeblogManager:getWeblogEntries
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): Effects-of-calling:java.util.List:add
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, User, int, int)): Effects-of-calling:org.apache.commons.logging.Log:error
    //#SiteModel.java:160: end of method: Pager org.apache.roller.weblogger.ui.rendering.model.SiteModel.getWeblogEntriesPager(WeblogWrapper, User, int, int)
    }

    /**
     * Get pager ofWeblogEntry objects across all weblogs,
     * in reverse chrono order by pubTime.
     * @param queryWeblog Restrict to this weblog
     * @param user        Restrict to this user
     * @param cat         Restrict to this category
     * @param sinceDays   Limit to past X days in past (or -1 for no limit)
     * @param length      Max number of results to return
     */   
    public Pager getWeblogEntriesPager(WeblogWrapper queryWeblog, User user, String cat, int sinceDays, int length) {
        
        String pagerUrl = null;
    //#SiteModel.java:174: method: Pager org.apache.roller.weblogger.ui.rendering.model.SiteModel.getWeblogEntriesPager(WeblogWrapper, User, String, int, int)
    //#SiteModel.java:174: Warning: unused assignment
    //#    unused assignment into pagerUrl
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)
    //#    Attribs:  Uncertain
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): cat
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): length
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): org/apache/roller/weblogger/pojos/wrapper/WeblogWrapper.__Descendant_Table[org/apache/roller/weblogger/pojos/wrapper/WeblogWrapper]
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): org/apache/roller/weblogger/pojos/wrapper/WeblogWrapper.__Descendant_Table[others]
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): org/apache/roller/weblogger/pojos/wrapper/WeblogWrapper.__Dispatch_Table.getPojo()Lorg/apache/roller/weblogger/pojos/Weblog;
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): org/apache/roller/weblogger/ui/rendering/model/FeedModel$FeedEntriesPager.__Dispatch_Table.getItems()Ljava/util/List;
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): org/apache/roller/weblogger/ui/rendering/model/FeedModel$FeedEntriesPager.__Dispatch_Table.getPage()I
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager.__Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/FeedModel$FeedEntriesPager]
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager.__Descendant_Table[org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager]
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager.__Descendant_Table[others]
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager.__Dispatch_Table.getItems()Ljava/util/List;
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager.__Dispatch_Table.getPage()I
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager.log
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): queryWeblog
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): queryWeblog.__Tag
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): queryWeblog.pojo
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): sinceDays
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): this
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): this.feedRequest
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): this.pageLink
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): this.pageNum
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): this.tags
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): this.urlStrategy
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): this.weblog
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): this.weblogRequest
    //#input(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): user
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): new ArrayList(getItems#1) num objects
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1) num objects
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): return_value.__Tag
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): return_value.entries
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): return_value.lastUpdated
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): return_value.length
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): return_value.locale
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): return_value.more
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): return_value.page
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): return_value.queryCat
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): return_value.queryTags
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): return_value.queryUser
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): return_value.queryWeblog
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): return_value.sinceDays
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): return_value.url
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): return_value.urlStrategy
    //#output(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): return_value
    //#new obj(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): new ArrayList(getItems#1)
    //#new obj(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1)
    //#pre[4] (Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): queryWeblog != null
    //#pre[5] (Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): queryWeblog.__Tag == org/apache/roller/weblogger/pojos/wrapper/WeblogWrapper
    //#pre[9] (Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): init'ed(this.feedRequest)
    //#pre[11] (Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): init'ed(this.pageNum)
    //#pre[12] (Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): init'ed(this.tags)
    //#pre[13] (Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): this.urlStrategy != null
    //#pre[14] (Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): init'ed(this.weblog)
    //#pre[15] (Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): this.weblogRequest != null
    //#pre[2] (Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): (soft) length <= 4_294_967_294
    //#pre[3] (Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): (soft) org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager.log != null
    //#pre[7] (Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): (soft) sinceDays <= 2_147_483_648
    //#pre[10] (Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): (soft) init'ed(this.pageLink)
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): return_value == &new WeblogEntriesListPager(getWeblogEntriesPager#1)
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): new ArrayList(getItems#1) num objects == 1
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): new WeblogEntriesListPager(getWeblogEntriesPager#1) num objects == 1
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): return_value.__Tag == org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): return_value.entries == &new ArrayList(getItems#1)
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): init'ed(return_value.lastUpdated)
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): return_value.length == length
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): (soft) return_value.length <= 4_294_967_294
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): init'ed(return_value.locale)
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): init'ed(return_value.more)
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): return_value.page == One-of{0, this.pageNum}
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): return_value.page >= 0
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): return_value.queryCat == cat
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): init'ed(return_value.queryCat)
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): return_value.queryTags == this.tags
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): init'ed(return_value.queryTags)
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): return_value.queryUser == user
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): init'ed(return_value.queryUser)
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): return_value.queryWeblog == queryWeblog.pojo
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): init'ed(return_value.queryWeblog)
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): return_value.sinceDays == sinceDays
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): (soft) return_value.sinceDays <= 2_147_483_648
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): init'ed(return_value.url)
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): return_value.urlStrategy == this.urlStrategy
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): return_value.urlStrategy != null
    //#post(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): length*return_value.page in -2_147_483_648..4_294_967_295
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): Effects-of-calling:java.util.List:size
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): Effects-of-calling:java.util.Date
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): Effects-of-calling:java.util.Calendar:getInstance
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): Effects-of-calling:java.util.Calendar:setTime
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): Effects-of-calling:java.util.Calendar:add
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): Effects-of-calling:java.util.Calendar:getTime
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): Effects-of-calling:org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): Effects-of-calling:org.apache.roller.weblogger.business.Weblogger:getWeblogManager
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): Effects-of-calling:org.apache.roller.weblogger.business.Weblogger:getUserManager
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): Effects-of-calling:org.apache.roller.weblogger.business.WeblogManager:getWeblogEntries
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): Effects-of-calling:java.util.List:add
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): Effects-of-calling:org.apache.commons.logging.Log:error
    //#test_vector(Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)): this.feedRequest: Addr_Set{null}, Inverse{null}
        if (feedRequest != null) {
            pagerUrl = urlStrategy.getWeblogFeedURL(weblog, 
    //#SiteModel.java:176: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.ui.rendering.util.WeblogRequest:getLocale()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.ui.rendering.util.WeblogRequest:getLocale()
    //#SiteModel.java:176: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getType()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getType()
    //#SiteModel.java:176: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getFormat()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getFormat()
    //#SiteModel.java:176: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getWeblogCategoryName()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getWeblogCategoryName()
    //#SiteModel.java:176: Warning: method not available
    //#    -- call on List org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getTags()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)
    //#    unanalyzed callee: List org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getTags()
    //#SiteModel.java:176: Warning: method not available
    //#    -- call on bool org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:isExcerpts()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)
    //#    unanalyzed callee: bool org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:isExcerpts()
    //#SiteModel.java:176: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogFeedURL(Weblog, String, String, String, String, String, List, bool, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogFeedURL(Weblog, String, String, String, String, String, List, bool, bool)
                    weblogRequest.getLocale(), feedRequest.getType(),
                    feedRequest.getFormat(), feedRequest.getWeblogCategoryName(), null,
                    feedRequest.getTags(), feedRequest.isExcerpts(), true);
        } else {
            pagerUrl = urlStrategy.getWeblogPageURL(weblog, 
    //#SiteModel.java:181: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.ui.rendering.util.WeblogRequest:getLocale()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.ui.rendering.util.WeblogRequest:getLocale()
    //#SiteModel.java:181: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogPageURL(Weblog, String, String, String, String, String, List, int, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogPageURL(Weblog, String, String, String, String, String, List, int, bool)
                weblogRequest.getLocale(), pageLink, 
                null, null, null, tags, 0, false);
        }
       
        return new WeblogEntriesListPager(
    //#SiteModel.java:186: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.ui.rendering.util.WeblogRequest:getLocale()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Pager getWeblogEntriesPager(WeblogWrapper, User, String, int, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.ui.rendering.util.WeblogRequest:getLocale()
    //#SiteModel.java:186: end of method: Pager org.apache.roller.weblogger.ui.rendering.model.SiteModel.getWeblogEntriesPager(WeblogWrapper, User, String, int, int)
            urlStrategy,
            pagerUrl, queryWeblog.getPojo(), user, cat,
            tags,
            weblogRequest.getLocale(),
            sinceDays,
            pageNum, 
            length);
    }    
    
    
    /*
     * Get pager of most recent Comment objects across all weblogs,
     * in reverse chrono order by postTime.
     * @param offset   Offset into results (for paging)
     * @param len      Max number of results to return
     */
    public Pager getCommentsPager(int sinceDays, int length) {
        
        String pagerUrl = null;
    //#SiteModel.java:205: method: Pager org.apache.roller.weblogger.ui.rendering.model.SiteModel.getCommentsPager(int, int)
    //#SiteModel.java:205: Warning: unused assignment
    //#    unused assignment into pagerUrl
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Pager getCommentsPager(int, int)
    //#    Attribs:  Uncertain
    //#input(Pager getCommentsPager(int, int)): length
    //#input(Pager getCommentsPager(int, int)): org/apache/roller/weblogger/ui/rendering/model/FeedModel$FeedCommentsPager.__Dispatch_Table.getItems()Ljava/util/List;
    //#input(Pager getCommentsPager(int, int)): org/apache/roller/weblogger/ui/rendering/model/FeedModel$FeedCommentsPager.__Dispatch_Table.getPage()I
    //#input(Pager getCommentsPager(int, int)): org/apache/roller/weblogger/ui/rendering/pagers/CommentsPager.__Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/FeedModel$FeedCommentsPager]
    //#input(Pager getCommentsPager(int, int)): org/apache/roller/weblogger/ui/rendering/pagers/CommentsPager.__Descendant_Table[org/apache/roller/weblogger/ui/rendering/pagers/CommentsPager]
    //#input(Pager getCommentsPager(int, int)): org/apache/roller/weblogger/ui/rendering/pagers/CommentsPager.__Descendant_Table[others]
    //#input(Pager getCommentsPager(int, int)): org/apache/roller/weblogger/ui/rendering/pagers/CommentsPager.__Dispatch_Table.getItems()Ljava/util/List;
    //#input(Pager getCommentsPager(int, int)): org/apache/roller/weblogger/ui/rendering/pagers/CommentsPager.__Dispatch_Table.getPage()I
    //#input(Pager getCommentsPager(int, int)): org/apache/roller/weblogger/ui/rendering/pagers/CommentsPager.log
    //#input(Pager getCommentsPager(int, int)): sinceDays
    //#input(Pager getCommentsPager(int, int)): this
    //#input(Pager getCommentsPager(int, int)): this.feedRequest
    //#input(Pager getCommentsPager(int, int)): this.pageLink
    //#input(Pager getCommentsPager(int, int)): this.pageNum
    //#input(Pager getCommentsPager(int, int)): this.urlStrategy
    //#input(Pager getCommentsPager(int, int)): this.weblog
    //#input(Pager getCommentsPager(int, int)): this.weblogRequest
    //#output(Pager getCommentsPager(int, int)): new ArrayList(getItems#1) num objects
    //#output(Pager getCommentsPager(int, int)): new CommentsPager(getCommentsPager#1) num objects
    //#output(Pager getCommentsPager(int, int)): return_value.__Tag
    //#output(Pager getCommentsPager(int, int)): return_value.comments
    //#output(Pager getCommentsPager(int, int)): return_value.lastUpdated
    //#output(Pager getCommentsPager(int, int)): return_value.length
    //#output(Pager getCommentsPager(int, int)): return_value.locale
    //#output(Pager getCommentsPager(int, int)): return_value.more
    //#output(Pager getCommentsPager(int, int)): return_value.page
    //#output(Pager getCommentsPager(int, int)): return_value.sinceDays
    //#output(Pager getCommentsPager(int, int)): return_value.url
    //#output(Pager getCommentsPager(int, int)): return_value.urlStrategy
    //#output(Pager getCommentsPager(int, int)): return_value.weblog
    //#output(Pager getCommentsPager(int, int)): return_value
    //#new obj(Pager getCommentsPager(int, int)): new ArrayList(getItems#1)
    //#new obj(Pager getCommentsPager(int, int)): new CommentsPager(getCommentsPager#1)
    //#pre[5] (Pager getCommentsPager(int, int)): init'ed(this.feedRequest)
    //#pre[7] (Pager getCommentsPager(int, int)): init'ed(this.pageNum)
    //#pre[8] (Pager getCommentsPager(int, int)): this.urlStrategy != null
    //#pre[9] (Pager getCommentsPager(int, int)): init'ed(this.weblog)
    //#pre[10] (Pager getCommentsPager(int, int)): this.weblogRequest != null
    //#pre[1] (Pager getCommentsPager(int, int)): (soft) length <= 4_294_967_294
    //#pre[2] (Pager getCommentsPager(int, int)): (soft) org/apache/roller/weblogger/ui/rendering/pagers/CommentsPager.log != null
    //#pre[3] (Pager getCommentsPager(int, int)): (soft) sinceDays <= 2_147_483_648
    //#pre[6] (Pager getCommentsPager(int, int)): (soft) init'ed(this.pageLink)
    //#post(Pager getCommentsPager(int, int)): return_value == &new CommentsPager(getCommentsPager#1)
    //#post(Pager getCommentsPager(int, int)): new ArrayList(getItems#1) num objects == 1
    //#post(Pager getCommentsPager(int, int)): new CommentsPager(getCommentsPager#1) num objects == 1
    //#post(Pager getCommentsPager(int, int)): return_value.__Tag == org/apache/roller/weblogger/ui/rendering/pagers/CommentsPager
    //#post(Pager getCommentsPager(int, int)): return_value.comments == &new ArrayList(getItems#1)
    //#post(Pager getCommentsPager(int, int)): init'ed(return_value.lastUpdated)
    //#post(Pager getCommentsPager(int, int)): return_value.length == length
    //#post(Pager getCommentsPager(int, int)): (soft) return_value.length <= 4_294_967_294
    //#post(Pager getCommentsPager(int, int)): init'ed(return_value.locale)
    //#post(Pager getCommentsPager(int, int)): init'ed(return_value.more)
    //#post(Pager getCommentsPager(int, int)): return_value.page == One-of{0, this.pageNum}
    //#post(Pager getCommentsPager(int, int)): return_value.page >= 0
    //#post(Pager getCommentsPager(int, int)): return_value.sinceDays == sinceDays
    //#post(Pager getCommentsPager(int, int)): (soft) return_value.sinceDays <= 2_147_483_648
    //#post(Pager getCommentsPager(int, int)): init'ed(return_value.url)
    //#post(Pager getCommentsPager(int, int)): return_value.urlStrategy == this.urlStrategy
    //#post(Pager getCommentsPager(int, int)): return_value.urlStrategy != null
    //#post(Pager getCommentsPager(int, int)): return_value.weblog == null
    //#post(Pager getCommentsPager(int, int)): length*return_value.page in -2_147_483_648..4_294_967_295
    //#unanalyzed(Pager getCommentsPager(int, int)): Effects-of-calling:getPage
    //#unanalyzed(Pager getCommentsPager(int, int)): Effects-of-calling:org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager
    //#unanalyzed(Pager getCommentsPager(int, int)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(Pager getCommentsPager(int, int)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(Pager getCommentsPager(int, int)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(Pager getCommentsPager(int, int)): Effects-of-calling:java.util.Date
    //#unanalyzed(Pager getCommentsPager(int, int)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(Pager getCommentsPager(int, int)): Effects-of-calling:java.util.Calendar:getInstance
    //#unanalyzed(Pager getCommentsPager(int, int)): Effects-of-calling:java.util.Calendar:setTime
    //#unanalyzed(Pager getCommentsPager(int, int)): Effects-of-calling:java.util.Calendar:add
    //#unanalyzed(Pager getCommentsPager(int, int)): Effects-of-calling:java.util.Calendar:getTime
    //#unanalyzed(Pager getCommentsPager(int, int)): Effects-of-calling:org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger
    //#unanalyzed(Pager getCommentsPager(int, int)): Effects-of-calling:org.apache.roller.weblogger.business.Weblogger:getWeblogManager
    //#unanalyzed(Pager getCommentsPager(int, int)): Effects-of-calling:org.apache.roller.weblogger.business.WeblogManager:getComments
    //#unanalyzed(Pager getCommentsPager(int, int)): Effects-of-calling:java.util.List:add
    //#unanalyzed(Pager getCommentsPager(int, int)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(Pager getCommentsPager(int, int)): Effects-of-calling:org.apache.commons.logging.Log:error
    //#test_vector(Pager getCommentsPager(int, int)): this.feedRequest: Addr_Set{null}, Inverse{null}
        if (feedRequest != null) {
            pagerUrl = urlStrategy.getWeblogFeedURL(weblog, 
    //#SiteModel.java:207: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.ui.rendering.util.WeblogRequest:getLocale()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Pager getCommentsPager(int, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.ui.rendering.util.WeblogRequest:getLocale()
    //#SiteModel.java:207: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getType()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Pager getCommentsPager(int, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getType()
    //#SiteModel.java:207: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getFormat()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Pager getCommentsPager(int, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getFormat()
    //#SiteModel.java:207: Warning: method not available
    //#    -- call on bool org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:isExcerpts()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Pager getCommentsPager(int, int)
    //#    unanalyzed callee: bool org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:isExcerpts()
    //#SiteModel.java:207: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogFeedURL(Weblog, String, String, String, String, String, List, bool, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Pager getCommentsPager(int, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogFeedURL(Weblog, String, String, String, String, String, List, bool, bool)
                    weblogRequest.getLocale(), feedRequest.getType(),
                    feedRequest.getFormat(), null, null, null,
                    feedRequest.isExcerpts(), true);
        } else {        
            pagerUrl = urlStrategy.getWeblogPageURL(weblog, 
    //#SiteModel.java:212: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.ui.rendering.util.WeblogRequest:getLocale()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Pager getCommentsPager(int, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.ui.rendering.util.WeblogRequest:getLocale()
    //#SiteModel.java:212: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogPageURL(Weblog, String, String, String, String, String, List, int, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Pager getCommentsPager(int, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogPageURL(Weblog, String, String, String, String, String, List, int, bool)
                weblogRequest.getLocale(), pageLink, 
                null, null, null, null, 0, false);
        }
        
        return new CommentsPager(
    //#SiteModel.java:217: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.ui.rendering.util.WeblogRequest:getLocale()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Pager getCommentsPager(int, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.ui.rendering.util.WeblogRequest:getLocale()
    //#SiteModel.java:217: end of method: Pager org.apache.roller.weblogger.ui.rendering.model.SiteModel.getCommentsPager(int, int)
            urlStrategy,
            pagerUrl,
            null,
            weblogRequest.getLocale(),
            sinceDays,
            pageNum, 
            length);
    }     
    
    
    /* Get pager of users whose names begin with specified letter */
    public Pager getUsersByLetterPager(String letter, int sinceDays, int length) {
        
        String pagerUrl = null;
    //#SiteModel.java:231: method: Pager org.apache.roller.weblogger.ui.rendering.model.SiteModel.getUsersByLetterPager(String, int, int)
    //#SiteModel.java:231: Warning: unused assignment
    //#    unused assignment into pagerUrl
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Pager getUsersByLetterPager(String, int, int)
    //#    Attribs:  Uncertain
    //#input(Pager getUsersByLetterPager(String, int, int)): length
    //#input(Pager getUsersByLetterPager(String, int, int)): letter
    //#input(Pager getUsersByLetterPager(String, int, int)): org/apache/roller/weblogger/ui/rendering/pagers/UsersPager.__Descendant_Table[org/apache/roller/weblogger/ui/rendering/pagers/UsersPager]
    //#input(Pager getUsersByLetterPager(String, int, int)): org/apache/roller/weblogger/ui/rendering/pagers/UsersPager.__Descendant_Table[others]
    //#input(Pager getUsersByLetterPager(String, int, int)): org/apache/roller/weblogger/ui/rendering/pagers/UsersPager.__Dispatch_Table.getItems()Ljava/util/List;
    //#input(Pager getUsersByLetterPager(String, int, int)): org/apache/roller/weblogger/ui/rendering/pagers/UsersPager.__Dispatch_Table.getPage()I
    //#input(Pager getUsersByLetterPager(String, int, int)): org/apache/roller/weblogger/ui/rendering/pagers/UsersPager.java.lang.Boolean.TRUE
    //#input(Pager getUsersByLetterPager(String, int, int)): org/apache/roller/weblogger/ui/rendering/pagers/UsersPager.log
    //#input(Pager getUsersByLetterPager(String, int, int)): sinceDays
    //#input(Pager getUsersByLetterPager(String, int, int)): this
    //#input(Pager getUsersByLetterPager(String, int, int)): this.feedRequest
    //#input(Pager getUsersByLetterPager(String, int, int)): this.pageLink
    //#input(Pager getUsersByLetterPager(String, int, int)): this.pageNum
    //#input(Pager getUsersByLetterPager(String, int, int)): this.urlStrategy
    //#input(Pager getUsersByLetterPager(String, int, int)): this.weblog
    //#input(Pager getUsersByLetterPager(String, int, int)): this.weblogRequest
    //#output(Pager getUsersByLetterPager(String, int, int)): new ArrayList(getItems#1) num objects
    //#output(Pager getUsersByLetterPager(String, int, int)): new UsersPager(getUsersByLetterPager#1) num objects
    //#output(Pager getUsersByLetterPager(String, int, int)): return_value.__Tag
    //#output(Pager getUsersByLetterPager(String, int, int)): return_value.length
    //#output(Pager getUsersByLetterPager(String, int, int)): return_value.letter
    //#output(Pager getUsersByLetterPager(String, int, int)): return_value.locale
    //#output(Pager getUsersByLetterPager(String, int, int)): return_value.more
    //#output(Pager getUsersByLetterPager(String, int, int)): return_value.page
    //#output(Pager getUsersByLetterPager(String, int, int)): return_value.sinceDays
    //#output(Pager getUsersByLetterPager(String, int, int)): return_value.url
    //#output(Pager getUsersByLetterPager(String, int, int)): return_value.urlStrategy
    //#output(Pager getUsersByLetterPager(String, int, int)): return_value.users
    //#output(Pager getUsersByLetterPager(String, int, int)): return_value
    //#new obj(Pager getUsersByLetterPager(String, int, int)): new ArrayList(getItems#1)
    //#new obj(Pager getUsersByLetterPager(String, int, int)): new UsersPager(getUsersByLetterPager#1)
    //#pre[6] (Pager getUsersByLetterPager(String, int, int)): init'ed(this.feedRequest)
    //#pre[8] (Pager getUsersByLetterPager(String, int, int)): init'ed(this.pageNum)
    //#pre[9] (Pager getUsersByLetterPager(String, int, int)): this.urlStrategy != null
    //#pre[10] (Pager getUsersByLetterPager(String, int, int)): init'ed(this.weblog)
    //#pre[11] (Pager getUsersByLetterPager(String, int, int)): this.weblogRequest != null
    //#pre[1] (Pager getUsersByLetterPager(String, int, int)): (soft) length <= 4_294_967_294
    //#pre[3] (Pager getUsersByLetterPager(String, int, int)): (soft) org/apache/roller/weblogger/ui/rendering/pagers/UsersPager.log != null
    //#pre[7] (Pager getUsersByLetterPager(String, int, int)): (soft) init'ed(this.pageLink)
    //#post(Pager getUsersByLetterPager(String, int, int)): return_value == &new UsersPager(getUsersByLetterPager#1)
    //#post(Pager getUsersByLetterPager(String, int, int)): new ArrayList(getItems#1) num objects == 1
    //#post(Pager getUsersByLetterPager(String, int, int)): new UsersPager(getUsersByLetterPager#1) num objects == 1
    //#post(Pager getUsersByLetterPager(String, int, int)): return_value.__Tag == org/apache/roller/weblogger/ui/rendering/pagers/UsersPager
    //#post(Pager getUsersByLetterPager(String, int, int)): return_value.length == length
    //#post(Pager getUsersByLetterPager(String, int, int)): (soft) return_value.length <= 4_294_967_294
    //#post(Pager getUsersByLetterPager(String, int, int)): return_value.letter == One-of{letter, null}
    //#post(Pager getUsersByLetterPager(String, int, int)): init'ed(return_value.letter)
    //#post(Pager getUsersByLetterPager(String, int, int)): init'ed(return_value.locale)
    //#post(Pager getUsersByLetterPager(String, int, int)): init'ed(return_value.more)
    //#post(Pager getUsersByLetterPager(String, int, int)): return_value.page == One-of{0, this.pageNum}
    //#post(Pager getUsersByLetterPager(String, int, int)): return_value.page >= 0
    //#post(Pager getUsersByLetterPager(String, int, int)): return_value.sinceDays == sinceDays
    //#post(Pager getUsersByLetterPager(String, int, int)): init'ed(return_value.sinceDays)
    //#post(Pager getUsersByLetterPager(String, int, int)): init'ed(return_value.url)
    //#post(Pager getUsersByLetterPager(String, int, int)): return_value.urlStrategy == this.urlStrategy
    //#post(Pager getUsersByLetterPager(String, int, int)): return_value.urlStrategy != null
    //#post(Pager getUsersByLetterPager(String, int, int)): return_value.users == &new ArrayList(getItems#1)
    //#post(Pager getUsersByLetterPager(String, int, int)): length*return_value.page in -2_147_483_648..4_294_967_295
    //#unanalyzed(Pager getUsersByLetterPager(String, int, int)): Effects-of-calling:getPage
    //#unanalyzed(Pager getUsersByLetterPager(String, int, int)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(Pager getUsersByLetterPager(String, int, int)): Effects-of-calling:org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger
    //#unanalyzed(Pager getUsersByLetterPager(String, int, int)): Effects-of-calling:org.apache.roller.weblogger.business.Weblogger:getUserManager
    //#unanalyzed(Pager getUsersByLetterPager(String, int, int)): Effects-of-calling:org.apache.roller.weblogger.business.UserManager:getUsers
    //#unanalyzed(Pager getUsersByLetterPager(String, int, int)): Effects-of-calling:java.lang.String:charAt
    //#unanalyzed(Pager getUsersByLetterPager(String, int, int)): Effects-of-calling:org.apache.roller.weblogger.business.UserManager:getUsersByLetter
    //#unanalyzed(Pager getUsersByLetterPager(String, int, int)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(Pager getUsersByLetterPager(String, int, int)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(Pager getUsersByLetterPager(String, int, int)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(Pager getUsersByLetterPager(String, int, int)): Effects-of-calling:org.apache.roller.weblogger.pojos.wrapper.UserWrapper:wrap
    //#unanalyzed(Pager getUsersByLetterPager(String, int, int)): Effects-of-calling:java.util.List:add
    //#unanalyzed(Pager getUsersByLetterPager(String, int, int)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(Pager getUsersByLetterPager(String, int, int)): Effects-of-calling:org.apache.commons.logging.Log:error
    //#unanalyzed(Pager getUsersByLetterPager(String, int, int)): Effects-of-calling:org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager
    //#test_vector(Pager getUsersByLetterPager(String, int, int)): letter: Addr_Set{null}, Inverse{null}
    //#test_vector(Pager getUsersByLetterPager(String, int, int)): this.feedRequest: Addr_Set{null}, Inverse{null}
    //#test_vector(Pager getUsersByLetterPager(String, int, int)): org.apache.commons.lang.StringUtils:isEmpty(...)@242: {0}, {1}
        if (feedRequest != null) {
            pagerUrl = urlStrategy.getWeblogFeedURL(weblog, 
    //#SiteModel.java:233: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.ui.rendering.util.WeblogRequest:getLocale()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Pager getUsersByLetterPager(String, int, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.ui.rendering.util.WeblogRequest:getLocale()
    //#SiteModel.java:233: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getType()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Pager getUsersByLetterPager(String, int, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getType()
    //#SiteModel.java:233: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getFormat()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Pager getUsersByLetterPager(String, int, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getFormat()
    //#SiteModel.java:233: Warning: method not available
    //#    -- call on bool org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:isExcerpts()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Pager getUsersByLetterPager(String, int, int)
    //#    unanalyzed callee: bool org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:isExcerpts()
    //#SiteModel.java:233: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogFeedURL(Weblog, String, String, String, String, String, List, bool, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Pager getUsersByLetterPager(String, int, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogFeedURL(Weblog, String, String, String, String, String, List, bool, bool)
                    weblogRequest.getLocale(), feedRequest.getType(),
                    feedRequest.getFormat(), null, null, null, feedRequest.isExcerpts(), true);
        } else {        
            pagerUrl = urlStrategy.getWeblogPageURL(weblog, 
    //#SiteModel.java:237: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.ui.rendering.util.WeblogRequest:getLocale()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Pager getUsersByLetterPager(String, int, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.ui.rendering.util.WeblogRequest:getLocale()
    //#SiteModel.java:237: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogPageURL(Weblog, String, String, String, String, String, List, int, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Pager getUsersByLetterPager(String, int, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogPageURL(Weblog, String, String, String, String, String, List, int, bool)
                weblogRequest.getLocale(), pageLink, 
                null, null, null, null, 0, false);
        }        
        
        if(letter != null && StringUtils.isEmpty(letter)) {
    //#SiteModel.java:242: Warning: method not available
    //#    -- call on bool org.apache.commons.lang.StringUtils:isEmpty(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Pager getUsersByLetterPager(String, int, int)
    //#    unanalyzed callee: bool org.apache.commons.lang.StringUtils:isEmpty(String)
            letter = null;
        }
        
        return new UsersPager(
    //#SiteModel.java:246: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.ui.rendering.util.WeblogRequest:getLocale()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Pager getUsersByLetterPager(String, int, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.ui.rendering.util.WeblogRequest:getLocale()
    //#SiteModel.java:246: end of method: Pager org.apache.roller.weblogger.ui.rendering.model.SiteModel.getUsersByLetterPager(String, int, int)
            urlStrategy,
            pagerUrl,
            letter,
            weblogRequest.getLocale(),
            sinceDays,
            pageNum, 
            length);
    }      
    
    
    /** Get pager of weblogs whose handles begin with specified letter */
    public Pager getWeblogsByLetterPager(String letter, int sinceDays, int length) {
        
        String pagerUrl = urlStrategy.getWeblogPageURL(weblog, 
    //#SiteModel.java:260: method: Pager org.apache.roller.weblogger.ui.rendering.model.SiteModel.getWeblogsByLetterPager(String, int, int)
    //#SiteModel.java:260: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.ui.rendering.util.WeblogRequest:getLocale()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Pager getWeblogsByLetterPager(String, int, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.ui.rendering.util.WeblogRequest:getLocale()
    //#SiteModel.java:260: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogPageURL(Weblog, String, String, String, String, String, List, int, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Pager getWeblogsByLetterPager(String, int, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogPageURL(Weblog, String, String, String, String, String, List, int, bool)
    //#input(Pager getWeblogsByLetterPager(String, int, int)): length
    //#input(Pager getWeblogsByLetterPager(String, int, int)): letter
    //#input(Pager getWeblogsByLetterPager(String, int, int)): org/apache/roller/weblogger/ui/rendering/pagers/WeblogsPager.__Descendant_Table[org/apache/roller/weblogger/ui/rendering/pagers/WeblogsPager]
    //#input(Pager getWeblogsByLetterPager(String, int, int)): org/apache/roller/weblogger/ui/rendering/pagers/WeblogsPager.__Descendant_Table[others]
    //#input(Pager getWeblogsByLetterPager(String, int, int)): org/apache/roller/weblogger/ui/rendering/pagers/WeblogsPager.__Dispatch_Table.getItems()Ljava/util/List;
    //#input(Pager getWeblogsByLetterPager(String, int, int)): org/apache/roller/weblogger/ui/rendering/pagers/WeblogsPager.__Dispatch_Table.getPage()I
    //#input(Pager getWeblogsByLetterPager(String, int, int)): org/apache/roller/weblogger/ui/rendering/pagers/WeblogsPager.java.lang.Boolean.TRUE
    //#input(Pager getWeblogsByLetterPager(String, int, int)): org/apache/roller/weblogger/ui/rendering/pagers/WeblogsPager.log
    //#input(Pager getWeblogsByLetterPager(String, int, int)): sinceDays
    //#input(Pager getWeblogsByLetterPager(String, int, int)): this
    //#input(Pager getWeblogsByLetterPager(String, int, int)): this.pageLink
    //#input(Pager getWeblogsByLetterPager(String, int, int)): this.pageNum
    //#input(Pager getWeblogsByLetterPager(String, int, int)): this.urlStrategy
    //#input(Pager getWeblogsByLetterPager(String, int, int)): this.weblog
    //#input(Pager getWeblogsByLetterPager(String, int, int)): this.weblogRequest
    //#output(Pager getWeblogsByLetterPager(String, int, int)): new ArrayList(getItems#1) num objects
    //#output(Pager getWeblogsByLetterPager(String, int, int)): new WeblogsPager(getWeblogsByLetterPager#1) num objects
    //#output(Pager getWeblogsByLetterPager(String, int, int)): return_value.__Tag
    //#output(Pager getWeblogsByLetterPager(String, int, int)): return_value.length
    //#output(Pager getWeblogsByLetterPager(String, int, int)): return_value.letter
    //#output(Pager getWeblogsByLetterPager(String, int, int)): return_value.locale
    //#output(Pager getWeblogsByLetterPager(String, int, int)): return_value.more
    //#output(Pager getWeblogsByLetterPager(String, int, int)): return_value.page
    //#output(Pager getWeblogsByLetterPager(String, int, int)): return_value.sinceDays
    //#output(Pager getWeblogsByLetterPager(String, int, int)): return_value.url
    //#output(Pager getWeblogsByLetterPager(String, int, int)): return_value.urlStrategy
    //#output(Pager getWeblogsByLetterPager(String, int, int)): return_value.weblogs
    //#output(Pager getWeblogsByLetterPager(String, int, int)): return_value
    //#new obj(Pager getWeblogsByLetterPager(String, int, int)): new ArrayList(getItems#1)
    //#new obj(Pager getWeblogsByLetterPager(String, int, int)): new WeblogsPager(getWeblogsByLetterPager#1)
    //#pre[6] (Pager getWeblogsByLetterPager(String, int, int)): init'ed(this.pageLink)
    //#pre[7] (Pager getWeblogsByLetterPager(String, int, int)): init'ed(this.pageNum)
    //#pre[8] (Pager getWeblogsByLetterPager(String, int, int)): this.urlStrategy != null
    //#pre[9] (Pager getWeblogsByLetterPager(String, int, int)): init'ed(this.weblog)
    //#pre[10] (Pager getWeblogsByLetterPager(String, int, int)): this.weblogRequest != null
    //#pre[1] (Pager getWeblogsByLetterPager(String, int, int)): (soft) length <= 4_294_967_294
    //#pre[3] (Pager getWeblogsByLetterPager(String, int, int)): (soft) org/apache/roller/weblogger/ui/rendering/pagers/WeblogsPager.log != null
    //#pre[4] (Pager getWeblogsByLetterPager(String, int, int)): (soft) sinceDays <= 2_147_483_648
    //#post(Pager getWeblogsByLetterPager(String, int, int)): return_value == &new WeblogsPager(getWeblogsByLetterPager#1)
    //#post(Pager getWeblogsByLetterPager(String, int, int)): new ArrayList(getItems#1) num objects == 1
    //#post(Pager getWeblogsByLetterPager(String, int, int)): new WeblogsPager(getWeblogsByLetterPager#1) num objects == 1
    //#post(Pager getWeblogsByLetterPager(String, int, int)): return_value.__Tag == org/apache/roller/weblogger/ui/rendering/pagers/WeblogsPager
    //#post(Pager getWeblogsByLetterPager(String, int, int)): return_value.length == length
    //#post(Pager getWeblogsByLetterPager(String, int, int)): (soft) return_value.length <= 4_294_967_294
    //#post(Pager getWeblogsByLetterPager(String, int, int)): return_value.letter == One-of{letter, null}
    //#post(Pager getWeblogsByLetterPager(String, int, int)): init'ed(return_value.letter)
    //#post(Pager getWeblogsByLetterPager(String, int, int)): init'ed(return_value.locale)
    //#post(Pager getWeblogsByLetterPager(String, int, int)): init'ed(return_value.more)
    //#post(Pager getWeblogsByLetterPager(String, int, int)): return_value.page == One-of{0, this.pageNum}
    //#post(Pager getWeblogsByLetterPager(String, int, int)): return_value.page >= 0
    //#post(Pager getWeblogsByLetterPager(String, int, int)): return_value.sinceDays == sinceDays
    //#post(Pager getWeblogsByLetterPager(String, int, int)): (soft) return_value.sinceDays <= 2_147_483_648
    //#post(Pager getWeblogsByLetterPager(String, int, int)): init'ed(return_value.url)
    //#post(Pager getWeblogsByLetterPager(String, int, int)): return_value.urlStrategy == this.urlStrategy
    //#post(Pager getWeblogsByLetterPager(String, int, int)): return_value.urlStrategy != null
    //#post(Pager getWeblogsByLetterPager(String, int, int)): return_value.weblogs == &new ArrayList(getItems#1)
    //#post(Pager getWeblogsByLetterPager(String, int, int)): length*return_value.page in -2_147_483_648..4_294_967_295
    //#unanalyzed(Pager getWeblogsByLetterPager(String, int, int)): Effects-of-calling:getPage
    //#unanalyzed(Pager getWeblogsByLetterPager(String, int, int)): Effects-of-calling:org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager
    //#unanalyzed(Pager getWeblogsByLetterPager(String, int, int)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(Pager getWeblogsByLetterPager(String, int, int)): Effects-of-calling:java.util.Calendar:getInstance
    //#unanalyzed(Pager getWeblogsByLetterPager(String, int, int)): Effects-of-calling:java.util.Date
    //#unanalyzed(Pager getWeblogsByLetterPager(String, int, int)): Effects-of-calling:java.util.Calendar:setTime
    //#unanalyzed(Pager getWeblogsByLetterPager(String, int, int)): Effects-of-calling:java.util.Calendar:add
    //#unanalyzed(Pager getWeblogsByLetterPager(String, int, int)): Effects-of-calling:java.util.Calendar:getTime
    //#unanalyzed(Pager getWeblogsByLetterPager(String, int, int)): Effects-of-calling:org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger
    //#unanalyzed(Pager getWeblogsByLetterPager(String, int, int)): Effects-of-calling:org.apache.roller.weblogger.business.Weblogger:getUserManager
    //#unanalyzed(Pager getWeblogsByLetterPager(String, int, int)): Effects-of-calling:org.apache.roller.weblogger.business.UserManager:getWebsites
    //#unanalyzed(Pager getWeblogsByLetterPager(String, int, int)): Effects-of-calling:java.lang.String:charAt
    //#unanalyzed(Pager getWeblogsByLetterPager(String, int, int)): Effects-of-calling:org.apache.roller.weblogger.business.UserManager:getWeblogsByLetter
    //#unanalyzed(Pager getWeblogsByLetterPager(String, int, int)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(Pager getWeblogsByLetterPager(String, int, int)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(Pager getWeblogsByLetterPager(String, int, int)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(Pager getWeblogsByLetterPager(String, int, int)): Effects-of-calling:java.util.List:add
    //#unanalyzed(Pager getWeblogsByLetterPager(String, int, int)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(Pager getWeblogsByLetterPager(String, int, int)): Effects-of-calling:org.apache.commons.logging.Log:error
    //#test_vector(Pager getWeblogsByLetterPager(String, int, int)): letter: Addr_Set{null}, Inverse{null}
    //#test_vector(Pager getWeblogsByLetterPager(String, int, int)): org.apache.commons.lang.StringUtils:isEmpty(...)@264: {0}, {1}
                weblogRequest.getLocale(), pageLink, 
                null, null, null, null, 0, false);
        
        if(letter != null && StringUtils.isEmpty(letter)) {
    //#SiteModel.java:264: Warning: method not available
    //#    -- call on bool org.apache.commons.lang.StringUtils:isEmpty(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Pager getWeblogsByLetterPager(String, int, int)
    //#    unanalyzed callee: bool org.apache.commons.lang.StringUtils:isEmpty(String)
            letter = null;
        }
        
        return new WeblogsPager(
    //#SiteModel.java:268: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.ui.rendering.util.WeblogRequest:getLocale()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Pager getWeblogsByLetterPager(String, int, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.ui.rendering.util.WeblogRequest:getLocale()
    //#SiteModel.java:268: end of method: Pager org.apache.roller.weblogger.ui.rendering.model.SiteModel.getWeblogsByLetterPager(String, int, int)
            urlStrategy,
            pagerUrl,
            letter,
            weblogRequest.getLocale(),
            sinceDays,
            pageNum, 
            length);
    }   
    
    //--------------------------------------------------- User/weblog directory 

    /**
     * Get map with 26 entries, one for each letter A-Z and
     * containing integers reflecting the number of users whose
     * names start with each letter.
     */
    public Map getUserNameLetterMap() {
        Map results = new HashMap();
    //#SiteModel.java:286: method: Map org.apache.roller.weblogger.ui.rendering.model.SiteModel.getUserNameLetterMap()
    //#input(Map getUserNameLetterMap()): log
    //#output(Map getUserNameLetterMap()): new HashMap(getUserNameLetterMap#1) num objects
    //#output(Map getUserNameLetterMap()): return_value
    //#new obj(Map getUserNameLetterMap()): new HashMap(getUserNameLetterMap#1)
    //#pre[1] (Map getUserNameLetterMap()): (soft) log != null
    //#presumption(Map getUserNameLetterMap()): org.apache.roller.weblogger.business.Weblogger:getUserManager(...)@289 != null
    //#presumption(Map getUserNameLetterMap()): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@288 != null
    //#post(Map getUserNameLetterMap()): init'ed(return_value)
    //#post(Map getUserNameLetterMap()): new HashMap(getUserNameLetterMap#1) num objects == 1
        try {            
            Weblogger roller = WebloggerFactory.getWeblogger();
    //#SiteModel.java:288: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Map getUserNameLetterMap()
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
            UserManager umgr = roller.getUserManager();
    //#SiteModel.java:289: Warning: method not available
    //#    -- call on UserManager org.apache.roller.weblogger.business.Weblogger:getUserManager()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Map getUserNameLetterMap()
    //#    unanalyzed callee: UserManager org.apache.roller.weblogger.business.Weblogger:getUserManager()
            results = umgr.getUserNameLetterMap();
    //#SiteModel.java:290: Warning: method not available
    //#    -- call on Map org.apache.roller.weblogger.business.UserManager:getUserNameLetterMap()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Map getUserNameLetterMap()
    //#    unanalyzed callee: Map org.apache.roller.weblogger.business.UserManager:getUserNameLetterMap()
        } catch (Exception e) {
            log.error("ERROR: fetching username letter map", e);
    //#SiteModel.java:292: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Map getUserNameLetterMap()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
        }
        return results;
    //#SiteModel.java:294: end of method: Map org.apache.roller.weblogger.ui.rendering.model.SiteModel.getUserNameLetterMap()
    }
    
    
    /**
     * Get map with 26 entries, one for each letter A-Z and
     * containing integers reflecting the number of weblogs whose
     * names start with each letter.
     */
    public Map getWeblogHandleLetterMap() {
        Map results = new HashMap();
    //#SiteModel.java:304: method: Map org.apache.roller.weblogger.ui.rendering.model.SiteModel.getWeblogHandleLetterMap()
    //#input(Map getWeblogHandleLetterMap()): log
    //#output(Map getWeblogHandleLetterMap()): new HashMap(getWeblogHandleLetterMap#1) num objects
    //#output(Map getWeblogHandleLetterMap()): return_value
    //#new obj(Map getWeblogHandleLetterMap()): new HashMap(getWeblogHandleLetterMap#1)
    //#pre[1] (Map getWeblogHandleLetterMap()): (soft) log != null
    //#presumption(Map getWeblogHandleLetterMap()): org.apache.roller.weblogger.business.Weblogger:getUserManager(...)@307 != null
    //#presumption(Map getWeblogHandleLetterMap()): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@306 != null
    //#post(Map getWeblogHandleLetterMap()): init'ed(return_value)
    //#post(Map getWeblogHandleLetterMap()): new HashMap(getWeblogHandleLetterMap#1) num objects == 1
        try {            
            Weblogger roller = WebloggerFactory.getWeblogger();
    //#SiteModel.java:306: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Map getWeblogHandleLetterMap()
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
            UserManager umgr = roller.getUserManager();
    //#SiteModel.java:307: Warning: method not available
    //#    -- call on UserManager org.apache.roller.weblogger.business.Weblogger:getUserManager()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Map getWeblogHandleLetterMap()
    //#    unanalyzed callee: UserManager org.apache.roller.weblogger.business.Weblogger:getUserManager()
            results = umgr.getWeblogHandleLetterMap();
    //#SiteModel.java:308: Warning: method not available
    //#    -- call on Map org.apache.roller.weblogger.business.UserManager:getWeblogHandleLetterMap()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Map getWeblogHandleLetterMap()
    //#    unanalyzed callee: Map org.apache.roller.weblogger.business.UserManager:getWeblogHandleLetterMap()
        } catch (Exception e) {
            log.error("ERROR: fetching weblog handle letter map", e);
    //#SiteModel.java:310: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: Map getWeblogHandleLetterMap()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
        }
        return results;
    //#SiteModel.java:312: end of method: Map org.apache.roller.weblogger.ui.rendering.model.SiteModel.getWeblogHandleLetterMap()
    }
    

    /** 
     * Return list of weblogs that user belongs to.
     */
    public List getUsersWeblogs(String userName) {
        List results = new ArrayList();
    //#SiteModel.java:320: method: List org.apache.roller.weblogger.ui.rendering.model.SiteModel.getUsersWeblogs(String)
    //#input(List getUsersWeblogs(String)): log
    //#input(List getUsersWeblogs(String)): this
    //#input(List getUsersWeblogs(String)): userName
    //#output(List getUsersWeblogs(String)): new ArrayList(getUsersWeblogs#1) num objects
    //#output(List getUsersWeblogs(String)): return_value
    //#new obj(List getUsersWeblogs(String)): new ArrayList(getUsersWeblogs#1)
    //#pre[1] (List getUsersWeblogs(String)): (soft) log != null
    //#presumption(List getUsersWeblogs(String)): java.util.Iterator:next(...)@327 != null
    //#presumption(List getUsersWeblogs(String)): org.apache.roller.weblogger.business.UserManager:getAllPermissions(...)@325 != null
    //#presumption(List getUsersWeblogs(String)): org.apache.roller.weblogger.business.Weblogger:getUserManager(...)@323 != null
    //#presumption(List getUsersWeblogs(String)): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@322 != null
    //#post(List getUsersWeblogs(String)): return_value == &new ArrayList(getUsersWeblogs#1)
    //#post(List getUsersWeblogs(String)): new ArrayList(getUsersWeblogs#1) num objects == 1
        try {            
            Weblogger roller = WebloggerFactory.getWeblogger();
    //#SiteModel.java:322: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getUsersWeblogs(String)
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
            UserManager umgr = roller.getUserManager();
    //#SiteModel.java:323: Warning: method not available
    //#    -- call on UserManager org.apache.roller.weblogger.business.Weblogger:getUserManager()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getUsersWeblogs(String)
    //#    unanalyzed callee: UserManager org.apache.roller.weblogger.business.Weblogger:getUserManager()
            User user = umgr.getUserByUserName(userName);
    //#SiteModel.java:324: Warning: method not available
    //#    -- call on User org.apache.roller.weblogger.business.UserManager:getUserByUserName(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getUsersWeblogs(String)
    //#    unanalyzed callee: User org.apache.roller.weblogger.business.UserManager:getUserByUserName(String)
            List perms = umgr.getAllPermissions(user);
    //#SiteModel.java:325: Warning: method not available
    //#    -- call on List org.apache.roller.weblogger.business.UserManager:getAllPermissions(User)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getUsersWeblogs(String)
    //#    unanalyzed callee: List org.apache.roller.weblogger.business.UserManager:getAllPermissions(User)
            for (Iterator it = perms.iterator(); it.hasNext();) {
                WeblogPermission perm = (WeblogPermission) it.next();
                results.add(WeblogWrapper.wrap(perm.getWebsite(), urlStrategy));
    //#SiteModel.java:328: Warning: method not available
    //#    -- call on Weblog org.apache.roller.weblogger.pojos.WeblogPermission:getWebsite()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getUsersWeblogs(String)
    //#    unanalyzed callee: Weblog org.apache.roller.weblogger.pojos.WeblogPermission:getWebsite()
    //#SiteModel.java:328: ?use of default init
    //#    init'ed(this.urlStrategy)
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getUsersWeblogs(String)
    //#    basic block: bb_4
    //#    assertion: init'ed(this.urlStrategy)
    //#    VN: this.urlStrategy
    //#    Expected: Univ-VN-Set
    //#    Bad: {Invalid}
    //#    Attribs:  Ptr  Bad only invalid
            }
        } catch (Exception e) {
            log.error("ERROR: fetching weblog list", e);
    //#SiteModel.java:331: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getUsersWeblogs(String)
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
        }
        return results;
    //#SiteModel.java:333: end of method: List org.apache.roller.weblogger.ui.rendering.model.SiteModel.getUsersWeblogs(String)
    }
    
    
    /** 
     * Return list of users that belong to website.
     */
    public List getWeblogsUsers(String handle) {
        List results = new ArrayList();
    //#SiteModel.java:341: method: List org.apache.roller.weblogger.ui.rendering.model.SiteModel.getWeblogsUsers(String)
    //#input(List getWeblogsUsers(String)): handle
    //#input(List getWeblogsUsers(String)): log
    //#output(List getWeblogsUsers(String)): new ArrayList(getWeblogsUsers#1) num objects
    //#output(List getWeblogsUsers(String)): return_value
    //#new obj(List getWeblogsUsers(String)): new ArrayList(getWeblogsUsers#1)
    //#pre[2] (List getWeblogsUsers(String)): (soft) log != null
    //#presumption(List getWeblogsUsers(String)): java.util.Iterator:next(...)@348 != null
    //#presumption(List getWeblogsUsers(String)): org.apache.roller.weblogger.business.UserManager:getAllPermissions(...)@346 != null
    //#presumption(List getWeblogsUsers(String)): org.apache.roller.weblogger.business.Weblogger:getUserManager(...)@344 != null
    //#presumption(List getWeblogsUsers(String)): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@343 != null
    //#post(List getWeblogsUsers(String)): return_value == &new ArrayList(getWeblogsUsers#1)
    //#post(List getWeblogsUsers(String)): new ArrayList(getWeblogsUsers#1) num objects == 1
        try {            
            Weblogger roller = WebloggerFactory.getWeblogger();
    //#SiteModel.java:343: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getWeblogsUsers(String)
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
            UserManager umgr = roller.getUserManager();
    //#SiteModel.java:344: Warning: method not available
    //#    -- call on UserManager org.apache.roller.weblogger.business.Weblogger:getUserManager()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getWeblogsUsers(String)
    //#    unanalyzed callee: UserManager org.apache.roller.weblogger.business.Weblogger:getUserManager()
            Weblog website = umgr.getWebsiteByHandle(handle);
    //#SiteModel.java:345: Warning: method not available
    //#    -- call on Weblog org.apache.roller.weblogger.business.UserManager:getWebsiteByHandle(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getWeblogsUsers(String)
    //#    unanalyzed callee: Weblog org.apache.roller.weblogger.business.UserManager:getWebsiteByHandle(String)
            List perms = umgr.getAllPermissions(website);
    //#SiteModel.java:346: Warning: method not available
    //#    -- call on List org.apache.roller.weblogger.business.UserManager:getAllPermissions(Weblog)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getWeblogsUsers(String)
    //#    unanalyzed callee: List org.apache.roller.weblogger.business.UserManager:getAllPermissions(Weblog)
            for (Iterator it = perms.iterator(); it.hasNext();) {
                WeblogPermission perm = (WeblogPermission) it.next();
                results.add(UserWrapper.wrap(perm.getUser()));
    //#SiteModel.java:349: Warning: method not available
    //#    -- call on User org.apache.roller.weblogger.pojos.WeblogPermission:getUser()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getWeblogsUsers(String)
    //#    unanalyzed callee: User org.apache.roller.weblogger.pojos.WeblogPermission:getUser()
    //#SiteModel.java:349: Warning: method not available
    //#    -- call on UserWrapper org.apache.roller.weblogger.pojos.wrapper.UserWrapper:wrap(User)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getWeblogsUsers(String)
    //#    unanalyzed callee: UserWrapper org.apache.roller.weblogger.pojos.wrapper.UserWrapper:wrap(User)
            }
        } catch (Exception e) {
            log.error("ERROR: fetching weblog list", e);
    //#SiteModel.java:352: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getWeblogsUsers(String)
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
        }
        return results;
    //#SiteModel.java:354: end of method: List org.apache.roller.weblogger.ui.rendering.model.SiteModel.getWeblogsUsers(String)
    }
    
    
    
    /** Get User object by username */
    public UserWrapper getUser(String username) {
        UserWrapper wrappedUser = null;
    //#SiteModel.java:361: method: UserWrapper org.apache.roller.weblogger.ui.rendering.model.SiteModel.getUser(String)
    //#input(UserWrapper getUser(String)): java.lang.Boolean.TRUE
    //#input(UserWrapper getUser(String)): log
    //#input(UserWrapper getUser(String)): username
    //#output(UserWrapper getUser(String)): return_value
    //#pre[1] (UserWrapper getUser(String)): (soft) log != null
    //#presumption(UserWrapper getUser(String)): init'ed(java.lang.Boolean.TRUE)
    //#presumption(UserWrapper getUser(String)): org.apache.roller.weblogger.business.Weblogger:getUserManager(...)@364 != null
    //#presumption(UserWrapper getUser(String)): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@363 != null
    //#post(UserWrapper getUser(String)): init'ed(return_value)
        try {            
            Weblogger roller = WebloggerFactory.getWeblogger();
    //#SiteModel.java:363: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: UserWrapper getUser(String)
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
            UserManager umgr = roller.getUserManager();
    //#SiteModel.java:364: Warning: method not available
    //#    -- call on UserManager org.apache.roller.weblogger.business.Weblogger:getUserManager()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: UserWrapper getUser(String)
    //#    unanalyzed callee: UserManager org.apache.roller.weblogger.business.Weblogger:getUserManager()
            User user = umgr.getUserByUserName(username, Boolean.TRUE);
    //#SiteModel.java:365: Warning: method not available
    //#    -- call on User org.apache.roller.weblogger.business.UserManager:getUserByUserName(String, Boolean)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: UserWrapper getUser(String)
    //#    unanalyzed callee: User org.apache.roller.weblogger.business.UserManager:getUserByUserName(String, Boolean)
            wrappedUser = UserWrapper.wrap(user);
    //#SiteModel.java:366: Warning: method not available
    //#    -- call on UserWrapper org.apache.roller.weblogger.pojos.wrapper.UserWrapper:wrap(User)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: UserWrapper getUser(String)
    //#    unanalyzed callee: UserWrapper org.apache.roller.weblogger.pojos.wrapper.UserWrapper:wrap(User)
        } catch (Exception e) {
            log.error("ERROR: fetching users by letter", e);
    //#SiteModel.java:368: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: UserWrapper getUser(String)
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
        }
        return wrappedUser;
    //#SiteModel.java:370: end of method: UserWrapper org.apache.roller.weblogger.ui.rendering.model.SiteModel.getUser(String)
    }
    
    
    /** Get Website object by handle */
    public WeblogWrapper getWeblog(String handle) {
        WeblogWrapper wrappedWebsite = null;
    //#SiteModel.java:376: method: WeblogWrapper org.apache.roller.weblogger.ui.rendering.model.SiteModel.getWeblog(String)
    //#input(WeblogWrapper getWeblog(String)): handle
    //#input(WeblogWrapper getWeblog(String)): log
    //#input(WeblogWrapper getWeblog(String)): this
    //#output(WeblogWrapper getWeblog(String)): new WeblogWrapper(wrap#1) num objects
    //#output(WeblogWrapper getWeblog(String)): new WeblogWrapper(wrap#1).__Tag
    //#output(WeblogWrapper getWeblog(String)): new WeblogWrapper(wrap#1).pojo
    //#output(WeblogWrapper getWeblog(String)): new WeblogWrapper(wrap#1).urlStrategy
    //#output(WeblogWrapper getWeblog(String)): return_value
    //#new obj(WeblogWrapper getWeblog(String)): new WeblogWrapper(wrap#1)
    //#pre[2] (WeblogWrapper getWeblog(String)): (soft) log != null
    //#presumption(WeblogWrapper getWeblog(String)): org.apache.roller.weblogger.business.Weblogger:getUserManager(...)@379 != null
    //#presumption(WeblogWrapper getWeblog(String)): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@378 != null
    //#post(WeblogWrapper getWeblog(String)): return_value == One-of{&new WeblogWrapper(wrap#1), null}
    //#post(WeblogWrapper getWeblog(String)): return_value in Addr_Set{null,&new WeblogWrapper(wrap#1)}
    //#post(WeblogWrapper getWeblog(String)): new WeblogWrapper(wrap#1) num objects <= 1
    //#post(WeblogWrapper getWeblog(String)): new WeblogWrapper(wrap#1).__Tag == org/apache/roller/weblogger/pojos/wrapper/WeblogWrapper
    //#post(WeblogWrapper getWeblog(String)): new WeblogWrapper(wrap#1).pojo != null
    //#post(WeblogWrapper getWeblog(String)): new WeblogWrapper(wrap#1).urlStrategy == this.urlStrategy
    //#post(WeblogWrapper getWeblog(String)): init'ed(new WeblogWrapper(wrap#1).urlStrategy)
        try {            
            Weblogger roller = WebloggerFactory.getWeblogger();
    //#SiteModel.java:378: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: WeblogWrapper getWeblog(String)
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
            UserManager umgr = roller.getUserManager();
    //#SiteModel.java:379: Warning: method not available
    //#    -- call on UserManager org.apache.roller.weblogger.business.Weblogger:getUserManager()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: WeblogWrapper getWeblog(String)
    //#    unanalyzed callee: UserManager org.apache.roller.weblogger.business.Weblogger:getUserManager()
            Weblog website = umgr.getWebsiteByHandle(handle);
    //#SiteModel.java:380: Warning: method not available
    //#    -- call on Weblog org.apache.roller.weblogger.business.UserManager:getWebsiteByHandle(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: WeblogWrapper getWeblog(String)
    //#    unanalyzed callee: Weblog org.apache.roller.weblogger.business.UserManager:getWebsiteByHandle(String)
            wrappedWebsite = WeblogWrapper.wrap(website, urlStrategy);
    //#SiteModel.java:381: ?use of default init
    //#    init'ed(this.urlStrategy)
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: WeblogWrapper getWeblog(String)
    //#    basic block: bb_2
    //#    assertion: init'ed(this.urlStrategy)
    //#    VN: this.urlStrategy
    //#    Expected: Univ-VN-Set
    //#    Bad: {Invalid}
    //#    Attribs:  Ptr  Bad only invalid
        } catch (Exception e) {
            log.error("ERROR: fetching users by letter", e);
    //#SiteModel.java:383: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: WeblogWrapper getWeblog(String)
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
        }
        return wrappedWebsite;
    //#SiteModel.java:385: end of method: WeblogWrapper org.apache.roller.weblogger.ui.rendering.model.SiteModel.getWeblog(String)
    }
    
        
    //------------------------------------------------------- Small collections
    
    /*
     * Get most collection of Website objects,
     * in reverse chrono order by creationDate.
     * @param offset   Offset into results (for paging)
     * @param len      Max number of results to return
     */
    public List getNewWeblogs(int sinceDays, int length) {
        List results = new ArrayList();
    //#SiteModel.java:398: method: List org.apache.roller.weblogger.ui.rendering.model.SiteModel.getNewWeblogs(int, int)
    //#input(List getNewWeblogs(int, int)): java.lang.Boolean.TRUE
    //#input(List getNewWeblogs(int, int)): length
    //#input(List getNewWeblogs(int, int)): log
    //#input(List getNewWeblogs(int, int)): sinceDays
    //#input(List getNewWeblogs(int, int)): this
    //#output(List getNewWeblogs(int, int)): new ArrayList(getNewWeblogs#1) num objects
    //#output(List getNewWeblogs(int, int)): return_value
    //#new obj(List getNewWeblogs(int, int)): new ArrayList(getNewWeblogs#1)
    //#pre[3] (List getNewWeblogs(int, int)): sinceDays <= 2_147_483_648
    //#pre[2] (List getNewWeblogs(int, int)): (soft) log != null
    //#presumption(List getNewWeblogs(int, int)): init'ed(java.lang.Boolean.TRUE)
    //#presumption(List getNewWeblogs(int, int)): java.util.Calendar:getInstance(...)@399 != null
    //#presumption(List getNewWeblogs(int, int)): org.apache.roller.weblogger.business.UserManager:getWebsites(...)@406 != null
    //#presumption(List getNewWeblogs(int, int)): org.apache.roller.weblogger.business.Weblogger:getUserManager(...)@405 != null
    //#presumption(List getNewWeblogs(int, int)): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@404 != null
    //#post(List getNewWeblogs(int, int)): return_value == &new ArrayList(getNewWeblogs#1)
    //#post(List getNewWeblogs(int, int)): new ArrayList(getNewWeblogs#1) num objects == 1
        Calendar cal = Calendar.getInstance();
        cal.setTime(new Date());
        cal.add(Calendar.DATE, -1 * sinceDays);
        Date startDate = cal.getTime();
        try {            
            Weblogger roller = WebloggerFactory.getWeblogger();
    //#SiteModel.java:404: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getNewWeblogs(int, int)
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
            UserManager umgr = roller.getUserManager();
    //#SiteModel.java:405: Warning: method not available
    //#    -- call on UserManager org.apache.roller.weblogger.business.Weblogger:getUserManager()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getNewWeblogs(int, int)
    //#    unanalyzed callee: UserManager org.apache.roller.weblogger.business.Weblogger:getUserManager()
            List weblogs = umgr.getWebsites(
    //#SiteModel.java:406: Warning: method not available
    //#    -- call on List org.apache.roller.weblogger.business.UserManager:getWebsites(User, Boolean, Boolean, Date, Date, int, int)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getNewWeblogs(int, int)
    //#    unanalyzed callee: List org.apache.roller.weblogger.business.UserManager:getWebsites(User, Boolean, Boolean, Date, Date, int, int)
                null, Boolean.TRUE, Boolean.TRUE, startDate, null, 0, length);
            for (Iterator it = weblogs.iterator(); it.hasNext();) {
                Weblog website = (Weblog) it.next();
                results.add(WeblogWrapper.wrap(website, urlStrategy));
    //#SiteModel.java:410: ?use of default init
    //#    init'ed(this.urlStrategy)
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getNewWeblogs(int, int)
    //#    basic block: bb_4
    //#    assertion: init'ed(this.urlStrategy)
    //#    VN: this.urlStrategy
    //#    Expected: Univ-VN-Set
    //#    Bad: {Invalid}
    //#    Attribs:  Ptr  Bad only invalid
            }
        } catch (Exception e) {
            log.error("ERROR: fetching weblog list", e);
    //#SiteModel.java:413: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getNewWeblogs(int, int)
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
        }
        return results;
    //#SiteModel.java:415: end of method: List org.apache.roller.weblogger.ui.rendering.model.SiteModel.getNewWeblogs(int, int)
    }
           

    /*
     * Get most recent User objects, in reverse chrono order by creationDate.
     * @param offset   Offset into results (for paging)
     * @param len      Max number of results to return
     */
    public List getNewUsers(int sinceDays, int length) {
        List results = new ArrayList();
    //#SiteModel.java:425: method: List org.apache.roller.weblogger.ui.rendering.model.SiteModel.getNewUsers(int, int)
    //#input(List getNewUsers(int, int)): java.lang.Boolean.TRUE
    //#input(List getNewUsers(int, int)): length
    //#input(List getNewUsers(int, int)): log
    //#output(List getNewUsers(int, int)): new ArrayList(getNewUsers#1) num objects
    //#output(List getNewUsers(int, int)): return_value
    //#new obj(List getNewUsers(int, int)): new ArrayList(getNewUsers#1)
    //#pre[2] (List getNewUsers(int, int)): (soft) log != null
    //#presumption(List getNewUsers(int, int)): init'ed(java.lang.Boolean.TRUE)
    //#presumption(List getNewUsers(int, int)): org.apache.roller.weblogger.business.UserManager:getUsers(...)@429 != null
    //#presumption(List getNewUsers(int, int)): org.apache.roller.weblogger.business.Weblogger:getUserManager(...)@428 != null
    //#presumption(List getNewUsers(int, int)): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@427 != null
    //#post(List getNewUsers(int, int)): return_value == &new ArrayList(getNewUsers#1)
    //#post(List getNewUsers(int, int)): new ArrayList(getNewUsers#1) num objects == 1
        try {            
            Weblogger roller = WebloggerFactory.getWeblogger();
    //#SiteModel.java:427: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getNewUsers(int, int)
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
            UserManager umgr = roller.getUserManager();
    //#SiteModel.java:428: Warning: method not available
    //#    -- call on UserManager org.apache.roller.weblogger.business.Weblogger:getUserManager()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getNewUsers(int, int)
    //#    unanalyzed callee: UserManager org.apache.roller.weblogger.business.Weblogger:getUserManager()
            List users = umgr.getUsers(null, Boolean.TRUE, null, null, 0, length);
    //#SiteModel.java:429: Warning: method not available
    //#    -- call on List org.apache.roller.weblogger.business.UserManager:getUsers(Weblog, Boolean, Date, Date, int, int)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getNewUsers(int, int)
    //#    unanalyzed callee: List org.apache.roller.weblogger.business.UserManager:getUsers(Weblog, Boolean, Date, Date, int, int)
            for (Iterator it = users.iterator(); it.hasNext();) {
                User user = (User) it.next();
                results.add(UserWrapper.wrap(user));
    //#SiteModel.java:432: Warning: method not available
    //#    -- call on UserWrapper org.apache.roller.weblogger.pojos.wrapper.UserWrapper:wrap(User)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getNewUsers(int, int)
    //#    unanalyzed callee: UserWrapper org.apache.roller.weblogger.pojos.wrapper.UserWrapper:wrap(User)
            }
        } catch (Exception e) {
            log.error("ERROR: fetching weblog list", e);
    //#SiteModel.java:435: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getNewUsers(int, int)
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
        }
        return results;
    //#SiteModel.java:437: end of method: List org.apache.roller.weblogger.ui.rendering.model.SiteModel.getNewUsers(int, int)
    }   
    
    
    /**
     * Get list of WebsiteDisplay objects, ordered by number of hits.
     * @param sinceDays Only consider weblogs updated in the last sinceDays
     * @param len      Max number of results to return
     */
    public List getHotWeblogs(int sinceDays, int length) {
        
        List results = new ArrayList();
    //#SiteModel.java:448: method: List org.apache.roller.weblogger.ui.rendering.model.SiteModel.getHotWeblogs(int, int)
    //#input(List getHotWeblogs(int, int)): length
    //#input(List getHotWeblogs(int, int)): log
    //#input(List getHotWeblogs(int, int)): sinceDays
    //#output(List getHotWeblogs(int, int)): new ArrayList(getHotWeblogs#1) num objects
    //#output(List getHotWeblogs(int, int)): return_value
    //#new obj(List getHotWeblogs(int, int)): new ArrayList(getHotWeblogs#1)
    //#pre[2] (List getHotWeblogs(int, int)): (soft) log != null
    //#presumption(List getHotWeblogs(int, int)): java.util.Iterator:next(...)@455 != null
    //#presumption(List getHotWeblogs(int, int)): org.apache.roller.weblogger.business.WeblogManager:getHotWeblogs(...)@451 != null
    //#presumption(List getHotWeblogs(int, int)): org.apache.roller.weblogger.business.Weblogger:getWeblogManager(...)@450 != null
    //#presumption(List getHotWeblogs(int, int)): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@450 != null
    //#presumption(List getHotWeblogs(int, int)): org.apache.roller.weblogger.pojos.WeblogHitCount:getWeblog(...)@456 != null
    //#presumption(List getHotWeblogs(int, int)): org.apache.roller.weblogger.pojos.WeblogHitCount:getWeblog(...)@456 != null
    //#presumption(List getHotWeblogs(int, int)): org.apache.roller.weblogger.pojos.WeblogHitCount:getWeblog(...)@456 != null
    //#presumption(List getHotWeblogs(int, int)): org.apache.roller.weblogger.pojos.WeblogHitCount:getWeblog(...)@462 != null
    //#post(List getHotWeblogs(int, int)): return_value == &new ArrayList(getHotWeblogs#1)
    //#post(List getHotWeblogs(int, int)): new ArrayList(getHotWeblogs#1) num objects == 1
        try {
            WeblogManager mgr = WebloggerFactory.getWeblogger().getWeblogManager();
    //#SiteModel.java:450: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getHotWeblogs(int, int)
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#SiteModel.java:450: Warning: method not available
    //#    -- call on WeblogManager org.apache.roller.weblogger.business.Weblogger:getWeblogManager()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getHotWeblogs(int, int)
    //#    unanalyzed callee: WeblogManager org.apache.roller.weblogger.business.Weblogger:getWeblogManager()
            List hotBlogs = mgr.getHotWeblogs(sinceDays, 0, length);
    //#SiteModel.java:451: Warning: method not available
    //#    -- call on List org.apache.roller.weblogger.business.WeblogManager:getHotWeblogs(int, int, int)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getHotWeblogs(int, int)
    //#    unanalyzed callee: List org.apache.roller.weblogger.business.WeblogManager:getHotWeblogs(int, int, int)
            
            Iterator hitCounts = hotBlogs.iterator();
            while (hitCounts.hasNext()) {
                WeblogHitCount hitCount = (WeblogHitCount) hitCounts.next();
                StatCount statCount = new StatCount(
    //#SiteModel.java:456: Warning: method not available
    //#    -- call on Weblog org.apache.roller.weblogger.pojos.WeblogHitCount:getWeblog()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getHotWeblogs(int, int)
    //#    unanalyzed callee: Weblog org.apache.roller.weblogger.pojos.WeblogHitCount:getWeblog()
    //#SiteModel.java:456: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.pojos.Weblog:getId()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getHotWeblogs(int, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.pojos.Weblog:getId()
    //#SiteModel.java:456: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.pojos.Weblog:getHandle()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getHotWeblogs(int, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.pojos.Weblog:getHandle()
    //#SiteModel.java:456: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.pojos.Weblog:getName()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getHotWeblogs(int, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.pojos.Weblog:getName()
    //#SiteModel.java:456: Warning: method not available
    //#    -- call on int org.apache.roller.weblogger.pojos.WeblogHitCount:getDailyHits()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getHotWeblogs(int, int)
    //#    unanalyzed callee: int org.apache.roller.weblogger.pojos.WeblogHitCount:getDailyHits()
    //#SiteModel.java:456: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.pojos.StatCount(String, String, String, String, long)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getHotWeblogs(int, int)
    //#    unanalyzed callee: void org.apache.roller.weblogger.pojos.StatCount(String, String, String, String, long)
                    hitCount.getWeblog().getId(),
                    hitCount.getWeblog().getHandle(),
                    hitCount.getWeblog().getName(),
                    "statCount.weblogDayHits",
                    hitCount.getDailyHits());
                statCount.setWeblogHandle(hitCount.getWeblog().getHandle());
    //#SiteModel.java:462: Warning: method not available
    //#    -- call on Weblog org.apache.roller.weblogger.pojos.WeblogHitCount:getWeblog()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getHotWeblogs(int, int)
    //#    unanalyzed callee: Weblog org.apache.roller.weblogger.pojos.WeblogHitCount:getWeblog()
    //#SiteModel.java:462: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.pojos.Weblog:getHandle()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getHotWeblogs(int, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.pojos.Weblog:getHandle()
    //#SiteModel.java:462: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.pojos.StatCount:setWeblogHandle(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getHotWeblogs(int, int)
    //#    unanalyzed callee: void org.apache.roller.weblogger.pojos.StatCount:setWeblogHandle(String)
                results.add(statCount);              
            }
            
        } catch (Exception e) {
            log.error("ERROR: fetching hot weblog list", e);
    //#SiteModel.java:467: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getHotWeblogs(int, int)
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
        }
        
        return results;
    //#SiteModel.java:470: end of method: List org.apache.roller.weblogger.ui.rendering.model.SiteModel.getHotWeblogs(int, int)
    }
    
    
    /**
     * Get most collection of most commented websites, as StatCount objects,
     * in descending order by number of comments.
     * @param sinceDays Only consider weblogs updated in the last sinceDays
     * @param offset   Offset into results (for paging)
     * @param length   Max number of results to return
     */
    public List getMostCommentedWeblogs(int sinceDays , int length) {
        List results = new ArrayList();
    //#SiteModel.java:482: method: List org.apache.roller.weblogger.ui.rendering.model.SiteModel.getMostCommentedWeblogs(int, int)
    //#input(List getMostCommentedWeblogs(int, int)): length
    //#input(List getMostCommentedWeblogs(int, int)): log
    //#input(List getMostCommentedWeblogs(int, int)): sinceDays
    //#output(List getMostCommentedWeblogs(int, int)): new ArrayList(getMostCommentedWeblogs#1) num objects
    //#output(List getMostCommentedWeblogs(int, int)): return_value
    //#new obj(List getMostCommentedWeblogs(int, int)): new ArrayList(getMostCommentedWeblogs#1)
    //#pre[3] (List getMostCommentedWeblogs(int, int)): sinceDays <= 2_147_483_648
    //#pre[2] (List getMostCommentedWeblogs(int, int)): (soft) log != null
    //#presumption(List getMostCommentedWeblogs(int, int)): java.util.Calendar:getInstance(...)@483 != null
    //#presumption(List getMostCommentedWeblogs(int, int)): org.apache.roller.weblogger.business.Weblogger:getUserManager(...)@489 != null
    //#presumption(List getMostCommentedWeblogs(int, int)): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@488 != null
    //#post(List getMostCommentedWeblogs(int, int)): init'ed(return_value)
    //#post(List getMostCommentedWeblogs(int, int)): new ArrayList(getMostCommentedWeblogs#1) num objects == 1
        Calendar cal = Calendar.getInstance();
        cal.setTime(new Date());
        cal.add(Calendar.DATE, -1 * sinceDays);
        Date startDate = cal.getTime();
        try {            
            Weblogger roller = WebloggerFactory.getWeblogger();
    //#SiteModel.java:488: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getMostCommentedWeblogs(int, int)
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
            UserManager umgr = roller.getUserManager();
    //#SiteModel.java:489: Warning: method not available
    //#    -- call on UserManager org.apache.roller.weblogger.business.Weblogger:getUserManager()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getMostCommentedWeblogs(int, int)
    //#    unanalyzed callee: UserManager org.apache.roller.weblogger.business.Weblogger:getUserManager()
            results = umgr.getMostCommentedWebsites(
    //#SiteModel.java:490: Warning: method not available
    //#    -- call on List org.apache.roller.weblogger.business.UserManager:getMostCommentedWebsites(Date, Date, int, int)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getMostCommentedWeblogs(int, int)
    //#    unanalyzed callee: List org.apache.roller.weblogger.business.UserManager:getMostCommentedWebsites(Date, Date, int, int)
                    startDate, new Date(), 0, length);
        } catch (Exception e) {
            log.error("ERROR: fetching commented weblog list", e);
    //#SiteModel.java:493: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getMostCommentedWeblogs(int, int)
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
        }
        return results;
    //#SiteModel.java:495: end of method: List org.apache.roller.weblogger.ui.rendering.model.SiteModel.getMostCommentedWeblogs(int, int)
    }
    
    
    /**
     * Get most commented weblog entries across all weblogs, as StatCount 
     * objects, in descending order by number of comments.
     * @param sinceDays Only consider weblogs updated in the last sinceDays
     * @param cats     To limit results to list of category names
     * @param len      Max number of results to return
     */
    public List getMostCommentedWeblogEntries(
            List cats, int sinceDays, int length) {
        List results = new ArrayList();
    //#SiteModel.java:508: method: List org.apache.roller.weblogger.ui.rendering.model.SiteModel.getMostCommentedWeblogEntries(List, int, int)
    //#input(List getMostCommentedWeblogEntries(List, int, int)): length
    //#input(List getMostCommentedWeblogEntries(List, int, int)): log
    //#input(List getMostCommentedWeblogEntries(List, int, int)): sinceDays
    //#output(List getMostCommentedWeblogEntries(List, int, int)): new ArrayList(getMostCommentedWeblogEntries#1) num objects
    //#output(List getMostCommentedWeblogEntries(List, int, int)): return_value
    //#new obj(List getMostCommentedWeblogEntries(List, int, int)): new ArrayList(getMostCommentedWeblogEntries#1)
    //#pre[3] (List getMostCommentedWeblogEntries(List, int, int)): sinceDays <= 2_147_483_648
    //#pre[2] (List getMostCommentedWeblogEntries(List, int, int)): (soft) log != null
    //#presumption(List getMostCommentedWeblogEntries(List, int, int)): java.util.Calendar:getInstance(...)@509 != null
    //#presumption(List getMostCommentedWeblogEntries(List, int, int)): org.apache.roller.weblogger.business.Weblogger:getWeblogManager(...)@515 != null
    //#presumption(List getMostCommentedWeblogEntries(List, int, int)): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@514 != null
    //#post(List getMostCommentedWeblogEntries(List, int, int)): init'ed(return_value)
    //#post(List getMostCommentedWeblogEntries(List, int, int)): new ArrayList(getMostCommentedWeblogEntries#1) num objects == 1
        Calendar cal = Calendar.getInstance();
        cal.setTime(new Date());
        cal.add(Calendar.DATE, -1 * sinceDays);
        Date startDate = cal.getTime();
        try {            
            Weblogger roller = WebloggerFactory.getWeblogger();
    //#SiteModel.java:514: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getMostCommentedWeblogEntries(List, int, int)
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
            WeblogManager wmgr = roller.getWeblogManager();
    //#SiteModel.java:515: Warning: method not available
    //#    -- call on WeblogManager org.apache.roller.weblogger.business.Weblogger:getWeblogManager()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getMostCommentedWeblogEntries(List, int, int)
    //#    unanalyzed callee: WeblogManager org.apache.roller.weblogger.business.Weblogger:getWeblogManager()
            results = wmgr.getMostCommentedWeblogEntries(
    //#SiteModel.java:516: Warning: method not available
    //#    -- call on List org.apache.roller.weblogger.business.WeblogManager:getMostCommentedWeblogEntries(Weblog, Date, Date, int, int)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getMostCommentedWeblogEntries(List, int, int)
    //#    unanalyzed callee: List org.apache.roller.weblogger.business.WeblogManager:getMostCommentedWeblogEntries(Weblog, Date, Date, int, int)
                    null, startDate, new Date(), 0, length);
        } catch (Exception e) {
            log.error("ERROR: fetching commented weblog entries list", e);
    //#SiteModel.java:519: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getMostCommentedWeblogEntries(List, int, int)
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
        }
        return results;
    //#SiteModel.java:521: end of method: List org.apache.roller.weblogger.ui.rendering.model.SiteModel.getMostCommentedWeblogEntries(List, int, int)
    }
    
    /**
     * Get pinned entries.
     * @param sinceDays Only consider weblogs updated in the last sinceDays
     * @param length    Max number of results to return
     */
    public List getPinnedWeblogEntries(int length) {
        List results = new ArrayList();
    //#SiteModel.java:530: method: List org.apache.roller.weblogger.ui.rendering.model.SiteModel.getPinnedWeblogEntries(int)
    //#input(List getPinnedWeblogEntries(int)): length
    //#input(List getPinnedWeblogEntries(int)): log
    //#input(List getPinnedWeblogEntries(int)): this
    //#output(List getPinnedWeblogEntries(int)): new ArrayList(getPinnedWeblogEntries#1) num objects
    //#output(List getPinnedWeblogEntries(int)): return_value
    //#new obj(List getPinnedWeblogEntries(int)): new ArrayList(getPinnedWeblogEntries#1)
    //#pre[2] (List getPinnedWeblogEntries(int)): (soft) log != null
    //#presumption(List getPinnedWeblogEntries(int)): org.apache.roller.weblogger.business.WeblogManager:getWeblogEntriesPinnedToMain(...)@534 != null
    //#presumption(List getPinnedWeblogEntries(int)): org.apache.roller.weblogger.business.Weblogger:getWeblogManager(...)@533 != null
    //#presumption(List getPinnedWeblogEntries(int)): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@532 != null
    //#post(List getPinnedWeblogEntries(int)): return_value == &new ArrayList(getPinnedWeblogEntries#1)
    //#post(List getPinnedWeblogEntries(int)): new ArrayList(getPinnedWeblogEntries#1) num objects == 1
        try {            
            Weblogger roller = WebloggerFactory.getWeblogger();
    //#SiteModel.java:532: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getPinnedWeblogEntries(int)
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
            WeblogManager wmgr = roller.getWeblogManager();
    //#SiteModel.java:533: Warning: method not available
    //#    -- call on WeblogManager org.apache.roller.weblogger.business.Weblogger:getWeblogManager()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getPinnedWeblogEntries(int)
    //#    unanalyzed callee: WeblogManager org.apache.roller.weblogger.business.Weblogger:getWeblogManager()
            List weblogs = wmgr.getWeblogEntriesPinnedToMain(new Integer(length));
    //#SiteModel.java:534: Warning: method not available
    //#    -- call on List org.apache.roller.weblogger.business.WeblogManager:getWeblogEntriesPinnedToMain(Integer)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getPinnedWeblogEntries(int)
    //#    unanalyzed callee: List org.apache.roller.weblogger.business.WeblogManager:getWeblogEntriesPinnedToMain(Integer)
            for (Iterator it = weblogs.iterator(); it.hasNext();) {
                WeblogEntry entry = (WeblogEntry) it.next();
                results.add(WeblogEntryWrapper.wrap(entry, urlStrategy));
    //#SiteModel.java:537: ?use of default init
    //#    init'ed(this.urlStrategy)
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getPinnedWeblogEntries(int)
    //#    basic block: bb_4
    //#    assertion: init'ed(this.urlStrategy)
    //#    VN: this.urlStrategy
    //#    Expected: Univ-VN-Set
    //#    Bad: {Invalid}
    //#    Attribs:  Ptr  Bad only invalid
            }
        } catch (Exception e) {
            log.error("ERROR: fetching pinned weblog entries", e);
    //#SiteModel.java:540: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getPinnedWeblogEntries(int)
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
        }
        return results;
    //#SiteModel.java:542: end of method: List org.apache.roller.weblogger.ui.rendering.model.SiteModel.getPinnedWeblogEntries(int)
    }
        
    /**
     * 
     * @param sinceDays
     * @param length
     * @return
     */
    public List getPopularTags(int sinceDays, int length) {
        List results = new ArrayList();
    //#SiteModel.java:552: method: List org.apache.roller.weblogger.ui.rendering.model.SiteModel.getPopularTags(int, int)
    //#input(List getPopularTags(int, int)): length
    //#input(List getPopularTags(int, int)): log
    //#input(List getPopularTags(int, int)): sinceDays
    //#output(List getPopularTags(int, int)): new ArrayList(getPopularTags#1) num objects
    //#output(List getPopularTags(int, int)): return_value
    //#new obj(List getPopularTags(int, int)): new ArrayList(getPopularTags#1)
    //#pre[3] (List getPopularTags(int, int)): sinceDays <= 2_147_483_648
    //#pre[2] (List getPopularTags(int, int)): (soft) log != null
    //#presumption(List getPopularTags(int, int)): java.util.Calendar:getInstance(...)@555 != null
    //#presumption(List getPopularTags(int, int)): org.apache.roller.weblogger.business.Weblogger:getWeblogManager(...)@563 != null
    //#presumption(List getPopularTags(int, int)): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@562 != null
    //#post(List getPopularTags(int, int)): init'ed(return_value)
    //#post(List getPopularTags(int, int)): new ArrayList(getPopularTags#1) num objects == 1
    //#test_vector(List getPopularTags(int, int)): sinceDays: {-2_147_483_648..0}, {1..2_147_483_648}
        Date startDate = null;
        if(sinceDays > 0) {
            Calendar cal = Calendar.getInstance();
            cal.setTime(new Date());
            cal.add(Calendar.DATE, -1 * sinceDays);        
            startDate = cal.getTime();     
        }
        
        try {            
            Weblogger roller = WebloggerFactory.getWeblogger();
    //#SiteModel.java:562: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getPopularTags(int, int)
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
            WeblogManager wmgr = roller.getWeblogManager();
    //#SiteModel.java:563: Warning: method not available
    //#    -- call on WeblogManager org.apache.roller.weblogger.business.Weblogger:getWeblogManager()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getPopularTags(int, int)
    //#    unanalyzed callee: WeblogManager org.apache.roller.weblogger.business.Weblogger:getWeblogManager()
            results = wmgr.getPopularTags(null, startDate, length);
    //#SiteModel.java:564: Warning: method not available
    //#    -- call on List org.apache.roller.weblogger.business.WeblogManager:getPopularTags(Weblog, Date, int)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getPopularTags(int, int)
    //#    unanalyzed callee: List org.apache.roller.weblogger.business.WeblogManager:getPopularTags(Weblog, Date, int)
        } catch (Exception e) {
            log.error("ERROR: fetching site tags list", e);
    //#SiteModel.java:566: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: List getPopularTags(int, int)
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
        }
        return results;
    //#SiteModel.java:568: end of method: List org.apache.roller.weblogger.ui.rendering.model.SiteModel.getPopularTags(int, int)
    }   
    
    
    public long getCommentCount() {
        long count = 0;
    //#SiteModel.java:573: method: long org.apache.roller.weblogger.ui.rendering.model.SiteModel.getCommentCount()
    //#input(long getCommentCount()): log
    //#output(long getCommentCount()): return_value
    //#pre[1] (long getCommentCount()): (soft) log != null
    //#presumption(long getCommentCount()): org.apache.roller.weblogger.business.Weblogger:getWeblogManager(...)@576 != null
    //#presumption(long getCommentCount()): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@575 != null
    //#post(long getCommentCount()): init'ed(return_value)
        try {
            Weblogger roller = WebloggerFactory.getWeblogger();
    //#SiteModel.java:575: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: long getCommentCount()
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
            WeblogManager mgr = roller.getWeblogManager();
    //#SiteModel.java:576: Warning: method not available
    //#    -- call on WeblogManager org.apache.roller.weblogger.business.Weblogger:getWeblogManager()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: long getCommentCount()
    //#    unanalyzed callee: WeblogManager org.apache.roller.weblogger.business.Weblogger:getWeblogManager()
            count = mgr.getCommentCount();            
    //#SiteModel.java:577: Warning: method not available
    //#    -- call on long org.apache.roller.weblogger.business.WeblogManager:getCommentCount()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: long getCommentCount()
    //#    unanalyzed callee: long org.apache.roller.weblogger.business.WeblogManager:getCommentCount()
        } catch (WebloggerException e) {
            log.error("Error getting comment count for site ", e);
    //#SiteModel.java:579: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: long getCommentCount()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
        }
        return count;
    //#SiteModel.java:581: end of method: long org.apache.roller.weblogger.ui.rendering.model.SiteModel.getCommentCount()
    }
    
    
    public long getEntryCount() {
        long count = 0;
    //#SiteModel.java:586: method: long org.apache.roller.weblogger.ui.rendering.model.SiteModel.getEntryCount()
    //#input(long getEntryCount()): log
    //#output(long getEntryCount()): return_value
    //#pre[1] (long getEntryCount()): (soft) log != null
    //#presumption(long getEntryCount()): org.apache.roller.weblogger.business.Weblogger:getWeblogManager(...)@589 != null
    //#presumption(long getEntryCount()): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@588 != null
    //#post(long getEntryCount()): init'ed(return_value)
        try {
            Weblogger roller = WebloggerFactory.getWeblogger();
    //#SiteModel.java:588: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: long getEntryCount()
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
            WeblogManager mgr = roller.getWeblogManager();
    //#SiteModel.java:589: Warning: method not available
    //#    -- call on WeblogManager org.apache.roller.weblogger.business.Weblogger:getWeblogManager()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: long getEntryCount()
    //#    unanalyzed callee: WeblogManager org.apache.roller.weblogger.business.Weblogger:getWeblogManager()
            count = mgr.getEntryCount();            
    //#SiteModel.java:590: Warning: method not available
    //#    -- call on long org.apache.roller.weblogger.business.WeblogManager:getEntryCount()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: long getEntryCount()
    //#    unanalyzed callee: long org.apache.roller.weblogger.business.WeblogManager:getEntryCount()
        } catch (WebloggerException e) {
            log.error("Error getting entry count for site", e);
    //#SiteModel.java:592: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: long getEntryCount()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
        }
        return count;
    //#SiteModel.java:594: end of method: long org.apache.roller.weblogger.ui.rendering.model.SiteModel.getEntryCount()
    }
    
    
    public long getWeblogCount() {
        long count = 0;
    //#SiteModel.java:599: method: long org.apache.roller.weblogger.ui.rendering.model.SiteModel.getWeblogCount()
    //#input(long getWeblogCount()): log
    //#output(long getWeblogCount()): return_value
    //#pre[1] (long getWeblogCount()): (soft) log != null
    //#presumption(long getWeblogCount()): org.apache.roller.weblogger.business.Weblogger:getUserManager(...)@602 != null
    //#presumption(long getWeblogCount()): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@601 != null
    //#post(long getWeblogCount()): init'ed(return_value)
        try {
            Weblogger roller = WebloggerFactory.getWeblogger();
    //#SiteModel.java:601: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: long getWeblogCount()
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
            UserManager mgr = roller.getUserManager();
    //#SiteModel.java:602: Warning: method not available
    //#    -- call on UserManager org.apache.roller.weblogger.business.Weblogger:getUserManager()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: long getWeblogCount()
    //#    unanalyzed callee: UserManager org.apache.roller.weblogger.business.Weblogger:getUserManager()
            count = mgr.getWeblogCount();            
    //#SiteModel.java:603: Warning: method not available
    //#    -- call on long org.apache.roller.weblogger.business.UserManager:getWeblogCount()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: long getWeblogCount()
    //#    unanalyzed callee: long org.apache.roller.weblogger.business.UserManager:getWeblogCount()
        } catch (WebloggerException e) {
            log.error("Error getting weblog count for site", e);
    //#SiteModel.java:605: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: long getWeblogCount()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
        }
        return count;
    //#SiteModel.java:607: end of method: long org.apache.roller.weblogger.ui.rendering.model.SiteModel.getWeblogCount()
    } 
    
    
    public long getUserCount() {
        long count = 0;
    //#SiteModel.java:612: method: long org.apache.roller.weblogger.ui.rendering.model.SiteModel.getUserCount()
    //#input(long getUserCount()): log
    //#output(long getUserCount()): return_value
    //#pre[1] (long getUserCount()): (soft) log != null
    //#presumption(long getUserCount()): org.apache.roller.weblogger.business.Weblogger:getUserManager(...)@615 != null
    //#presumption(long getUserCount()): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@614 != null
    //#post(long getUserCount()): init'ed(return_value)
        try {
            Weblogger roller = WebloggerFactory.getWeblogger();
    //#SiteModel.java:614: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: long getUserCount()
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
            UserManager mgr = roller.getUserManager();
    //#SiteModel.java:615: Warning: method not available
    //#    -- call on UserManager org.apache.roller.weblogger.business.Weblogger:getUserManager()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: long getUserCount()
    //#    unanalyzed callee: UserManager org.apache.roller.weblogger.business.Weblogger:getUserManager()
            count = mgr.getUserCount();            
    //#SiteModel.java:616: Warning: method not available
    //#    -- call on long org.apache.roller.weblogger.business.UserManager:getUserCount()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: long getUserCount()
    //#    unanalyzed callee: long org.apache.roller.weblogger.business.UserManager:getUserCount()
        } catch (WebloggerException e) {
            log.error("Error getting user count for site", e);
    //#SiteModel.java:618: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
    //#    method: long getUserCount()
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
        }
        return count;
    //#SiteModel.java:620: end of method: long org.apache.roller.weblogger.ui.rendering.model.SiteModel.getUserCount()
    }
    
}
    //#SiteModel.java:: end of class: org.apache.roller.weblogger.ui.rendering.model.SiteModel
