//# 3 errors, 252 messages
//#
/*
    //#SearchResultsFeedPager.java:1:1: class: org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager
    //#SearchResultsFeedPager.java:1:1: method: org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager.org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager__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.List;
import java.util.Locale;
import java.util.Map;
import org.apache.roller.weblogger.business.URLStrategy;
import org.apache.roller.weblogger.business.WebloggerFactory;
import org.apache.roller.weblogger.pojos.Weblog;
import org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest;
import org.apache.roller.weblogger.util.I18nMessages;
import org.apache.roller.weblogger.util.URLUtilities;


/**
 * Pager for navigating through search results feeds.
 */
public class SearchResultsFeedPager extends AbstractPager {
    
    // message utils for doing i18n messages
    I18nMessages messageUtils = null;
    
    private List entries = null;
    
    private Weblog weblog = null;
    private boolean     moreResults = false;
    
    private WeblogFeedRequest feedRequest = null;
    
    private String url = null;
    
            
    public SearchResultsFeedPager(URLStrategy strat, String baseUrl, int pageNum,
            WeblogFeedRequest feedRequest, List entries, boolean more) {
        
        super(strat, baseUrl, pageNum);
    //#SearchResultsFeedPager.java:54: method: void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager.org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)
    //#input(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): "request for messages in locale = "._tainted
    //#input(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): baseUrl
    //#input(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): entries
    //#input(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): feedRequest
    //#input(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): more
    //#input(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): org/apache/roller/weblogger/util/I18nMessages.__Descendant_Table[org/apache/roller/weblogger/util/I18nMessages]
    //#input(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): org/apache/roller/weblogger/util/I18nMessages.__Descendant_Table[others]
    //#input(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): org/apache/roller/weblogger/util/I18nMessages.log
    //#input(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): org/apache/roller/weblogger/util/I18nMessages.messagesMap
    //#input(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): pageNum
    //#input(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): strat
    //#input(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): this
    //#output(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): new I18nMessages(getMessages#2) num objects
    //#output(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): new I18nMessages(getMessages#2).__Tag
    //#output(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): new I18nMessages(getMessages#2).bundle
    //#output(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): new I18nMessages(getMessages#2).locale
    //#output(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): new Locale(SearchResultsFeedPager#1) num objects
    //#output(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): new Locale(SearchResultsFeedPager#1)._tainted
    //#output(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): new Locale(SearchResultsFeedPager#2) num objects
    //#output(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): new Locale(SearchResultsFeedPager#2)._tainted
    //#output(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): this.entries
    //#output(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): this.feedRequest
    //#output(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): this.messageUtils
    //#output(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): this.moreResults
    //#output(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): this.page
    //#output(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): this.url
    //#output(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): this.urlStrategy
    //#output(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): this.weblog
    //#new obj(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): new I18nMessages(getMessages#2)
    //#new obj(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): new Locale(SearchResultsFeedPager#1)
    //#new obj(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): new Locale(SearchResultsFeedPager#2)
    //#pre[3] (void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): feedRequest != null
    //#pre[5] (void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): org/apache/roller/weblogger/util/I18nMessages.messagesMap != null
    //#presumption(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getLocale(...)@72 != null
    //#presumption(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getWeblog(...)@64 != null
    //#post(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): this.entries == entries
    //#post(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): init'ed(this.entries)
    //#post(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): this.feedRequest == feedRequest
    //#post(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): this.feedRequest != null
    //#post(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): this.messageUtils != null
    //#post(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): this.moreResults == more
    //#post(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): init'ed(this.moreResults)
    //#post(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): this.page == One-of{0, pageNum}
    //#post(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): this.page >= 0
    //#post(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): this.url == baseUrl
    //#post(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): init'ed(this.url)
    //#post(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): this.url == this.url
    //#post(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): this.urlStrategy == strat
    //#post(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): init'ed(this.urlStrategy)
    //#post(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): (soft) this.weblog != null
    //#post(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): new I18nMessages(getMessages#2) num objects <= 1
    //#post(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): new I18nMessages(getMessages#2).__Tag == org/apache/roller/weblogger/util/I18nMessages
    //#post(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): init'ed(new I18nMessages(getMessages#2).bundle)
    //#post(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): new I18nMessages(getMessages#2).locale != null
    //#post(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): new Locale(SearchResultsFeedPager#1) num objects == 0
    //#post(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): new Locale(SearchResultsFeedPager#1)._tainted == 0
    //#post(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): new Locale(SearchResultsFeedPager#2)._tainted == 0
    //#post(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): new Locale(SearchResultsFeedPager#2) num objects == 0
    //#unanalyzed(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): Effects-of-calling:java.util.ResourceBundle:getBundle
    //#unanalyzed(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): Effects-of-calling:org.apache.commons.logging.Log:debug
    //#unanalyzed(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): Effects-of-calling:java.util.Map:get
    //#unanalyzed(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): Effects-of-calling:java.util.Map:put
    //#unanalyzed(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): Effects-of-calling:java.util.Locale:toString
    //#test_vector(void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)): org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getLocale(...)@71: Addr_Set{null}, Inverse{null}
        
        this.url = baseUrl;
        
        this.feedRequest = feedRequest;
        
        // store search results
        this.entries = entries;
        
        // data from search request
        this.weblog = feedRequest.getWeblog();
    //#SearchResultsFeedPager.java:64: Warning: method not available
    //#    -- call on Weblog org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getWeblog()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager
    //#    method: void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)
    //#    unanalyzed callee: Weblog org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getWeblog()
        
        // does this pager have more results?
        this.moreResults = more;
        
        // get a message utils instance to handle i18n of messages
        Locale viewLocale = null;
        if(feedRequest.getLocale() != null) {
    //#SearchResultsFeedPager.java:71: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getLocale()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager
    //#    method: void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)
    //#    unanalyzed callee: String org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getLocale()
            String[] langCountry = feedRequest.getLocale().split("_");
    //#SearchResultsFeedPager.java:72: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getLocale()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager
    //#    method: void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)
    //#    unanalyzed callee: String org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getLocale()
            if(langCountry.length == 1) {
    //#SearchResultsFeedPager.java:73: ?use of default init
    //#    init'ed(langCountry.length)
    //#    severity: LOW
    //#    class: org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager
    //#    method: void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)
    //#    basic block: bb_2
    //#    assertion: init'ed(langCountry.length)
    //#    VN: undefined
    //#    Expected: {-Inf..+Inf}
    //#    Bad: {Invalid}
    //#    Attribs:  Int  Bad only invalid
    //#SearchResultsFeedPager.java:73: Warning: test always goes same way
    //#    test predetermined because langCountry.length == 0
    //#    severity: LOW
    //#    class: org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager
    //#    method: void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)
    //#    from bb: bb_2
    //#    live edge: bb_2-->bb_4
    //#    tested vn: undefined - 1
    //#    tested vn values: {-1}
                viewLocale = new Locale(langCountry[0]);
    //#SearchResultsFeedPager.java:74: Warning: dead code
    //#    dead code here because langCountry.length == 0
    //#    severity: LOW
    //#    class: org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager
    //#    method: void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)
    //#    dead bb: bb_3
            } else if(langCountry.length == 2) {
    //#SearchResultsFeedPager.java:75: ?use of default init
    //#    init'ed(langCountry.length)
    //#    severity: LOW
    //#    class: org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager
    //#    method: void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)
    //#    basic block: bb_4
    //#    assertion: init'ed(langCountry.length)
    //#    VN: undefined
    //#    Expected: {-Inf..+Inf}
    //#    Bad: {Invalid}
    //#    Attribs:  Int  Bad only invalid
    //#SearchResultsFeedPager.java:75: Warning: test always goes same way
    //#    test predetermined because langCountry.length == 0
    //#    severity: LOW
    //#    class: org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager
    //#    method: void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)
    //#    from bb: bb_4
    //#    live edge: bb_4-->bb_6
    //#    tested vn: undefined - 2
    //#    tested vn values: {-2}
                viewLocale = new Locale(langCountry[0], langCountry[1]);
    //#SearchResultsFeedPager.java:76: Warning: dead code
    //#    dead code here because langCountry.length == 0
    //#    severity: LOW
    //#    class: org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager
    //#    method: void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)
    //#    dead bb: bb_5
            }
        } else {
            viewLocale = weblog.getLocaleInstance();
    //#SearchResultsFeedPager.java:79: Warning: method not available
    //#    -- call on Locale org.apache.roller.weblogger.pojos.Weblog:getLocaleInstance()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager
    //#    method: void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)
    //#    unanalyzed callee: Locale org.apache.roller.weblogger.pojos.Weblog:getLocaleInstance()
        }
        this.messageUtils = I18nMessages.getMessages(viewLocale);
    //#SearchResultsFeedPager.java:81: ?precondition failure
    //#    org/apache/roller/weblogger/util/I18nMessages.getMessages: locale != null
    //#    severity: MEDIUM
    //#    class: org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager
    //#    method: void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)
    //#    basic block: bb_8
    //#    assertion: viewLocale != null
    //#    callee: I18nMessages org/apache/roller/weblogger/util/I18nMessages.getMessages(Locale)
    //#    callee assertion: locale != null
    //#    callee file: I18nMessages.java
    //#    callee precondition index: [1]
    //#    callee srcpos: 87
    //#    VN: viewLocale
    //#    Expected: Inverse{null}
    //#    Bad: Addr_Set{null}
    //#    Attribs:  Ptr  null in Bad
    }
    //#SearchResultsFeedPager.java:82: end of method: void org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager.org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager(URLStrategy, String, int, WeblogFeedRequest, List, bool)
    
    public List getItems() {
        return this.entries;
    //#SearchResultsFeedPager.java:85: method: List org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager.getItems()
    //#input(List getItems()): this
    //#input(List getItems()): this.entries
    //#output(List getItems()): return_value
    //#pre[2] (List getItems()): init'ed(this.entries)
    //#post(List getItems()): return_value == this.entries
    //#post(List getItems()): init'ed(return_value)
    //#SearchResultsFeedPager.java:85: end of method: List org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager.getItems()
    }
    
    public boolean hasMoreItems() {
        return this.moreResults;
    //#SearchResultsFeedPager.java:89: method: bool org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager.hasMoreItems()
    //#input(bool hasMoreItems()): this
    //#input(bool hasMoreItems()): this.moreResults
    //#output(bool hasMoreItems()): return_value
    //#pre[2] (bool hasMoreItems()): init'ed(this.moreResults)
    //#post(bool hasMoreItems()): return_value == this.moreResults
    //#post(bool hasMoreItems()): init'ed(return_value)
    //#SearchResultsFeedPager.java:89: end of method: bool org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager.hasMoreItems()
    }
    
    public String getHomeLink() {
        return urlStrategy.getWeblogURL(weblog, weblog.getLocale(), false);
    //#SearchResultsFeedPager.java:93: method: String org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager.getHomeLink()
    //#SearchResultsFeedPager.java:93: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.pojos.Weblog:getLocale()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager
    //#    method: String getHomeLink()
    //#    unanalyzed callee: String org.apache.roller.weblogger.pojos.Weblog:getLocale()
    //#SearchResultsFeedPager.java:93: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogURL(Weblog, String, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager
    //#    method: String getHomeLink()
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogURL(Weblog, String, bool)
    //#input(String getHomeLink()): this
    //#input(String getHomeLink()): this.urlStrategy
    //#input(String getHomeLink()): this.weblog
    //#output(String getHomeLink()): return_value
    //#pre[2] (String getHomeLink()): this.urlStrategy != null
    //#pre[3] (String getHomeLink()): this.weblog != null
    //#post(String getHomeLink()): init'ed(return_value)
    //#SearchResultsFeedPager.java:93: end of method: String org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager.getHomeLink()
    }

    public String getHomeName() {
        return messageUtils.getString("searchPager.home");
    //#SearchResultsFeedPager.java:97: method: String org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager.getHomeName()
    //#input(String getHomeName()): "Error getting key "._tainted
    //#input(String getHomeName()): "searchPager.home"._tainted
    //#input(String getHomeName()): org/apache/roller/weblogger/util/I18nMessages.log
    //#input(String getHomeName()): this
    //#input(String getHomeName()): this.messageUtils
    //#input(String getHomeName()): this.messageUtils.bundle
    //#output(String getHomeName()): return_value
    //#pre[2] (String getHomeName()): this.messageUtils != null
    //#pre[3] (String getHomeName()): (soft) this.messageUtils.bundle != null
    //#post(String getHomeName()): init'ed(return_value)
    //#unanalyzed(String getHomeName()): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(String getHomeName()): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(String getHomeName()): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(String getHomeName()): Effects-of-calling:java.util.ResourceBundle:getString
    //#unanalyzed(String getHomeName()): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(String getHomeName()): Effects-of-calling:org.apache.commons.logging.Log:warn
    //#SearchResultsFeedPager.java:97: end of method: String org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager.getHomeName()
    }  
    
    protected String createURL(String url, Map params) {
        String category = feedRequest.getWeblogCategoryName();
    //#SearchResultsFeedPager.java:101: method: String org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager.createURL(String, Map)
    //#SearchResultsFeedPager.java:101: 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.pagers.SearchResultsFeedPager
    //#    method: String createURL(String, Map)
    //#    unanalyzed callee: String org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getWeblogCategoryName()
    //#input(String createURL(String, Map)): "&amp;"._tainted
    //#input(String createURL(String, Map)): "+"._tainted
    //#input(String createURL(String, Map)): "="._tainted
    //#input(String createURL(String, Map)): "?"._tainted
    //#input(String createURL(String, Map)): params
    //#input(String createURL(String, Map)): this
    //#input(String createURL(String, Map)): this.feedRequest
    //#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(...)
    //#pre[3] (String createURL(String, Map)): this.feedRequest != null
    //#pre[1] (String createURL(String, Map)): (soft) params != null
    //#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.net.URLEncoder:encode
    //#unanalyzed(String createURL(String, Map)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(String createURL(String, Map)): Effects-of-calling:java.lang.StringBuffer
    //#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.lang.StringBuffer:append
    //#unanalyzed(String createURL(String, Map)): Effects-of-calling:java.lang.StringBuffer:toString
    //#unanalyzed(String createURL(String, Map)): Effects-of-calling:java.util.List:size
    //#unanalyzed(String createURL(String, Map)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(String createURL(String, Map)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(String createURL(String, Map)): Effects-of-calling:java.lang.StringBuilder:append
    //#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.Map:get
    //#unanalyzed(String createURL(String, Map)): Effects-of-calling:java.lang.StringBuffer:length
    //#unanalyzed(String createURL(String, Map)): Effects-of-calling:java.lang.StringBuilder:toString
    //#test_vector(String createURL(String, Map)): java.lang.String:length(...)@102: {0}, {1..4_294_967_295}
    //#test_vector(String createURL(String, Map)): java.lang.String:length(...)@106: {0}, {1..4_294_967_295}
    //#test_vector(String createURL(String, Map)): java.util.List:size(...)@110: {-2_147_483_648..0}, {1..4_294_967_295}
    //#test_vector(String createURL(String, Map)): org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getTags(...)@109: Addr_Set{null}, Inverse{null}
    //#test_vector(String createURL(String, Map)): org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getTerm(...)@105: Addr_Set{null}, Inverse{null}
    //#test_vector(String createURL(String, Map)): org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getWeblogCategoryName(...)@101: Addr_Set{null}, Inverse{null}
    //#test_vector(String createURL(String, Map)): org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:isExcerpts(...)@113: {0}, {1}
        if(category != null && category.trim().length() > 0) {
            params.put("cat", URLUtilities.encode(category));
        }
        String term = feedRequest.getTerm();
    //#SearchResultsFeedPager.java:105: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getTerm()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager
    //#    method: String createURL(String, Map)
    //#    unanalyzed callee: String org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getTerm()
        if(term != null && term.trim().length() > 0) {
            params.put("q", URLUtilities.encode(term.trim()));
        }     
        List tags = feedRequest.getTags();
    //#SearchResultsFeedPager.java:109: 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.pagers.SearchResultsFeedPager
    //#    method: String createURL(String, Map)
    //#    unanalyzed callee: List org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getTags()
        if(tags != null && tags.size() > 0) {
            params.put("tags", URLUtilities.getEncodedTagsString(tags));
        }
        if(feedRequest.isExcerpts()) {
    //#SearchResultsFeedPager.java:113: 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.pagers.SearchResultsFeedPager
    //#    method: String createURL(String, Map)
    //#    unanalyzed callee: bool org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:isExcerpts()
            params.put("excerpts", "true");
        }        
        return super.createURL(url, params);
    //#SearchResultsFeedPager.java:116: end of method: String org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager.createURL(String, Map)
    }
    
    public String getUrl() {
        return createURL(url, new HashMap());
    //#SearchResultsFeedPager.java:120: method: String org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager.getUrl()
    //#input(String getUrl()): "&amp;"._tainted
    //#input(String getUrl()): "+"._tainted
    //#input(String getUrl()): "="._tainted
    //#input(String getUrl()): "?"._tainted
    //#input(String getUrl()): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/pagers/SearchResultsFeedPager]
    //#input(String getUrl()): __Descendant_Table[others]
    //#input(String getUrl()): __Dispatch_Table.createURL(Ljava/lang/String;Ljava/util/Map;)Ljava/lang/String;
    //#input(String getUrl()): this
    //#input(String getUrl()): this.__Tag
    //#input(String getUrl()): this.feedRequest
    //#input(String getUrl()): this.url
    //#input(String getUrl()): this.url._tainted
    //#output(String getUrl()): java.lang.StringBuilder:toString(...)._tainted
    //#output(String getUrl()): return_value
    //#new obj(String getUrl()): java.lang.StringBuilder:toString(...)
    //#pre[2] (String getUrl()): this.__Tag == org/apache/roller/weblogger/ui/rendering/pagers/SearchResultsFeedPager
    //#pre[3] (String getUrl()): this.feedRequest != null
    //#pre[4] (String getUrl()): init'ed(this.url)
    //#post(String getUrl()): init'ed(java.lang.StringBuilder:toString(...)._tainted)
    //#post(String getUrl()): return_value == &java.lang.StringBuilder:toString(...)
    //#unanalyzed(String getUrl()): Effects-of-calling:org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getWeblogCategoryName
    //#unanalyzed(String getUrl()): Effects-of-calling:java.lang.String:trim
    //#unanalyzed(String getUrl()): Effects-of-calling:java.lang.String:length
    //#unanalyzed(String getUrl()): Effects-of-calling:java.net.URLEncoder:encode
    //#unanalyzed(String getUrl()): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(String getUrl()): Effects-of-calling:java.util.Map:put
    //#unanalyzed(String getUrl()): Effects-of-calling:org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getTerm
    //#unanalyzed(String getUrl()): Effects-of-calling:org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:getTags
    //#unanalyzed(String getUrl()): Effects-of-calling:java.util.List:size
    //#unanalyzed(String getUrl()): Effects-of-calling:java.lang.StringBuffer
    //#unanalyzed(String getUrl()): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(String getUrl()): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(String getUrl()): Effects-of-calling:java.lang.StringBuffer:append
    //#unanalyzed(String getUrl()): Effects-of-calling:java.lang.StringBuffer:toString
    //#unanalyzed(String getUrl()): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(String getUrl()): Effects-of-calling:org.apache.roller.weblogger.ui.rendering.util.WeblogFeedRequest:isExcerpts
    //#unanalyzed(String getUrl()): Effects-of-calling:createURL
    //#unanalyzed(String getUrl()): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(String getUrl()): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(String getUrl()): Effects-of-calling:java.util.Map:keySet
    //#unanalyzed(String getUrl()): Effects-of-calling:java.util.Set:iterator
    //#unanalyzed(String getUrl()): Effects-of-calling:java.util.Map:get
    //#unanalyzed(String getUrl()): Effects-of-calling:java.lang.StringBuffer:length
    //#unanalyzed(String getUrl()): Effects-of-calling:java.lang.StringBuilder:toString
    //#SearchResultsFeedPager.java:120: end of method: String org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager.getUrl()
    }
}
    //#output(org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager__static_init): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/pagers/SearchResultsFeedPager]
    //#output(org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager__static_init): __Dispatch_Table.createURL(Ljava/lang/String;Ljava/util/Map;)Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager__static_init): __Dispatch_Table.getHomeLink()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager__static_init): __Dispatch_Table.getHomeName()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager__static_init): __Dispatch_Table.getItems()Ljava/util/List;
    //#output(org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager__static_init): __Dispatch_Table.getNextLink()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager__static_init): __Dispatch_Table.getNextName()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager__static_init): __Dispatch_Table.getPage()I
    //#output(org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager__static_init): __Dispatch_Table.getPrevLink()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager__static_init): __Dispatch_Table.getPrevName()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager__static_init): __Dispatch_Table.getUrl()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager__static_init): __Dispatch_Table.hasMoreItems()Z
    //#output(org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager__static_init): __Dispatch_Table.setPage(I)V
    //#output(org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager__static_init): __Dispatch_Table.setUrl(Ljava/lang/String;)V
    //#output(org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager__static_init): org/apache/roller/weblogger/ui/rendering/pagers/AbstractPager.__Descendant_Table[org/apache/roller/weblogger/ui/rendering/pagers/SearchResultsFeedPager]
    //#output(org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager__static_init): org/apache/roller/weblogger/ui/rendering/pagers/Pager.__Descendant_Table[org/apache/roller/weblogger/ui/rendering/pagers/SearchResultsFeedPager]
    //#post(org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager__static_init): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/pagers/SearchResultsFeedPager] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager__static_init): org/apache/roller/weblogger/ui/rendering/pagers/AbstractPager.__Descendant_Table[org/apache/roller/weblogger/ui/rendering/pagers/SearchResultsFeedPager] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager__static_init): org/apache/roller/weblogger/ui/rendering/pagers/Pager.__Descendant_Table[org/apache/roller/weblogger/ui/rendering/pagers/SearchResultsFeedPager] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager__static_init): __Dispatch_Table.createURL(Ljava/lang/String;Ljava/util/Map;)Ljava/lang/String; == &createURL
    //#post(org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager__static_init): __Dispatch_Table.getHomeLink()Ljava/lang/String; == &getHomeLink
    //#post(org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager__static_init): __Dispatch_Table.getHomeName()Ljava/lang/String; == &getHomeName
    //#post(org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager__static_init): __Dispatch_Table.getItems()Ljava/util/List; == &getItems
    //#post(org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager__static_init): __Dispatch_Table.getNextLink()Ljava/lang/String; == &org/apache/roller/weblogger/ui/rendering/pagers/AbstractPager.getNextLink
    //#post(org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager__static_init): __Dispatch_Table.getNextName()Ljava/lang/String; == &org/apache/roller/weblogger/ui/rendering/pagers/AbstractPager.getNextName
    //#post(org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager__static_init): __Dispatch_Table.getPage()I == &org/apache/roller/weblogger/ui/rendering/pagers/AbstractPager.getPage
    //#post(org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager__static_init): __Dispatch_Table.getPrevLink()Ljava/lang/String; == &org/apache/roller/weblogger/ui/rendering/pagers/AbstractPager.getPrevLink
    //#post(org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager__static_init): __Dispatch_Table.getPrevName()Ljava/lang/String; == &org/apache/roller/weblogger/ui/rendering/pagers/AbstractPager.getPrevName
    //#post(org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager__static_init): __Dispatch_Table.getUrl()Ljava/lang/String; == &getUrl
    //#post(org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager__static_init): __Dispatch_Table.hasMoreItems()Z == &hasMoreItems
    //#post(org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager__static_init): __Dispatch_Table.setPage(I)V == &org/apache/roller/weblogger/ui/rendering/pagers/AbstractPager.setPage
    //#post(org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager__static_init): __Dispatch_Table.setUrl(Ljava/lang/String;)V == &org/apache/roller/weblogger/ui/rendering/pagers/AbstractPager.setUrl
    //#SearchResultsFeedPager.java:: end of method: org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager.org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager__static_init
    //#SearchResultsFeedPager.java:: end of class: org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsFeedPager
