//# 0 errors, 293 messages
//#
/*
    //#AbstractPager.java:1:1: class: org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager
    //#AbstractPager.java:1:1: method: org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager.org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager__static_init
 * 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.pagers;

import java.util.HashMap;
import java.util.Map;
import org.apache.roller.weblogger.business.URLStrategy;
import org.apache.roller.weblogger.util.URLUtilities;


/**
 * Abstract base for simple pagers.
 */
public abstract class AbstractPager implements Pager {
    
    final URLStrategy urlStrategy;
    private String url = null;
    private int page = 0;
    
    
    public AbstractPager(URLStrategy strat, String baseUrl, int pageNum) {
    //#AbstractPager.java:37: method: void org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager.org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager(URLStrategy, String, int)
    //#input(void org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager(URLStrategy, String, int)): baseUrl
    //#input(void org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager(URLStrategy, String, int)): pageNum
    //#input(void org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager(URLStrategy, String, int)): strat
    //#input(void org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager(URLStrategy, String, int)): this
    //#output(void org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager(URLStrategy, String, int)): this.page
    //#output(void org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager(URLStrategy, String, int)): this.url
    //#output(void org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager(URLStrategy, String, int)): this.urlStrategy
    //#post(void org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager(URLStrategy, String, int)): this.page == One-of{0, pageNum}
    //#post(void org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager(URLStrategy, String, int)): this.page >= 0
    //#post(void org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager(URLStrategy, String, int)): this.url == baseUrl
    //#post(void org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager(URLStrategy, String, int)): init'ed(this.url)
    //#post(void org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager(URLStrategy, String, int)): this.urlStrategy == strat
    //#post(void org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager(URLStrategy, String, int)): init'ed(this.urlStrategy)
    //#test_vector(void org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager(URLStrategy, String, int)): pageNum: {-2_147_483_648..0}, {1..4_294_967_295}
        
        this.urlStrategy = strat;
        this.url = baseUrl;
        if(pageNum > 0) {
            this.page = pageNum;
        }
    }
    //#AbstractPager.java:44: end of method: void org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager.org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager(URLStrategy, String, int)
    
    
    public String getHomeLink() {
        return url;
    //#AbstractPager.java:48: method: String org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager.getHomeLink()
    //#input(String getHomeLink()): this
    //#input(String getHomeLink()): this.url
    //#output(String getHomeLink()): return_value
    //#pre[2] (String getHomeLink()): init'ed(this.url)
    //#post(String getHomeLink()): return_value == this.url
    //#post(String getHomeLink()): init'ed(return_value)
    //#AbstractPager.java:48: end of method: String org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager.getHomeLink()
    }
    
    
    public String getHomeName() {
        return "Home";
    //#AbstractPager.java:53: method: String org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager.getHomeName()
    //#output(String getHomeName()): return_value
    //#post(String getHomeName()): return_value == &"Home"
    //#AbstractPager.java:53: end of method: String org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager.getHomeName()
    }
    
    
    public String getNextLink() {
        if(hasMoreItems()) {
    //#AbstractPager.java:58: method: String org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager.getNextLink()
    //#AbstractPager.java:58: Warning: call too complex - analysis skipped
    //#    -- call on bool hasMoreItems()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager
    //#    method: String getNextLink()
    //#    unanalyzed callee: bool hasMoreItems()
    //#AbstractPager.java:58: Warning: suspicious precondition
    //#    the precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager
    //#    method: String getNextLink()
    //#    suspicious precondition index: [2]
    //#input(String getNextLink()): ""._tainted
    //#input(String getNextLink()): "&amp;"._tainted
    //#input(String getNextLink()): "+"._tainted
    //#input(String getNextLink()): "="._tainted
    //#input(String getNextLink()): "?"._tainted
    //#input(String getNextLink()): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/FeedModel$FeedCommentsPager]
    //#input(String getNextLink()): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/FeedModel$FeedEntriesPager]
    //#input(String getNextLink()): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/pagers/AbstractPager]
    //#input(String getNextLink()): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/pagers/CommentsPager]
    //#input(String getNextLink()): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/pagers/PlanetEntriesPager]
    //#input(String getNextLink()): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/pagers/SearchResultsFeedPager]
    //#input(String getNextLink()): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/pagers/UsersPager]
    //#input(String getNextLink()): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager]
    //#input(String getNextLink()): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/pagers/WeblogsPager]
    //#input(String getNextLink()): __Descendant_Table[others]
    //#input(String getNextLink()): __Dispatch_Table.createURL(Ljava/lang/String;Ljava/util/Map;)Ljava/lang/String;
    //#input(String getNextLink()): __Dispatch_Table.hasMoreItems()Z
    //#input(String getNextLink()): org/apache/roller/weblogger/ui/rendering/model/FeedModel$FeedCommentsPager.__Dispatch_Table.createURL(Ljava/lang/String;Ljava/util/Map;)Ljava/lang/String;
    //#input(String getNextLink()): org/apache/roller/weblogger/ui/rendering/model/FeedModel$FeedCommentsPager.__Dispatch_Table.hasMoreItems()Z
    //#input(String getNextLink()): org/apache/roller/weblogger/ui/rendering/model/FeedModel$FeedEntriesPager.__Dispatch_Table.createURL(Ljava/lang/String;Ljava/util/Map;)Ljava/lang/String;
    //#input(String getNextLink()): org/apache/roller/weblogger/ui/rendering/model/FeedModel$FeedEntriesPager.__Dispatch_Table.hasMoreItems()Z
    //#input(String getNextLink()): org/apache/roller/weblogger/ui/rendering/pagers/CommentsPager.__Dispatch_Table.createURL(Ljava/lang/String;Ljava/util/Map;)Ljava/lang/String;
    //#input(String getNextLink()): org/apache/roller/weblogger/ui/rendering/pagers/CommentsPager.__Dispatch_Table.hasMoreItems()Z
    //#input(String getNextLink()): org/apache/roller/weblogger/ui/rendering/pagers/PlanetEntriesPager.__Dispatch_Table.createURL(Ljava/lang/String;Ljava/util/Map;)Ljava/lang/String;
    //#input(String getNextLink()): org/apache/roller/weblogger/ui/rendering/pagers/PlanetEntriesPager.__Dispatch_Table.hasMoreItems()Z
    //#input(String getNextLink()): org/apache/roller/weblogger/ui/rendering/pagers/SearchResultsFeedPager.__Dispatch_Table.createURL(Ljava/lang/String;Ljava/util/Map;)Ljava/lang/String;
    //#input(String getNextLink()): org/apache/roller/weblogger/ui/rendering/pagers/SearchResultsFeedPager.__Dispatch_Table.hasMoreItems()Z
    //#input(String getNextLink()): org/apache/roller/weblogger/ui/rendering/pagers/UsersPager.__Dispatch_Table.createURL(Ljava/lang/String;Ljava/util/Map;)Ljava/lang/String;
    //#input(String getNextLink()): org/apache/roller/weblogger/ui/rendering/pagers/UsersPager.__Dispatch_Table.hasMoreItems()Z
    //#input(String getNextLink()): org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager.__Dispatch_Table.createURL(Ljava/lang/String;Ljava/util/Map;)Ljava/lang/String;
    //#input(String getNextLink()): org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager.__Dispatch_Table.hasMoreItems()Z
    //#input(String getNextLink()): org/apache/roller/weblogger/ui/rendering/pagers/WeblogsPager.__Dispatch_Table.createURL(Ljava/lang/String;Ljava/util/Map;)Ljava/lang/String;
    //#input(String getNextLink()): org/apache/roller/weblogger/ui/rendering/pagers/WeblogsPager.__Dispatch_Table.hasMoreItems()Z
    //#input(String getNextLink()): this
    //#input(String getNextLink()): this.__Tag
    //#input(String getNextLink()): this.page
    //#input(String getNextLink()): this.url
    //#input(String getNextLink()): this.url._tainted
    //#output(String getNextLink()): java.lang.StringBuilder:toString(...)._tainted
    //#output(String getNextLink()): return_value
    //#new obj(String getNextLink()): java.lang.StringBuilder:toString(...)
    //#pre[2] (String getNextLink()): this.__Tag in {org/apache/roller/weblogger/ui/rendering/model/FeedModel$FeedCommentsPager, org/apache/roller/weblogger/ui/rendering/model/FeedModel$FeedEntriesPager, org/apache/roller/weblogger/ui/rendering/pagers/AbstractPager, org/apache/roller/weblogger/ui/rendering/pagers/CommentsPager, org/apache/roller/weblogger/ui/rendering/pagers/PlanetEntriesPager, org/apache/roller/weblogger/ui/rendering/pagers/SearchResultsFeedPager, org/apache/roller/weblogger/ui/rendering/pagers/UsersPager, org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager, org/apache/roller/weblogger/ui/rendering/pagers/WeblogsPager}
    //#pre[6] (String getNextLink()): (soft) this.page <= 4_294_967_294
    //#pre[7] (String getNextLink()): (soft) init'ed(this.url)
    //#post(String getNextLink()): init'ed(java.lang.StringBuilder:toString(...)._tainted)
    //#post(String getNextLink()): return_value in Addr_Set{null,&java.lang.StringBuilder:toString(...),&java.lang.StringBuilder:toString(...),&java.lang.StringBuilder:toString(...),&java.lang.StringBuilder:toString(...)}
    //#unanalyzed(String getNextLink()): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(String getNextLink()): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(String getNextLink()): Effects-of-calling:java.lang.StringBuffer
    //#unanalyzed(String getNextLink()): Effects-of-calling:java.util.Map:keySet
    //#unanalyzed(String getNextLink()): Effects-of-calling:java.util.Set:iterator
    //#unanalyzed(String getNextLink()): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(String getNextLink()): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(String getNextLink()): Effects-of-calling:java.util.Map:get
    //#unanalyzed(String getNextLink()): Effects-of-calling:java.lang.StringBuffer:length
    //#unanalyzed(String getNextLink()): Effects-of-calling:java.lang.StringBuffer:append
    //#unanalyzed(String getNextLink()): Effects-of-calling:java.lang.StringBuffer:toString
    //#unanalyzed(String getNextLink()): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(String getNextLink()): Effects-of-calling:createURL
    //#unanalyzed(String getNextLink()): Effects-of-calling:org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getWeblogCategoryName
    //#unanalyzed(String getNextLink()): Effects-of-calling:java.lang.String:trim
    //#unanalyzed(String getNextLink()): Effects-of-calling:java.lang.String:length
    //#unanalyzed(String getNextLink()): Effects-of-calling:java.net.URLEncoder:encode
    //#unanalyzed(String getNextLink()): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(String getNextLink()): Effects-of-calling:java.util.Map:put
    //#unanalyzed(String getNextLink()): Effects-of-calling:org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getTerm
    //#unanalyzed(String getNextLink()): Effects-of-calling:org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getTags
    //#unanalyzed(String getNextLink()): Effects-of-calling:java.util.List:size
    //#unanalyzed(String getNextLink()): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(String getNextLink()): Effects-of-calling:org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:isExcerpts
    //#test_vector(String getNextLink()): hasMoreItems(...)@58: {0}, {1}
            int nextPage = page + 1;
            Map params = new HashMap();
            params.put("page", ""+nextPage);
            return createURL(url, params);
        }
        return null;
    //#AbstractPager.java:64: end of method: String org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager.getNextLink()
    }
    
    
    public String getNextName() {
        if(hasMoreItems()) {
    //#AbstractPager.java:69: method: String org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager.getNextName()
    //#AbstractPager.java:69: Warning: call too complex - analysis skipped
    //#    -- call on bool hasMoreItems()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager
    //#    method: String getNextName()
    //#    unanalyzed callee: bool hasMoreItems()
    //#AbstractPager.java:69: Warning: suspicious precondition
    //#    the precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager
    //#    method: String getNextName()
    //#    suspicious precondition index: [2]
    //#input(String getNextName()): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/FeedModel$FeedCommentsPager]
    //#input(String getNextName()): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/FeedModel$FeedEntriesPager]
    //#input(String getNextName()): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/pagers/AbstractPager]
    //#input(String getNextName()): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/pagers/CommentsPager]
    //#input(String getNextName()): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/pagers/PlanetEntriesPager]
    //#input(String getNextName()): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/pagers/SearchResultsFeedPager]
    //#input(String getNextName()): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/pagers/UsersPager]
    //#input(String getNextName()): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager]
    //#input(String getNextName()): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/pagers/WeblogsPager]
    //#input(String getNextName()): __Descendant_Table[others]
    //#input(String getNextName()): __Dispatch_Table.hasMoreItems()Z
    //#input(String getNextName()): org/apache/roller/weblogger/ui/rendering/model/FeedModel$FeedCommentsPager.__Dispatch_Table.hasMoreItems()Z
    //#input(String getNextName()): org/apache/roller/weblogger/ui/rendering/model/FeedModel$FeedEntriesPager.__Dispatch_Table.hasMoreItems()Z
    //#input(String getNextName()): org/apache/roller/weblogger/ui/rendering/pagers/CommentsPager.__Dispatch_Table.hasMoreItems()Z
    //#input(String getNextName()): org/apache/roller/weblogger/ui/rendering/pagers/PlanetEntriesPager.__Dispatch_Table.hasMoreItems()Z
    //#input(String getNextName()): org/apache/roller/weblogger/ui/rendering/pagers/SearchResultsFeedPager.__Dispatch_Table.hasMoreItems()Z
    //#input(String getNextName()): org/apache/roller/weblogger/ui/rendering/pagers/UsersPager.__Dispatch_Table.hasMoreItems()Z
    //#input(String getNextName()): org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager.__Dispatch_Table.hasMoreItems()Z
    //#input(String getNextName()): org/apache/roller/weblogger/ui/rendering/pagers/WeblogsPager.__Dispatch_Table.hasMoreItems()Z
    //#input(String getNextName()): this
    //#input(String getNextName()): this.__Tag
    //#output(String getNextName()): return_value
    //#pre[2] (String getNextName()): this.__Tag in {org/apache/roller/weblogger/ui/rendering/model/FeedModel$FeedCommentsPager, org/apache/roller/weblogger/ui/rendering/model/FeedModel$FeedEntriesPager, org/apache/roller/weblogger/ui/rendering/pagers/AbstractPager, org/apache/roller/weblogger/ui/rendering/pagers/CommentsPager, org/apache/roller/weblogger/ui/rendering/pagers/PlanetEntriesPager, org/apache/roller/weblogger/ui/rendering/pagers/SearchResultsFeedPager, org/apache/roller/weblogger/ui/rendering/pagers/UsersPager, org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager, org/apache/roller/weblogger/ui/rendering/pagers/WeblogsPager}
    //#post(String getNextName()): return_value in Addr_Set{null,&"Next"}
    //#test_vector(String getNextName()): hasMoreItems(...)@69: {0}, {1}
            return "Next";
        }
        return null;
    //#AbstractPager.java:72: end of method: String org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager.getNextName()
    }
    
    
    public String getPrevLink() {
        if (page > 0) {
    //#AbstractPager.java:77: method: String org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager.getPrevLink()
    //#AbstractPager.java:77: Warning: suspicious precondition
    //#    the precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager
    //#    method: String getPrevLink()
    //#    suspicious precondition index: [2]
    //#    Attribs:  Soft
    //#input(String getPrevLink()): ""._tainted
    //#input(String getPrevLink()): "&amp;"._tainted
    //#input(String getPrevLink()): "+"._tainted
    //#input(String getPrevLink()): "="._tainted
    //#input(String getPrevLink()): "?"._tainted
    //#input(String getPrevLink()): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/FeedModel$FeedCommentsPager]
    //#input(String getPrevLink()): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/FeedModel$FeedEntriesPager]
    //#input(String getPrevLink()): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/pagers/AbstractPager]
    //#input(String getPrevLink()): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/pagers/CommentsPager]
    //#input(String getPrevLink()): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/pagers/PlanetEntriesPager]
    //#input(String getPrevLink()): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/pagers/SearchResultsFeedPager]
    //#input(String getPrevLink()): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/pagers/UsersPager]
    //#input(String getPrevLink()): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager]
    //#input(String getPrevLink()): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/pagers/WeblogsPager]
    //#input(String getPrevLink()): __Descendant_Table[others]
    //#input(String getPrevLink()): __Dispatch_Table.createURL(Ljava/lang/String;Ljava/util/Map;)Ljava/lang/String;
    //#input(String getPrevLink()): org/apache/roller/weblogger/ui/rendering/model/FeedModel$FeedCommentsPager.__Dispatch_Table.createURL(Ljava/lang/String;Ljava/util/Map;)Ljava/lang/String;
    //#input(String getPrevLink()): org/apache/roller/weblogger/ui/rendering/model/FeedModel$FeedEntriesPager.__Dispatch_Table.createURL(Ljava/lang/String;Ljava/util/Map;)Ljava/lang/String;
    //#input(String getPrevLink()): org/apache/roller/weblogger/ui/rendering/pagers/CommentsPager.__Dispatch_Table.createURL(Ljava/lang/String;Ljava/util/Map;)Ljava/lang/String;
    //#input(String getPrevLink()): org/apache/roller/weblogger/ui/rendering/pagers/PlanetEntriesPager.__Dispatch_Table.createURL(Ljava/lang/String;Ljava/util/Map;)Ljava/lang/String;
    //#input(String getPrevLink()): org/apache/roller/weblogger/ui/rendering/pagers/SearchResultsFeedPager.__Dispatch_Table.createURL(Ljava/lang/String;Ljava/util/Map;)Ljava/lang/String;
    //#input(String getPrevLink()): org/apache/roller/weblogger/ui/rendering/pagers/UsersPager.__Dispatch_Table.createURL(Ljava/lang/String;Ljava/util/Map;)Ljava/lang/String;
    //#input(String getPrevLink()): org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager.__Dispatch_Table.createURL(Ljava/lang/String;Ljava/util/Map;)Ljava/lang/String;
    //#input(String getPrevLink()): org/apache/roller/weblogger/ui/rendering/pagers/WeblogsPager.__Dispatch_Table.createURL(Ljava/lang/String;Ljava/util/Map;)Ljava/lang/String;
    //#input(String getPrevLink()): this
    //#input(String getPrevLink()): this.__Tag
    //#input(String getPrevLink()): this.page
    //#input(String getPrevLink()): this.url
    //#input(String getPrevLink()): this.url._tainted
    //#output(String getPrevLink()): java.lang.StringBuilder:toString(...)._tainted
    //#output(String getPrevLink()): return_value
    //#new obj(String getPrevLink()): java.lang.StringBuilder:toString(...)
    //#pre[6] (String getPrevLink()): init'ed(this.page)
    //#pre[2] (String getPrevLink()): (soft) this.__Tag in {org/apache/roller/weblogger/ui/rendering/model/FeedModel$FeedCommentsPager, org/apache/roller/weblogger/ui/rendering/model/FeedModel$FeedEntriesPager, org/apache/roller/weblogger/ui/rendering/pagers/AbstractPager, org/apache/roller/weblogger/ui/rendering/pagers/CommentsPager, org/apache/roller/weblogger/ui/rendering/pagers/PlanetEntriesPager, org/apache/roller/weblogger/ui/rendering/pagers/SearchResultsFeedPager, org/apache/roller/weblogger/ui/rendering/pagers/UsersPager, org/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesListPager, org/apache/roller/weblogger/ui/rendering/pagers/WeblogsPager}
    //#pre[7] (String getPrevLink()): (soft) init'ed(this.url)
    //#post(String getPrevLink()): init'ed(java.lang.StringBuilder:toString(...)._tainted)
    //#post(String getPrevLink()): return_value in Addr_Set{null,&java.lang.StringBuilder:toString(...),&java.lang.StringBuilder:toString(...),&java.lang.StringBuilder:toString(...),&java.lang.StringBuilder:toString(...)}
    //#unanalyzed(String getPrevLink()): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(String getPrevLink()): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(String getPrevLink()): Effects-of-calling:java.lang.StringBuffer
    //#unanalyzed(String getPrevLink()): Effects-of-calling:java.util.Map:keySet
    //#unanalyzed(String getPrevLink()): Effects-of-calling:java.util.Set:iterator
    //#unanalyzed(String getPrevLink()): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(String getPrevLink()): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(String getPrevLink()): Effects-of-calling:java.util.Map:get
    //#unanalyzed(String getPrevLink()): Effects-of-calling:java.lang.StringBuffer:length
    //#unanalyzed(String getPrevLink()): Effects-of-calling:java.lang.StringBuffer:append
    //#unanalyzed(String getPrevLink()): Effects-of-calling:java.lang.StringBuffer:toString
    //#unanalyzed(String getPrevLink()): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(String getPrevLink()): Effects-of-calling:createURL
    //#unanalyzed(String getPrevLink()): Effects-of-calling:org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getWeblogCategoryName
    //#unanalyzed(String getPrevLink()): Effects-of-calling:java.lang.String:trim
    //#unanalyzed(String getPrevLink()): Effects-of-calling:java.lang.String:length
    //#unanalyzed(String getPrevLink()): Effects-of-calling:java.net.URLEncoder:encode
    //#unanalyzed(String getPrevLink()): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(String getPrevLink()): Effects-of-calling:java.util.Map:put
    //#unanalyzed(String getPrevLink()): Effects-of-calling:org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getTerm
    //#unanalyzed(String getPrevLink()): Effects-of-calling:org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getTags
    //#unanalyzed(String getPrevLink()): Effects-of-calling:java.util.List:size
    //#unanalyzed(String getPrevLink()): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(String getPrevLink()): Effects-of-calling:org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:isExcerpts
    //#test_vector(String getPrevLink()): this.page: {-2_147_483_648..0}, {1..4_294_967_295}
            int prevPage = page - 1;
            Map params = new HashMap();
            params.put("page", ""+prevPage);
            return createURL(url, params);
        }
        return null;
    //#AbstractPager.java:83: end of method: String org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager.getPrevLink()
    }
    
    
    public String getPrevName() {
        if (page > 0) {
    //#AbstractPager.java:88: method: String org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager.getPrevName()
    //#input(String getPrevName()): this
    //#input(String getPrevName()): this.page
    //#output(String getPrevName()): return_value
    //#pre[2] (String getPrevName()): init'ed(this.page)
    //#post(String getPrevName()): return_value in Addr_Set{null,&"Previous"}
    //#test_vector(String getPrevName()): this.page: {-2_147_483_648..0}, {1..4_294_967_295}
            return "Previous";
        }
        return null;
    //#AbstractPager.java:91: end of method: String org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager.getPrevName()
    }
    
    
    public boolean hasMoreItems() {
        return false;
    //#AbstractPager.java:96: method: bool org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager.hasMoreItems()
    //#output(bool hasMoreItems()): return_value
    //#post(bool hasMoreItems()): return_value == 0
    //#AbstractPager.java:96: end of method: bool org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager.hasMoreItems()
    }
    
    
    protected String createURL(String url, Map params) {
        
        return url + URLUtilities.getQueryString(params);
    //#AbstractPager.java:102: method: String org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager.createURL(String, Map)
    //#input(String createURL(String, Map)): "&amp;"._tainted
    //#input(String createURL(String, Map)): "="._tainted
    //#input(String createURL(String, Map)): "?"._tainted
    //#input(String createURL(String, Map)): params
    //#input(String createURL(String, Map)): url
    //#input(String createURL(String, Map)): url._tainted
    //#output(String createURL(String, Map)): java.lang.StringBuilder:toString(...)._tainted
    //#output(String createURL(String, Map)): return_value
    //#new obj(String createURL(String, Map)): java.lang.StringBuilder:toString(...)
    //#post(String createURL(String, Map)): init'ed(java.lang.StringBuilder:toString(...)._tainted)
    //#post(String createURL(String, Map)): return_value == &java.lang.StringBuilder:toString(...)
    //#unanalyzed(String createURL(String, Map)): Effects-of-calling:java.lang.StringBuffer
    //#unanalyzed(String createURL(String, Map)): Effects-of-calling:java.util.Map:keySet
    //#unanalyzed(String createURL(String, Map)): Effects-of-calling:java.util.Set:iterator
    //#unanalyzed(String createURL(String, Map)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(String createURL(String, Map)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(String createURL(String, Map)): Effects-of-calling:java.util.Map:get
    //#unanalyzed(String createURL(String, Map)): Effects-of-calling:java.lang.StringBuffer:length
    //#unanalyzed(String createURL(String, Map)): Effects-of-calling:java.lang.StringBuffer:append
    //#unanalyzed(String createURL(String, Map)): Effects-of-calling:java.lang.StringBuffer:toString
    //#AbstractPager.java:102: end of method: String org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager.createURL(String, Map)
    }

    
    public String getUrl() {
        return url;
    //#AbstractPager.java:107: method: String org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager.getUrl()
    //#input(String getUrl()): this
    //#input(String getUrl()): this.url
    //#output(String getUrl()): return_value
    //#pre[2] (String getUrl()): init'ed(this.url)
    //#post(String getUrl()): return_value == this.url
    //#post(String getUrl()): init'ed(return_value)
    //#AbstractPager.java:107: end of method: String org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager.getUrl()
    }

    public void setUrl(String url) {
        this.url = url;
    //#AbstractPager.java:111: method: void org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager.setUrl(String)
    //#input(void setUrl(String)): this
    //#input(void setUrl(String)): url
    //#output(void setUrl(String)): this.url
    //#post(void setUrl(String)): this.url == url
    //#post(void setUrl(String)): init'ed(this.url)
    }
    //#AbstractPager.java:112: end of method: void org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager.setUrl(String)

    public int getPage() {
        return page;
    //#AbstractPager.java:115: method: int org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager.getPage()
    //#input(int getPage()): this
    //#input(int getPage()): this.page
    //#output(int getPage()): return_value
    //#pre[2] (int getPage()): init'ed(this.page)
    //#post(int getPage()): return_value == this.page
    //#post(int getPage()): init'ed(return_value)
    //#AbstractPager.java:115: end of method: int org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager.getPage()
    }

    public void setPage(int page) {
        this.page = page;
    //#AbstractPager.java:119: method: void org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager.setPage(int)
    //#input(void setPage(int)): page
    //#input(void setPage(int)): this
    //#output(void setPage(int)): this.page
    //#post(void setPage(int)): this.page == page
    //#post(void setPage(int)): init'ed(this.page)
    }
    //#AbstractPager.java:120: end of method: void org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager.setPage(int)
    
}
    //#output(org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager__static_init): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/pagers/AbstractPager]
    //#output(org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager__static_init): __Dispatch_Table.createURL(Ljava/lang/String;Ljava/util/Map;)Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager__static_init): __Dispatch_Table.getHomeLink()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager__static_init): __Dispatch_Table.getHomeName()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager__static_init): __Dispatch_Table.getNextLink()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager__static_init): __Dispatch_Table.getNextName()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager__static_init): __Dispatch_Table.getPage()I
    //#output(org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager__static_init): __Dispatch_Table.getPrevLink()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager__static_init): __Dispatch_Table.getPrevName()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager__static_init): __Dispatch_Table.getUrl()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager__static_init): __Dispatch_Table.hasMoreItems()Z
    //#output(org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager__static_init): __Dispatch_Table.setPage(I)V
    //#output(org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager__static_init): __Dispatch_Table.setUrl(Ljava/lang/String;)V
    //#output(org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager__static_init): org/apache/roller/weblogger/ui/rendering/pagers/Pager.__Descendant_Table[org/apache/roller/weblogger/ui/rendering/pagers/AbstractPager]
    //#post(org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager__static_init): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/pagers/AbstractPager] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager__static_init): org/apache/roller/weblogger/ui/rendering/pagers/Pager.__Descendant_Table[org/apache/roller/weblogger/ui/rendering/pagers/AbstractPager] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager__static_init): __Dispatch_Table.createURL(Ljava/lang/String;Ljava/util/Map;)Ljava/lang/String; == &createURL
    //#post(org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager__static_init): __Dispatch_Table.getHomeLink()Ljava/lang/String; == &getHomeLink
    //#post(org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager__static_init): __Dispatch_Table.getHomeName()Ljava/lang/String; == &getHomeName
    //#post(org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager__static_init): __Dispatch_Table.getNextLink()Ljava/lang/String; == &getNextLink
    //#post(org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager__static_init): __Dispatch_Table.getNextName()Ljava/lang/String; == &getNextName
    //#post(org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager__static_init): __Dispatch_Table.getPage()I == &getPage
    //#post(org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager__static_init): __Dispatch_Table.getPrevLink()Ljava/lang/String; == &getPrevLink
    //#post(org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager__static_init): __Dispatch_Table.getPrevName()Ljava/lang/String; == &getPrevName
    //#post(org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager__static_init): __Dispatch_Table.getUrl()Ljava/lang/String; == &getUrl
    //#post(org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager__static_init): __Dispatch_Table.hasMoreItems()Z == &hasMoreItems
    //#post(org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager__static_init): __Dispatch_Table.setPage(I)V == &setPage
    //#post(org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager__static_init): __Dispatch_Table.setUrl(Ljava/lang/String;)V == &setUrl
    //#AbstractPager.java:: end of method: org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager.org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager__static_init
    //#AbstractPager.java:: end of class: org.apache.roller.weblogger.ui.rendering.pagers.AbstractPager
