//# 3 errors, 517 messages
//#
/*
    //#SearchResultsModel.java:1:1: class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#SearchResultsModel.java:1:1: method: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel.org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__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.model;

import java.io.IOException;
import java.sql.Timestamp;
import java.util.Date;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
import java.util.TreeSet;
import org.apache.commons.collections.comparators.ReverseComparator;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.StringEscapeUtils;
import org.apache.lucene.document.Document;
import org.apache.lucene.search.Hits;
import org.apache.roller.weblogger.WebloggerException;
import org.apache.roller.weblogger.business.search.FieldConstants;
import org.apache.roller.weblogger.business.search.operations.SearchOperation;
import org.apache.roller.weblogger.config.WebloggerRuntimeConfig;
import org.apache.roller.weblogger.business.search.IndexManager;
import org.apache.roller.weblogger.business.Weblogger;
import org.apache.roller.weblogger.business.WebloggerFactory;
import org.apache.roller.weblogger.business.WeblogManager;
import org.apache.roller.weblogger.pojos.WeblogEntry;
import org.apache.roller.weblogger.pojos.WeblogEntryWrapperComparator;
import org.apache.roller.weblogger.pojos.wrapper.WeblogCategoryWrapper;
import org.apache.roller.weblogger.pojos.wrapper.WeblogEntryWrapper;
import org.apache.roller.weblogger.ui.rendering.pagers.SearchResultsPager;
import org.apache.roller.weblogger.ui.rendering.pagers.WeblogEntriesPager;
import org.apache.roller.weblogger.ui.rendering.util.WeblogSearchRequest;
import org.apache.roller.util.DateUtil;
import org.apache.roller.weblogger.business.URLStrategy;
import org.apache.roller.weblogger.util.I18nMessages;
import org.apache.roller.weblogger.util.Utilities;


/**
 * Extends normal page renderer model to represent search results.
 *
 * Also adds some new methods which are specific only to search results.
 */
public class SearchResultsModel extends PageModel {
    //#SearchResultsModel.java:59: method: void org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel.org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel()
    //#input(void org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel()): this
    //#output(void org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel()): new TreeMap(SearchResultsModel#1) num objects
    //#output(void org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel()): new TreeSet(SearchResultsModel#3) num objects
    //#output(void org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel()): this.categories
    //#output(void org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel()): this.commentForm
    //#output(void org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel()): this.errorMessage
    //#output(void org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel()): this.hits
    //#output(void org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel()): this.limit
    //#output(void org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel()): this.offset
    //#output(void org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel()): this.pageRequest
    //#output(void org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel()): this.pager
    //#output(void org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel()): this.requestParameters
    //#output(void org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel()): this.results
    //#output(void org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel()): this.searchRequest
    //#output(void org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel()): this.urlStrategy
    //#output(void org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel()): this.weblog
    //#output(void org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel()): this.websiteSpecificSearch
    //#new obj(void org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel()): new TreeMap(SearchResultsModel#1)
    //#new obj(void org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel()): new TreeSet(SearchResultsModel#3)
    //#post(void org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel()): this.categories == &new TreeSet(SearchResultsModel#3)
    //#post(void org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel()): this.commentForm == null
    //#post(void org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel()): this.errorMessage == null
    //#post(void org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel()): this.pageRequest == null
    //#post(void org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel()): this.pager == null
    //#post(void org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel()): this.requestParameters == null
    //#post(void org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel()): this.searchRequest == null
    //#post(void org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel()): this.urlStrategy == null
    //#post(void org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel()): this.weblog == null
    //#post(void org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel()): this.hits == 0
    //#post(void org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel()): this.limit == 0
    //#post(void org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel()): this.offset == 0
    //#post(void org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel()): this.results == &new TreeMap(SearchResultsModel#1)
    //#post(void org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel()): this.websiteSpecificSearch == 1
    //#post(void org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel()): new TreeMap(SearchResultsModel#1) num objects == 1
    //#post(void org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel()): new TreeSet(SearchResultsModel#3) num objects == 1
    
    public static final int RESULTS_PER_PAGE = 10;
    
    
    // the original search request
    WeblogSearchRequest searchRequest = null;
    private URLStrategy urlStrategy = null;
    
    // the actual search results mapped by Day -> Set of entries
    private TreeMap results = new TreeMap(new ReverseComparator());
    //#SearchResultsModel.java:69: Warning: method not available
    //#    -- call on void org.apache.commons.collections.comparators.ReverseComparator()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel()
    //#    unanalyzed callee: void org.apache.commons.collections.comparators.ReverseComparator()
    
    // the pager used by the 3.0+ rendering system
    private SearchResultsPager pager = null;
    
    private int hits = 0;
    private int offset = 0;
    private int limit = 0;
    private Set categories = new TreeSet();
    private boolean websiteSpecificSearch = true;
    private String errorMessage = null;
    //#SearchResultsModel.java:79: end of method: void org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel.org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel()
    
    
    public void init(Map initData) throws WebloggerException {
        
        // we expect the init data to contain a searchRequest object
        searchRequest = (WeblogSearchRequest) initData.get("searchRequest");
    //#SearchResultsModel.java:85: method: void org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel.init(Map)
    //#input(void init(Map)): "Error getting key "._tainted
    //#input(void init(Map)): "error.searchProblem"._tainted
    //#input(void init(Map)): "request for messages in locale = "._tainted
    //#input(void init(Map)): initData
    //#input(void init(Map)): org/apache/roller/weblogger/pojos/wrapper/WeblogEntryWrapper.__Descendant_Table[org/apache/roller/weblogger/pojos/wrapper/WeblogEntryWrapper]
    //#input(void init(Map)): org/apache/roller/weblogger/pojos/wrapper/WeblogEntryWrapper.__Descendant_Table[others]
    //#input(void init(Map)): org/apache/roller/weblogger/pojos/wrapper/WeblogEntryWrapper.__Dispatch_Table.getPubTime()Ljava/sql/Timestamp;
    //#input(void init(Map)): org/apache/roller/weblogger/util/I18nMessages.__Descendant_Table[org/apache/roller/weblogger/util/I18nMessages]
    //#input(void init(Map)): org/apache/roller/weblogger/util/I18nMessages.__Descendant_Table[others]
    //#input(void init(Map)): org/apache/roller/weblogger/util/I18nMessages.log
    //#input(void init(Map)): org/apache/roller/weblogger/util/I18nMessages.messagesMap
    //#input(void init(Map)): this
    //#input(void init(Map)): this.hits
    //#input(void init(Map)): this.limit
    //#input(void init(Map)): this.offset
    //#input(void init(Map)): this.results
    //#input(void init(Map)): this.websiteSpecificSearch
    //#output(void init(Map)): new I18nMessages(getMessages#2) num objects
    //#output(void init(Map)): new I18nMessages(getMessages#2).__Tag
    //#output(void init(Map)): new I18nMessages(getMessages#2).bundle
    //#output(void init(Map)): new I18nMessages(getMessages#2).locale
    //#output(void init(Map)): new Locale(SearchResultsPager#1) num objects
    //#output(void init(Map)): new Locale(SearchResultsPager#1)._tainted
    //#output(void init(Map)): new Locale(SearchResultsPager#2) num objects
    //#output(void init(Map)): new Locale(SearchResultsPager#2)._tainted
    //#output(void init(Map)): new SearchResultsPager(init#1) num objects
    //#output(void init(Map)): new SearchResultsPager(init#1).__Tag
    //#output(void init(Map)): new SearchResultsPager(init#1).category
    //#output(void init(Map)): new SearchResultsPager(init#1).entries
    //#output(void init(Map)): new SearchResultsPager(init#1).locale
    //#output(void init(Map)): new SearchResultsPager(init#1).messageUtils
    //#output(void init(Map)): new SearchResultsPager(init#1).moreResults
    //#output(void init(Map)): new SearchResultsPager(init#1).page
    //#output(void init(Map)): new SearchResultsPager(init#1).query
    //#output(void init(Map)): new SearchResultsPager(init#1).urlStrategy
    //#output(void init(Map)): new SearchResultsPager(init#1).weblog
    //#output(void init(Map)): new SearchResultsPager(init#3) num objects
    //#output(void init(Map)): new SearchResultsPager(init#3).__Tag
    //#output(void init(Map)): new SearchResultsPager(init#3).category
    //#output(void init(Map)): new SearchResultsPager(init#3).entries
    //#output(void init(Map)): new SearchResultsPager(init#3).locale
    //#output(void init(Map)): new SearchResultsPager(init#3).messageUtils
    //#output(void init(Map)): new SearchResultsPager(init#3).moreResults
    //#output(void init(Map)): new SearchResultsPager(init#3).page
    //#output(void init(Map)): new SearchResultsPager(init#3).query
    //#output(void init(Map)): new SearchResultsPager(init#3).urlStrategy
    //#output(void init(Map)): new SearchResultsPager(init#3).weblog
    //#output(void init(Map)): new TreeSet(convertHitsToEntries#1) num objects
    //#output(void init(Map)): this.categories
    //#output(void init(Map)): this.commentForm
    //#output(void init(Map)): this.errorMessage
    //#output(void init(Map)): this.hits
    //#output(void init(Map)): this.limit
    //#output(void init(Map)): this.offset
    //#output(void init(Map)): this.pageRequest
    //#output(void init(Map)): this.pager
    //#output(void init(Map)): this.requestParameters
    //#output(void init(Map)): this.searchRequest
    //#output(void init(Map)): this.urlStrategy
    //#output(void init(Map)): this.weblog
    //#output(void init(Map)): this.websiteSpecificSearch
    //#new obj(void init(Map)): new I18nMessages(getMessages#2)
    //#new obj(void init(Map)): new Locale(SearchResultsPager#1)
    //#new obj(void init(Map)): new Locale(SearchResultsPager#2)
    //#new obj(void init(Map)): new SearchResultsPager(init#1)
    //#new obj(void init(Map)): new SearchResultsPager(init#3)
    //#new obj(void init(Map)): new TreeSet(convertHitsToEntries#1)
    //#pre[1] (void init(Map)): initData != null
    //#pre[8] (void init(Map)): org/apache/roller/weblogger/util/I18nMessages.messagesMap != null
    //#pre[4] (void init(Map)): (soft) init'ed(this.hits)
    //#pre[5] (void init(Map)): (soft) init'ed(this.limit)
    //#pre[6] (void init(Map)): (soft) init'ed(this.offset)
    //#pre[7] (void init(Map)): (soft) init'ed(this.websiteSpecificSearch)
    //#pre[10] (void init(Map)): (soft) this.results != null
    //#presumption(void init(Map)): getMessages(...).bundle != null
    //#presumption(void init(Map)): java.util.Map:get(...)@81 != null
    //#presumption(void init(Map)): java.util.Map:get(...)@85 != null
    //#presumption(void init(Map)): org.apache.roller.weblogger.business.Weblogger:getIndexManager(...)@106 != null
    //#presumption(void init(Map)): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@106 != null
    //#presumption(void init(Map)): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@93 != null
    //#presumption(void init(Map)): org.apache.roller.weblogger.business.search.operations.SearchOperation:getResults(...)@128 != null
    //#post(void init(Map)): this.categories == One-of{old this.categories, &new TreeSet(convertHitsToEntries#1)}
    //#post(void init(Map)): init'ed(this.commentForm)
    //#post(void init(Map)): possibly_updated(this.errorMessage)
    //#post(void init(Map)): (soft) init'ed(this.hits)
    //#post(void init(Map)): (soft) init'ed(this.limit)
    //#post(void init(Map)): (soft) init'ed(this.offset)
    //#post(void init(Map)): this.pageRequest != null
    //#post(void init(Map)): this.pager in Addr_Set{&new SearchResultsPager(init#1),&new SearchResultsPager(init#3)}
    //#post(void init(Map)): init'ed(this.requestParameters)
    //#post(void init(Map)): (soft) this.searchRequest != null
    //#post(void init(Map)): init'ed(this.urlStrategy)
    //#post(void init(Map)): init'ed(this.weblog)
    //#post(void init(Map)): (soft) init'ed(this.websiteSpecificSearch)
    //#post(void init(Map)): new I18nMessages(getMessages#2) num objects == One-of{0, 1, new I18nMessages(getMessages#2) num objects + One-of{0, 1}}
    //#post(void init(Map)): new I18nMessages(getMessages#2) num objects <= 2
    //#post(void init(Map)): init'ed(new I18nMessages(getMessages#2).__Tag)
    //#post(void init(Map)): init'ed(new I18nMessages(getMessages#2).bundle)
    //#post(void init(Map)): init'ed(new I18nMessages(getMessages#2).locale)
    //#post(void init(Map)): new Locale(SearchResultsPager#1) num objects == 0
    //#post(void init(Map)): new Locale(SearchResultsPager#1)._tainted == 0
    //#post(void init(Map)): new Locale(SearchResultsPager#2) num objects == 0
    //#post(void init(Map)): new Locale(SearchResultsPager#2)._tainted == 0
    //#post(void init(Map)): new SearchResultsPager(init#1) num objects <= 1
    //#post(void init(Map)): init'ed(new SearchResultsPager(init#1).__Tag)
    //#post(void init(Map)): init'ed(new SearchResultsPager(init#1).category)
    //#post(void init(Map)): init'ed(new SearchResultsPager(init#1).entries)
    //#post(void init(Map)): init'ed(new SearchResultsPager(init#1).locale)
    //#post(void init(Map)): init'ed(new SearchResultsPager(init#1).messageUtils)
    //#post(void init(Map)): init'ed(new SearchResultsPager(init#1).moreResults)
    //#post(void init(Map)): init'ed(new SearchResultsPager(init#1).page)
    //#post(void init(Map)): init'ed(new SearchResultsPager(init#1).query)
    //#post(void init(Map)): init'ed(new SearchResultsPager(init#1).urlStrategy)
    //#post(void init(Map)): init'ed(new SearchResultsPager(init#1).weblog)
    //#post(void init(Map)): new SearchResultsPager(init#3) num objects <= 1
    //#post(void init(Map)): init'ed(new SearchResultsPager(init#3).__Tag)
    //#post(void init(Map)): init'ed(new SearchResultsPager(init#3).category)
    //#post(void init(Map)): init'ed(new SearchResultsPager(init#3).entries)
    //#post(void init(Map)): init'ed(new SearchResultsPager(init#3).locale)
    //#post(void init(Map)): init'ed(new SearchResultsPager(init#3).messageUtils)
    //#post(void init(Map)): init'ed(new SearchResultsPager(init#3).moreResults)
    //#post(void init(Map)): init'ed(new SearchResultsPager(init#3).page)
    //#post(void init(Map)): init'ed(new SearchResultsPager(init#3).query)
    //#post(void init(Map)): init'ed(new SearchResultsPager(init#3).urlStrategy)
    //#post(void init(Map)): init'ed(new SearchResultsPager(init#3).weblog)
    //#post(void init(Map)): new TreeSet(convertHitsToEntries#1) num objects <= 1
    //#unanalyzed(void init(Map)): Effects-of-calling:java.util.TreeSet
    //#unanalyzed(void init(Map)): Effects-of-calling:org.apache.roller.weblogger.pojos.WeblogEntry:getPubTime
    //#unanalyzed(void init(Map)): Effects-of-calling:org.apache.roller.util.DateUtil:getStartOfDay
    //#unanalyzed(void init(Map)): Effects-of-calling:java.util.TreeMap:get
    //#unanalyzed(void init(Map)): Effects-of-calling:org.apache.roller.weblogger.pojos.WeblogEntryWrapperComparator
    //#unanalyzed(void init(Map)): Effects-of-calling:java.util.TreeMap:put
    //#unanalyzed(void init(Map)): Effects-of-calling:java.util.TreeSet:add
    //#unanalyzed(void init(Map)): Effects-of-calling:org.apache.roller.weblogger.ui.rendering.util.WeblogSearchRequest:getPageNum
    //#unanalyzed(void init(Map)): Effects-of-calling:org.apache.lucene.search.Hits:length
    //#unanalyzed(void init(Map)): Effects-of-calling:org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger
    //#unanalyzed(void init(Map)): Effects-of-calling:org.apache.roller.weblogger.business.Weblogger:getWeblogManager
    //#unanalyzed(void init(Map)): Effects-of-calling:java.util.Date
    //#unanalyzed(void init(Map)): Effects-of-calling:java.util.Date:getTime
    //#unanalyzed(void init(Map)): Effects-of-calling:java.sql.Timestamp
    //#unanalyzed(void init(Map)): Effects-of-calling:org.apache.lucene.search.Hits:doc
    //#unanalyzed(void init(Map)): Effects-of-calling:org.apache.lucene.document.Document:getField
    //#unanalyzed(void init(Map)): Effects-of-calling:org.apache.lucene.document.Field:stringValue
    //#unanalyzed(void init(Map)): Effects-of-calling:org.apache.roller.weblogger.ui.rendering.util.WeblogSearchRequest:getWeblogHandle
    //#unanalyzed(void init(Map)): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(void init(Map)): Effects-of-calling:org.apache.roller.weblogger.business.WeblogManager:getWeblogEntry
    //#unanalyzed(void init(Map)): Effects-of-calling:java.sql.Timestamp:before
    //#unanalyzed(void init(Map)): Effects-of-calling:java.util.TreeSet:size
    //#unanalyzed(void init(Map)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void init(Map)): Effects-of-calling:org.apache.roller.weblogger.WebloggerException
    //#unanalyzed(void init(Map)): Effects-of-calling:org.apache.roller.weblogger.ui.rendering.util.WeblogSearchRequest:getWeblog
    //#unanalyzed(void init(Map)): Effects-of-calling:org.apache.roller.weblogger.ui.rendering.util.WeblogSearchRequest:getQuery
    //#unanalyzed(void init(Map)): Effects-of-calling:org.apache.roller.weblogger.ui.rendering.util.WeblogSearchRequest:getWeblogCategoryName
    //#unanalyzed(void init(Map)): Effects-of-calling:org.apache.roller.weblogger.ui.rendering.util.WeblogSearchRequest:getLocale
    //#unanalyzed(void init(Map)): Effects-of-calling:java.lang.String:split
    //#unanalyzed(void init(Map)): Effects-of-calling:java.util.Locale
    //#unanalyzed(void init(Map)): Effects-of-calling:org.apache.roller.weblogger.pojos.Weblog:getLocaleInstance
    //#unanalyzed(void init(Map)): Effects-of-calling:java.util.ResourceBundle:getBundle
    //#unanalyzed(void init(Map)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void init(Map)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void init(Map)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void init(Map)): Effects-of-calling:org.apache.commons.logging.Log:debug
    //#unanalyzed(void init(Map)): Effects-of-calling:java.util.Map:get
    //#unanalyzed(void init(Map)): Effects-of-calling:java.util.Map:put
    //#unanalyzed(void init(Map)): Effects-of-calling:java.util.Locale:toString
    //#unanalyzed(void init(Map)): Effects-of-calling:java.util.ResourceBundle:getString
    //#unanalyzed(void init(Map)): Effects-of-calling:org.apache.commons.logging.Log:warn
    //#unanalyzed(void init(Map)): Effects-of-calling:org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest:instanceof
    //#unanalyzed(void init(Map)): Effects-of-calling:org.apache.roller.weblogger.business.Weblogger:getUrlStrategy
    //#unanalyzed(void init(Map)): Effects-of-calling:org.apache.roller.weblogger.ui.rendering.util.WeblogPageRequest:getWeblog
    //#test_vector(void init(Map)): java.util.Map:get(...)@91: Inverse{null}, Addr_Set{null}
    //#test_vector(void init(Map)): org.apache.commons.lang.StringUtils:isNotEmpty(...)@117: {0}, {1}
    //#test_vector(void init(Map)): org.apache.roller.weblogger.business.search.operations.SearchOperation:getResultsCount(...)@124: {-2_147_483_648..-2, 0..4_294_967_295}, {-1}
    //#test_vector(void init(Map)): org.apache.roller.weblogger.config.WebloggerRuntimeConfig:isSiteWideWeblog(...)@111: {0}, {1}
    //#test_vector(void init(Map)): org.apache.roller.weblogger.ui.rendering.util.WeblogSearchRequest:getQuery(...)@100: Inverse{null}, Addr_Set{null}
        if(searchRequest == null) {
            throw new WebloggerException("expected searchRequest from init data");
        }
        
        // look for url strategy
        urlStrategy = (URLStrategy) initData.get("urlStrategy");
        if(urlStrategy == null) {
            urlStrategy = WebloggerFactory.getWeblogger().getUrlStrategy();
    //#SearchResultsModel.java:93: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void init(Map)
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#SearchResultsModel.java:93: Warning: method not available
    //#    -- call on URLStrategy org.apache.roller.weblogger.business.Weblogger:getUrlStrategy()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void init(Map)
    //#    unanalyzed callee: URLStrategy org.apache.roller.weblogger.business.Weblogger:getUrlStrategy()
        }
        
        // let parent initialize
        super.init(initData);
        
        // if there is no query, then we are done
        if(searchRequest.getQuery() == null) {
    //#SearchResultsModel.java:100: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.ui.rendering.util.WeblogSearchRequest:getQuery()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void init(Map)
    //#    unanalyzed callee: String org.apache.roller.weblogger.ui.rendering.util.WeblogSearchRequest:getQuery()
            pager = new SearchResultsPager(urlStrategy, searchRequest, results, false);
            return;
        }
        
        // setup the search
        IndexManager indexMgr = WebloggerFactory.getWeblogger().getIndexManager();
    //#SearchResultsModel.java:106: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void init(Map)
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#SearchResultsModel.java:106: Warning: method not available
    //#    -- call on IndexManager org.apache.roller.weblogger.business.Weblogger:getIndexManager()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void init(Map)
    //#    unanalyzed callee: IndexManager org.apache.roller.weblogger.business.Weblogger:getIndexManager()
        
        SearchOperation search = new SearchOperation(indexMgr);
    //#SearchResultsModel.java:108: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.business.search.operations.SearchOperation(IndexManager)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void init(Map)
    //#    unanalyzed callee: void org.apache.roller.weblogger.business.search.operations.SearchOperation(IndexManager)
        search.setTerm(searchRequest.getQuery());
    //#SearchResultsModel.java:109: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.ui.rendering.util.WeblogSearchRequest:getQuery()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void init(Map)
    //#    unanalyzed callee: String org.apache.roller.weblogger.ui.rendering.util.WeblogSearchRequest:getQuery()
    //#SearchResultsModel.java:109: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.business.search.operations.SearchOperation:setTerm(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void init(Map)
    //#    unanalyzed callee: void org.apache.roller.weblogger.business.search.operations.SearchOperation:setTerm(String)
        
        if(WebloggerRuntimeConfig.isSiteWideWeblog(searchRequest.getWeblogHandle())) {
    //#SearchResultsModel.java:111: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.ui.rendering.util.WeblogSearchRequest:getWeblogHandle()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void init(Map)
    //#    unanalyzed callee: String org.apache.roller.weblogger.ui.rendering.util.WeblogSearchRequest:getWeblogHandle()
    //#SearchResultsModel.java:111: Warning: method not available
    //#    -- call on bool org.apache.roller.weblogger.config.WebloggerRuntimeConfig:isSiteWideWeblog(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void init(Map)
    //#    unanalyzed callee: bool org.apache.roller.weblogger.config.WebloggerRuntimeConfig:isSiteWideWeblog(String)
            this.websiteSpecificSearch = false;
        } else {
            search.setWebsiteHandle(searchRequest.getWeblogHandle());
    //#SearchResultsModel.java:114: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.ui.rendering.util.WeblogSearchRequest:getWeblogHandle()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void init(Map)
    //#    unanalyzed callee: String org.apache.roller.weblogger.ui.rendering.util.WeblogSearchRequest:getWeblogHandle()
    //#SearchResultsModel.java:114: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.business.search.operations.SearchOperation:setWebsiteHandle(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void init(Map)
    //#    unanalyzed callee: void org.apache.roller.weblogger.business.search.operations.SearchOperation:setWebsiteHandle(String)
        }
        
        if(StringUtils.isNotEmpty(searchRequest.getWeblogCategoryName())) {
    //#SearchResultsModel.java:117: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.ui.rendering.util.WeblogSearchRequest:getWeblogCategoryName()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void init(Map)
    //#    unanalyzed callee: String org.apache.roller.weblogger.ui.rendering.util.WeblogSearchRequest:getWeblogCategoryName()
    //#SearchResultsModel.java:117: Warning: method not available
    //#    -- call on bool org.apache.commons.lang.StringUtils:isNotEmpty(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void init(Map)
    //#    unanalyzed callee: bool org.apache.commons.lang.StringUtils:isNotEmpty(String)
            search.setCategory(searchRequest.getWeblogCategoryName());
    //#SearchResultsModel.java:118: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.ui.rendering.util.WeblogSearchRequest:getWeblogCategoryName()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void init(Map)
    //#    unanalyzed callee: String org.apache.roller.weblogger.ui.rendering.util.WeblogSearchRequest:getWeblogCategoryName()
    //#SearchResultsModel.java:118: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.business.search.operations.SearchOperation:setCategory(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void init(Map)
    //#    unanalyzed callee: void org.apache.roller.weblogger.business.search.operations.SearchOperation:setCategory(String)
        }
        
        // execute search
        indexMgr.executeIndexOperationNow(search);
    //#SearchResultsModel.java:122: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.business.search.IndexManager:executeIndexOperationNow(IndexOperation)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void init(Map)
    //#    unanalyzed callee: void org.apache.roller.weblogger.business.search.IndexManager:executeIndexOperationNow(IndexOperation)
        
        if (search.getResultsCount() == -1) {
    //#SearchResultsModel.java:124: Warning: method not available
    //#    -- call on int org.apache.roller.weblogger.business.search.operations.SearchOperation:getResultsCount()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void init(Map)
    //#    unanalyzed callee: int org.apache.roller.weblogger.business.search.operations.SearchOperation:getResultsCount()
            // this means there has been a parsing (or IO) error
            this.errorMessage = I18nMessages.getMessages(searchRequest.getLocaleInstance()).getString("error.searchProblem");
    //#SearchResultsModel.java:126: Warning: method not available
    //#    -- call on Locale org.apache.roller.weblogger.ui.rendering.util.WeblogSearchRequest:getLocaleInstance()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void init(Map)
    //#    unanalyzed callee: Locale org.apache.roller.weblogger.ui.rendering.util.WeblogSearchRequest:getLocaleInstance()
    //#SearchResultsModel.java:126: ?precondition failure
    //#    org/apache/roller/weblogger/util/I18nMessages.getMessages: locale != null
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void init(Map)
    //#    basic block: bb_11
    //#    assertion: org.apache.roller.weblogger.ui.rendering.util.WeblogSearchRequest:getLocaleInstance(...)@126 != 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: org.apache.roller.weblogger.ui.rendering.util.WeblogSearchRequest:getLocaleInstance(...)@126
    //#    Expected: Inverse{null}
    //#    Bad: Addr_Set{null}
    //#    Attribs:  Ptr  null in Bad  Uncertain
        } else {
            Hits hits = search.getResults();
    //#SearchResultsModel.java:128: Warning: method not available
    //#    -- call on Hits org.apache.roller.weblogger.business.search.operations.SearchOperation:getResults()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void init(Map)
    //#    unanalyzed callee: Hits org.apache.roller.weblogger.business.search.operations.SearchOperation:getResults()
            this.hits = search.getResultsCount();
    //#SearchResultsModel.java:129: Warning: method not available
    //#    -- call on int org.apache.roller.weblogger.business.search.operations.SearchOperation:getResultsCount()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void init(Map)
    //#    unanalyzed callee: int org.apache.roller.weblogger.business.search.operations.SearchOperation:getResultsCount()
            
            // Convert the Hits into WeblogEntryData instances.
            convertHitsToEntries(hits);
        }
        
        // search completed, setup pager based on results
        pager = new SearchResultsPager(urlStrategy, searchRequest, results, (hits > (offset+limit)));
    }
    //#SearchResultsModel.java:137: end of method: void org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel.init(Map)
    
    /**
     * Is this page showing search results?
     */
    public boolean isSearchResults() {
        return true;
    //#SearchResultsModel.java:143: method: bool org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel.isSearchResults()
    //#output(bool isSearchResults()): return_value
    //#post(bool isSearchResults()): return_value == 1
    //#SearchResultsModel.java:143: end of method: bool org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel.isSearchResults()
    }
    
    // override page model and return search results pager
    public WeblogEntriesPager getWeblogEntriesPager() {
        return pager;
    //#SearchResultsModel.java:148: method: WeblogEntriesPager org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel.getWeblogEntriesPager()
    //#input(WeblogEntriesPager getWeblogEntriesPager()): this
    //#input(WeblogEntriesPager getWeblogEntriesPager()): this.pager
    //#output(WeblogEntriesPager getWeblogEntriesPager()): return_value
    //#pre[2] (WeblogEntriesPager getWeblogEntriesPager()): init'ed(this.pager)
    //#post(WeblogEntriesPager getWeblogEntriesPager()): return_value == this.pager
    //#post(WeblogEntriesPager getWeblogEntriesPager()): init'ed(return_value)
    //#SearchResultsModel.java:148: end of method: WeblogEntriesPager org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel.getWeblogEntriesPager()
    }
    
    // override page model and return search results pager
    public WeblogEntriesPager getWeblogEntriesPager(String category) {
        return pager;
    //#SearchResultsModel.java:153: method: WeblogEntriesPager org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel.getWeblogEntriesPager(String)
    //#input(WeblogEntriesPager getWeblogEntriesPager(String)): this
    //#input(WeblogEntriesPager getWeblogEntriesPager(String)): this.pager
    //#output(WeblogEntriesPager getWeblogEntriesPager(String)): return_value
    //#pre[2] (WeblogEntriesPager getWeblogEntriesPager(String)): init'ed(this.pager)
    //#post(WeblogEntriesPager getWeblogEntriesPager(String)): return_value == this.pager
    //#post(WeblogEntriesPager getWeblogEntriesPager(String)): init'ed(return_value)
    //#SearchResultsModel.java:153: end of method: WeblogEntriesPager org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel.getWeblogEntriesPager(String)
    }
    
    private void convertHitsToEntries(Hits hits) throws WebloggerException {
        
        // determine offset
        this.offset = searchRequest.getPageNum() * RESULTS_PER_PAGE;
    //#SearchResultsModel.java:159: method: void org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel.convertHitsToEntries(Hits)
    //#SearchResultsModel.java:159: Warning: method not available
    //#    -- call on int org.apache.roller.weblogger.ui.rendering.util.WeblogSearchRequest:getPageNum()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void convertHitsToEntries(Hits)
    //#    unanalyzed callee: int org.apache.roller.weblogger.ui.rendering.util.WeblogSearchRequest:getPageNum()
    //#input(void convertHitsToEntries(Hits)): hits
    //#input(void convertHitsToEntries(Hits)): org/apache/roller/weblogger/pojos/wrapper/WeblogEntryWrapper.__Descendant_Table[org/apache/roller/weblogger/pojos/wrapper/WeblogEntryWrapper]
    //#input(void convertHitsToEntries(Hits)): org/apache/roller/weblogger/pojos/wrapper/WeblogEntryWrapper.__Descendant_Table[others]
    //#input(void convertHitsToEntries(Hits)): org/apache/roller/weblogger/pojos/wrapper/WeblogEntryWrapper.__Dispatch_Table.getPubTime()Ljava/sql/Timestamp;
    //#input(void convertHitsToEntries(Hits)): this
    //#input(void convertHitsToEntries(Hits)): this.results
    //#input(void convertHitsToEntries(Hits)): this.searchRequest
    //#input(void convertHitsToEntries(Hits)): this.websiteSpecificSearch
    //#output(void convertHitsToEntries(Hits)): new TreeSet(convertHitsToEntries#1) num objects
    //#output(void convertHitsToEntries(Hits)): this.categories
    //#output(void convertHitsToEntries(Hits)): this.limit
    //#output(void convertHitsToEntries(Hits)): this.offset
    //#new obj(void convertHitsToEntries(Hits)): new TreeSet(convertHitsToEntries#1)
    //#pre[1] (void convertHitsToEntries(Hits)): hits != null
    //#pre[5] (void convertHitsToEntries(Hits)): this.searchRequest != null
    //#pre[4] (void convertHitsToEntries(Hits)): (soft) this.results != null
    //#pre[7] (void convertHitsToEntries(Hits)): (soft) init'ed(this.websiteSpecificSearch)
    //#presumption(void convertHitsToEntries(Hits)): org.apache.lucene.document.Document:getField(...)@184 != null
    //#presumption(void convertHitsToEntries(Hits)): org.apache.lucene.document.Document:getField(...)@189 != null
    //#presumption(void convertHitsToEntries(Hits)): org.apache.lucene.document.Document:getField(...)@193 != null
    //#presumption(void convertHitsToEntries(Hits)): org.apache.lucene.document.Document:getField(...)@197 != null
    //#presumption(void convertHitsToEntries(Hits)): org.apache.lucene.document.Field:stringValue(...)@184 != null
    //#presumption(void convertHitsToEntries(Hits)): org.apache.lucene.search.Hits:doc(...)@183 != null
    //#presumption(void convertHitsToEntries(Hits)): org.apache.roller.weblogger.business.Weblogger:getWeblogManager(...)@173 != null
    //#presumption(void convertHitsToEntries(Hits)): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@172 != null
    //#presumption(void convertHitsToEntries(Hits)): org.apache.roller.weblogger.pojos.WeblogEntry:getPubTime(...)@205 != null
    //#presumption(void convertHitsToEntries(Hits)): org.apache.roller.weblogger.ui.rendering.util.WeblogSearchRequest:getPageNum(...)@159 in -214_748_364..429_496_729
    //#presumption(void convertHitsToEntries(Hits)): this.offset - org.apache.lucene.search.Hits:length(...)@167 in -4_294_967_295..2_147_483_648
    //#post(void convertHitsToEntries(Hits)): this.categories == One-of{old this.categories, &new TreeSet(convertHitsToEntries#1)}
    //#post(void convertHitsToEntries(Hits)): init'ed(this.limit)
    //#post(void convertHitsToEntries(Hits)): (soft) this.offset in -2_147_483_640..4_294_967_290
    //#post(void convertHitsToEntries(Hits)): new TreeSet(convertHitsToEntries#1) num objects == 1
    //#post(void convertHitsToEntries(Hits)): (soft) this.offset + this.limit in -2_147_483_648..4_294_967_295
    //#unanalyzed(void convertHitsToEntries(Hits)): Effects-of-calling:org.apache.roller.weblogger.pojos.WeblogEntry:getPubTime
    //#unanalyzed(void convertHitsToEntries(Hits)): Effects-of-calling:org.apache.roller.util.DateUtil:getStartOfDay
    //#unanalyzed(void convertHitsToEntries(Hits)): Effects-of-calling:java.util.TreeMap:get
    //#unanalyzed(void convertHitsToEntries(Hits)): Effects-of-calling:org.apache.roller.weblogger.pojos.WeblogEntryWrapperComparator
    //#unanalyzed(void convertHitsToEntries(Hits)): Effects-of-calling:java.util.TreeSet
    //#unanalyzed(void convertHitsToEntries(Hits)): Effects-of-calling:java.util.TreeMap:put
    //#unanalyzed(void convertHitsToEntries(Hits)): Effects-of-calling:java.util.TreeSet:add
    //#test_vector(void convertHitsToEntries(Hits)): this.websiteSpecificSearch: {0}, {1}
    //#test_vector(void convertHitsToEntries(Hits)): java.lang.String:equals(...)@186: {0}, {1}
    //#test_vector(void convertHitsToEntries(Hits)): java.sql.Timestamp:before(...)@205: {0}, {1}
    //#test_vector(void convertHitsToEntries(Hits)): java.util.TreeSet:size(...)@210: {-2_147_483_648..0}, {1..4_294_967_295}
    //#test_vector(void convertHitsToEntries(Hits)): org.apache.lucene.document.Document:getField(...)@196: Addr_Set{null}, Inverse{null}
        if(this.offset >= hits.length()) {
    //#SearchResultsModel.java:160: Warning: method not available
    //#    -- call on int org.apache.lucene.search.Hits:length()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void convertHitsToEntries(Hits)
    //#    unanalyzed callee: int org.apache.lucene.search.Hits:length()
            this.offset = 0;
        }
        
        // determine limit
        this.limit = RESULTS_PER_PAGE;
        if(this.offset + this.limit > hits.length()) {
    //#SearchResultsModel.java:166: Warning: method not available
    //#    -- call on int org.apache.lucene.search.Hits:length()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void convertHitsToEntries(Hits)
    //#    unanalyzed callee: int org.apache.lucene.search.Hits:length()
            this.limit = hits.length() - this.offset;
    //#SearchResultsModel.java:167: Warning: method not available
    //#    -- call on int org.apache.lucene.search.Hits:length()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void convertHitsToEntries(Hits)
    //#    unanalyzed callee: int org.apache.lucene.search.Hits:length()
        }
        
        try {
            TreeSet categories = new TreeSet();
            Weblogger roller = WebloggerFactory.getWeblogger();
    //#SearchResultsModel.java:172: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void convertHitsToEntries(Hits)
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
            WeblogManager weblogMgr = roller.getWeblogManager();
    //#SearchResultsModel.java:173: Warning: method not available
    //#    -- call on WeblogManager org.apache.roller.weblogger.business.Weblogger:getWeblogManager()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void convertHitsToEntries(Hits)
    //#    unanalyzed callee: WeblogManager org.apache.roller.weblogger.business.Weblogger:getWeblogManager()
            
            WeblogEntry entry = null;
    //#SearchResultsModel.java:175: Warning: unused assignment
    //#    unused assignment into entry
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void convertHitsToEntries(Hits)
    //#    Attribs:  Uncertain
            Document doc = null;
    //#SearchResultsModel.java:176: Warning: unused assignment
    //#    unused assignment into doc
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void convertHitsToEntries(Hits)
    //#    Attribs:  Uncertain
            String handle = null;
    //#SearchResultsModel.java:177: Warning: unused assignment
    //#    unused assignment into handle
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void convertHitsToEntries(Hits)
    //#    Attribs:  Uncertain
            Timestamp now = new Timestamp(new Date().getTime());
            for(int i = offset; i < offset+limit; i++) {
                
                entry = null; // reset for each iteration
    //#SearchResultsModel.java:181: Warning: unused assignment
    //#    unused assignment into entry
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void convertHitsToEntries(Hits)
    //#    Attribs:  Uncertain
                
                doc = hits.doc(i);
    //#SearchResultsModel.java:183: Warning: method not available
    //#    -- call on Document org.apache.lucene.search.Hits:doc(int)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void convertHitsToEntries(Hits)
    //#    unanalyzed callee: Document org.apache.lucene.search.Hits:doc(int)
                handle = doc.getField(FieldConstants.WEBSITE_HANDLE).stringValue();
    //#SearchResultsModel.java:184: Warning: method not available
    //#    -- call on Field org.apache.lucene.document.Document:getField(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void convertHitsToEntries(Hits)
    //#    unanalyzed callee: Field org.apache.lucene.document.Document:getField(String)
    //#SearchResultsModel.java:184: Warning: method not available
    //#    -- call on String org.apache.lucene.document.Field:stringValue()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void convertHitsToEntries(Hits)
    //#    unanalyzed callee: String org.apache.lucene.document.Field:stringValue()
                
                if(websiteSpecificSearch &&
    //#SearchResultsModel.java:186: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.ui.rendering.util.WeblogSearchRequest:getWeblogHandle()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void convertHitsToEntries(Hits)
    //#    unanalyzed callee: String org.apache.roller.weblogger.ui.rendering.util.WeblogSearchRequest:getWeblogHandle()
                        handle.equals(searchRequest.getWeblogHandle())) {
                    
                    entry = weblogMgr.getWeblogEntry(
    //#SearchResultsModel.java:189: Warning: method not available
    //#    -- call on Field org.apache.lucene.document.Document:getField(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void convertHitsToEntries(Hits)
    //#    unanalyzed callee: Field org.apache.lucene.document.Document:getField(String)
    //#SearchResultsModel.java:189: Warning: method not available
    //#    -- call on String org.apache.lucene.document.Field:stringValue()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void convertHitsToEntries(Hits)
    //#    unanalyzed callee: String org.apache.lucene.document.Field:stringValue()
    //#SearchResultsModel.java:189: Warning: method not available
    //#    -- call on WeblogEntry org.apache.roller.weblogger.business.WeblogManager:getWeblogEntry(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void convertHitsToEntries(Hits)
    //#    unanalyzed callee: WeblogEntry org.apache.roller.weblogger.business.WeblogManager:getWeblogEntry(String)
                            doc.getField(FieldConstants.ID).stringValue());
                } else {
                    
                    entry = weblogMgr.getWeblogEntry(
    //#SearchResultsModel.java:193: Warning: method not available
    //#    -- call on Field org.apache.lucene.document.Document:getField(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void convertHitsToEntries(Hits)
    //#    unanalyzed callee: Field org.apache.lucene.document.Document:getField(String)
    //#SearchResultsModel.java:193: Warning: method not available
    //#    -- call on String org.apache.lucene.document.Field:stringValue()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void convertHitsToEntries(Hits)
    //#    unanalyzed callee: String org.apache.lucene.document.Field:stringValue()
    //#SearchResultsModel.java:193: Warning: method not available
    //#    -- call on WeblogEntry org.apache.roller.weblogger.business.WeblogManager:getWeblogEntry(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void convertHitsToEntries(Hits)
    //#    unanalyzed callee: WeblogEntry org.apache.roller.weblogger.business.WeblogManager:getWeblogEntry(String)
                            doc.getField(FieldConstants.ID).stringValue());
                    
                    if (doc.getField(FieldConstants.CATEGORY) != null) {
    //#SearchResultsModel.java:196: Warning: method not available
    //#    -- call on Field org.apache.lucene.document.Document:getField(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void convertHitsToEntries(Hits)
    //#    unanalyzed callee: Field org.apache.lucene.document.Document:getField(String)
                        categories.add(
    //#SearchResultsModel.java:197: Warning: method not available
    //#    -- call on Field org.apache.lucene.document.Document:getField(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void convertHitsToEntries(Hits)
    //#    unanalyzed callee: Field org.apache.lucene.document.Document:getField(String)
    //#SearchResultsModel.java:197: Warning: method not available
    //#    -- call on String org.apache.lucene.document.Field:stringValue()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void convertHitsToEntries(Hits)
    //#    unanalyzed callee: String org.apache.lucene.document.Field:stringValue()
                                doc.getField(FieldConstants.CATEGORY).stringValue());
                    }
                }
                
                // maybe null if search result returned inactive user
                // or entry's user is not the requested user.
                // but don't return future posts
                if (entry != null && entry.getPubTime().before(now)) {
    //#SearchResultsModel.java:205: Warning: method not available
    //#    -- call on Timestamp org.apache.roller.weblogger.pojos.WeblogEntry:getPubTime()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void convertHitsToEntries(Hits)
    //#    unanalyzed callee: Timestamp org.apache.roller.weblogger.pojos.WeblogEntry:getPubTime()
                    addEntryToResults(WeblogEntryWrapper.wrap(entry, urlStrategy));
    //#SearchResultsModel.java:206: ?use of default init
    //#    init'ed(this.urlStrategy)
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void convertHitsToEntries(Hits)
    //#    basic block: bb_15
    //#    assertion: init'ed(this.urlStrategy)
    //#    VN: this.urlStrategy
    //#    Expected: Univ-VN-Set
    //#    Bad: {Invalid}
    //#    Attribs:  Ptr  Bad only invalid
                }
            }
            
            if(categories.size() > 0) {
                this.categories = categories;
            }
        } catch(IOException e) {
            throw new WebloggerException(e);
        }
    }
    //#SearchResultsModel.java:216: end of method: void org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel.convertHitsToEntries(Hits)
    
    
    private void addEntryToResults(WeblogEntryWrapper entry) {
        
        // convert entry's each date to midnight (00m 00h 00s)
        Date midnight = DateUtil.getStartOfDay(entry.getPubTime());
    //#SearchResultsModel.java:222: method: void org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel.addEntryToResults(WeblogEntryWrapper)
    //#SearchResultsModel.java:222: Warning: method not available
    //#    -- call on Date org.apache.roller.util.DateUtil:getStartOfDay(Date)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void addEntryToResults(WeblogEntryWrapper)
    //#    unanalyzed callee: Date org.apache.roller.util.DateUtil:getStartOfDay(Date)
    //#input(void addEntryToResults(WeblogEntryWrapper)): entry
    //#input(void addEntryToResults(WeblogEntryWrapper)): entry.__Tag
    //#input(void addEntryToResults(WeblogEntryWrapper)): entry.pojo
    //#input(void addEntryToResults(WeblogEntryWrapper)): org/apache/roller/weblogger/pojos/wrapper/WeblogEntryWrapper.__Descendant_Table[org/apache/roller/weblogger/pojos/wrapper/WeblogEntryWrapper]
    //#input(void addEntryToResults(WeblogEntryWrapper)): org/apache/roller/weblogger/pojos/wrapper/WeblogEntryWrapper.__Descendant_Table[others]
    //#input(void addEntryToResults(WeblogEntryWrapper)): org/apache/roller/weblogger/pojos/wrapper/WeblogEntryWrapper.__Dispatch_Table.getPubTime()Ljava/sql/Timestamp;
    //#input(void addEntryToResults(WeblogEntryWrapper)): this
    //#input(void addEntryToResults(WeblogEntryWrapper)): this.results
    //#pre[1] (void addEntryToResults(WeblogEntryWrapper)): entry != null
    //#pre[2] (void addEntryToResults(WeblogEntryWrapper)): entry.__Tag == org/apache/roller/weblogger/pojos/wrapper/WeblogEntryWrapper
    //#pre[3] (void addEntryToResults(WeblogEntryWrapper)): entry.pojo != null
    //#pre[5] (void addEntryToResults(WeblogEntryWrapper)): this.results != null
    //#unanalyzed(void addEntryToResults(WeblogEntryWrapper)): Effects-of-calling:org.apache.roller.weblogger.pojos.WeblogEntry:getPubTime
    //#test_vector(void addEntryToResults(WeblogEntryWrapper)): java.util.TreeMap:get(...)@226: Inverse{null}, Addr_Set{null}
        
        // ensure we do not get duplicates from Lucene by
        // using a Set Collection.  Entries sorted by pubTime.
        TreeSet set = (TreeSet) this.results.get(midnight);
        if (set == null) {
            // date is not mapped yet, so we need a new Set
            set = new TreeSet( new WeblogEntryWrapperComparator());
    //#SearchResultsModel.java:229: Warning: method not available
    //#    -- call on void org.apache.roller.weblogger.pojos.WeblogEntryWrapperComparator()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: void addEntryToResults(WeblogEntryWrapper)
    //#    unanalyzed callee: void org.apache.roller.weblogger.pojos.WeblogEntryWrapperComparator()
            this.results.put(midnight, set);
        }
        set.add(entry);
    }
    //#SearchResultsModel.java:233: end of method: void org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel.addEntryToResults(WeblogEntryWrapper)
    
    
    public String getTerm() {
        String query = searchRequest.getQuery();
    //#SearchResultsModel.java:237: method: String org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel.getTerm()
    //#SearchResultsModel.java:237: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.ui.rendering.util.WeblogSearchRequest:getQuery()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: String getTerm()
    //#    unanalyzed callee: String org.apache.roller.weblogger.ui.rendering.util.WeblogSearchRequest:getQuery()
    //#input(String getTerm()): this
    //#input(String getTerm()): this.searchRequest
    //#output(String getTerm()): return_value
    //#pre[2] (String getTerm()): this.searchRequest != null
    //#post(String getTerm()): init'ed(return_value)
    //#unanalyzed(String getTerm()): Effects-of-calling:org.apache.commons.lang.StringUtils:replace
        return (query == null) ? "" : StringEscapeUtils.escapeXml(Utilities.escapeHTML(query));
    //#SearchResultsModel.java:238: Warning: method not available
    //#    -- call on String org.apache.commons.lang.StringEscapeUtils:escapeXml(String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: String getTerm()
    //#    unanalyzed callee: String org.apache.commons.lang.StringEscapeUtils:escapeXml(String)
    //#SearchResultsModel.java:238: end of method: String org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel.getTerm()
    }

    public String getRawTerm() {
        return (searchRequest.getQuery() == null) ? "" : searchRequest.getQuery();
    //#SearchResultsModel.java:242: method: String org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel.getRawTerm()
    //#SearchResultsModel.java:242: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.ui.rendering.util.WeblogSearchRequest:getQuery()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: String getRawTerm()
    //#    unanalyzed callee: String org.apache.roller.weblogger.ui.rendering.util.WeblogSearchRequest:getQuery()
    //#input(String getRawTerm()): this
    //#input(String getRawTerm()): this.searchRequest
    //#output(String getRawTerm()): return_value
    //#pre[2] (String getRawTerm()): this.searchRequest != null
    //#post(String getRawTerm()): init'ed(return_value)
    //#SearchResultsModel.java:242: end of method: String org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel.getRawTerm()
    }

    public int getHits() {
        return hits;
    //#SearchResultsModel.java:246: method: int org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel.getHits()
    //#input(int getHits()): this
    //#input(int getHits()): this.hits
    //#output(int getHits()): return_value
    //#pre[2] (int getHits()): init'ed(this.hits)
    //#post(int getHits()): return_value == this.hits
    //#post(int getHits()): init'ed(return_value)
    //#SearchResultsModel.java:246: end of method: int org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel.getHits()
    }

    public int getOffset() {
        return offset;
    //#SearchResultsModel.java:250: method: int org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel.getOffset()
    //#input(int getOffset()): this
    //#input(int getOffset()): this.offset
    //#output(int getOffset()): return_value
    //#pre[2] (int getOffset()): init'ed(this.offset)
    //#post(int getOffset()): return_value == this.offset
    //#post(int getOffset()): init'ed(return_value)
    //#SearchResultsModel.java:250: end of method: int org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel.getOffset()
    }

    public int getLimit() {
        return limit;
    //#SearchResultsModel.java:254: method: int org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel.getLimit()
    //#input(int getLimit()): this
    //#input(int getLimit()): this.limit
    //#output(int getLimit()): return_value
    //#pre[2] (int getLimit()): init'ed(this.limit)
    //#post(int getLimit()): return_value == this.limit
    //#post(int getLimit()): init'ed(return_value)
    //#SearchResultsModel.java:254: end of method: int org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel.getLimit()
    }

    public TreeMap getResults() {
        return results;
    //#SearchResultsModel.java:258: method: TreeMap org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel.getResults()
    //#input(TreeMap getResults()): this
    //#input(TreeMap getResults()): this.results
    //#output(TreeMap getResults()): return_value
    //#pre[2] (TreeMap getResults()): init'ed(this.results)
    //#post(TreeMap getResults()): return_value == this.results
    //#post(TreeMap getResults()): init'ed(return_value)
    //#SearchResultsModel.java:258: end of method: TreeMap org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel.getResults()
    }

    public Set getCategories() {
        return categories;
    //#SearchResultsModel.java:262: method: Set org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel.getCategories()
    //#input(Set getCategories()): this
    //#input(Set getCategories()): this.categories
    //#output(Set getCategories()): return_value
    //#pre[2] (Set getCategories()): init'ed(this.categories)
    //#post(Set getCategories()): return_value == this.categories
    //#post(Set getCategories()): init'ed(return_value)
    //#SearchResultsModel.java:262: end of method: Set org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel.getCategories()
    }

    public boolean isWebsiteSpecificSearch() {
        return websiteSpecificSearch;
    //#SearchResultsModel.java:266: method: bool org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel.isWebsiteSpecificSearch()
    //#input(bool isWebsiteSpecificSearch()): this
    //#input(bool isWebsiteSpecificSearch()): this.websiteSpecificSearch
    //#output(bool isWebsiteSpecificSearch()): return_value
    //#pre[2] (bool isWebsiteSpecificSearch()): init'ed(this.websiteSpecificSearch)
    //#post(bool isWebsiteSpecificSearch()): return_value == this.websiteSpecificSearch
    //#post(bool isWebsiteSpecificSearch()): init'ed(return_value)
    //#SearchResultsModel.java:266: end of method: bool org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel.isWebsiteSpecificSearch()
    }

    public String getErrorMessage() {
        return errorMessage;
    //#SearchResultsModel.java:270: method: String org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel.getErrorMessage()
    //#input(String getErrorMessage()): this
    //#input(String getErrorMessage()): this.errorMessage
    //#output(String getErrorMessage()): return_value
    //#pre[2] (String getErrorMessage()): init'ed(this.errorMessage)
    //#post(String getErrorMessage()): return_value == this.errorMessage
    //#post(String getErrorMessage()): init'ed(return_value)
    //#SearchResultsModel.java:270: end of method: String org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel.getErrorMessage()
    }
    
    public String getWeblogCategoryName() {
        return searchRequest.getWeblogCategoryName();
    //#SearchResultsModel.java:274: method: String org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel.getWeblogCategoryName()
    //#SearchResultsModel.java:274: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.ui.rendering.util.WeblogSearchRequest:getWeblogCategoryName()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: String getWeblogCategoryName()
    //#    unanalyzed callee: String org.apache.roller.weblogger.ui.rendering.util.WeblogSearchRequest:getWeblogCategoryName()
    //#input(String getWeblogCategoryName()): this
    //#input(String getWeblogCategoryName()): this.searchRequest
    //#output(String getWeblogCategoryName()): return_value
    //#pre[2] (String getWeblogCategoryName()): this.searchRequest != null
    //#post(String getWeblogCategoryName()): init'ed(return_value)
    //#SearchResultsModel.java:274: end of method: String org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel.getWeblogCategoryName()
    }
    
    public WeblogCategoryWrapper getWeblogCategory() {
        if(searchRequest.getWeblogCategory() != null) {
    //#SearchResultsModel.java:278: method: WeblogCategoryWrapper org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel.getWeblogCategory()
    //#SearchResultsModel.java:278: Warning: method not available
    //#    -- call on WeblogCategory org.apache.roller.weblogger.ui.rendering.util.WeblogSearchRequest:getWeblogCategory()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: WeblogCategoryWrapper getWeblogCategory()
    //#    unanalyzed callee: WeblogCategory org.apache.roller.weblogger.ui.rendering.util.WeblogSearchRequest:getWeblogCategory()
    //#input(WeblogCategoryWrapper getWeblogCategory()): this
    //#input(WeblogCategoryWrapper getWeblogCategory()): this.searchRequest
    //#output(WeblogCategoryWrapper getWeblogCategory()): new WeblogCategoryWrapper(wrap#1) num objects
    //#output(WeblogCategoryWrapper getWeblogCategory()): new WeblogCategoryWrapper(wrap#1).__Tag
    //#output(WeblogCategoryWrapper getWeblogCategory()): new WeblogCategoryWrapper(wrap#1).pojo
    //#output(WeblogCategoryWrapper getWeblogCategory()): new WeblogCategoryWrapper(wrap#1).urlStrategy
    //#output(WeblogCategoryWrapper getWeblogCategory()): return_value
    //#new obj(WeblogCategoryWrapper getWeblogCategory()): new WeblogCategoryWrapper(wrap#1)
    //#pre[2] (WeblogCategoryWrapper getWeblogCategory()): this.searchRequest != null
    //#post(WeblogCategoryWrapper getWeblogCategory()): return_value == One-of{&new WeblogCategoryWrapper(wrap#1), null}
    //#post(WeblogCategoryWrapper getWeblogCategory()): return_value in Addr_Set{null,&new WeblogCategoryWrapper(wrap#1)}
    //#post(WeblogCategoryWrapper getWeblogCategory()): new WeblogCategoryWrapper(wrap#1) num objects <= 1
    //#post(WeblogCategoryWrapper getWeblogCategory()): new WeblogCategoryWrapper(wrap#1).__Tag == org/apache/roller/weblogger/pojos/wrapper/WeblogCategoryWrapper
    //#post(WeblogCategoryWrapper getWeblogCategory()): new WeblogCategoryWrapper(wrap#1).pojo != null
    //#post(WeblogCategoryWrapper getWeblogCategory()): new WeblogCategoryWrapper(wrap#1).urlStrategy == this.urlStrategy
    //#post(WeblogCategoryWrapper getWeblogCategory()): init'ed(new WeblogCategoryWrapper(wrap#1).urlStrategy)
    //#test_vector(WeblogCategoryWrapper getWeblogCategory()): org.apache.roller.weblogger.ui.rendering.util.WeblogSearchRequest:getWeblogCategory(...)@278: Addr_Set{null}, Inverse{null}
            return WeblogCategoryWrapper.wrap(searchRequest.getWeblogCategory(), urlStrategy);
    //#SearchResultsModel.java:279: Warning: method not available
    //#    -- call on WeblogCategory org.apache.roller.weblogger.ui.rendering.util.WeblogSearchRequest:getWeblogCategory()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: WeblogCategoryWrapper getWeblogCategory()
    //#    unanalyzed callee: WeblogCategory org.apache.roller.weblogger.ui.rendering.util.WeblogSearchRequest:getWeblogCategory()
    //#SearchResultsModel.java:279: ?use of default init
    //#    init'ed(this.urlStrategy)
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
    //#    method: WeblogCategoryWrapper getWeblogCategory()
    //#    basic block: bb_2
    //#    assertion: init'ed(this.urlStrategy)
    //#    VN: this.urlStrategy
    //#    Expected: Univ-VN-Set
    //#    Bad: {Invalid}
    //#    Attribs:  Ptr  Bad only invalid
        }
        return null;
    //#SearchResultsModel.java:281: end of method: WeblogCategoryWrapper org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel.getWeblogCategory()
    }
    
}
    //#output(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/SearchResultsModel]
    //#output(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.addEntryToResults(Lorg/apache/roller/weblogger/pojos/wrapper/WeblogEntryWrapper;)V
    //#output(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.convertHitsToEntries(Lorg/apache/lucene/search/Hits;)V
    //#output(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.getCategories()Ljava/util/Set;
    //#output(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.getCommentForm()Lorg/apache/roller/weblogger/ui/rendering/util/WeblogEntryCommentForm;
    //#output(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.getErrorMessage()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.getHits()I
    //#output(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.getLimit()I
    //#output(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.getLocale()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.getModelName()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.getOffset()I
    //#output(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.getRawTerm()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.getRequestParameter(Ljava/lang/String;)Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.getResults()Ljava/util/TreeMap;
    //#output(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.getTags()Ljava/util/List;
    //#output(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.getTerm()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.getWeblog()Lorg/apache/roller/weblogger/pojos/wrapper/WeblogWrapper;
    //#output(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.getWeblogCategory()Lorg/apache/roller/weblogger/pojos/wrapper/WeblogCategoryWrapper;
    //#output(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.getWeblogCategoryName()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.getWeblogEntriesPager()Lorg/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesPager;
    //#output(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.getWeblogEntriesPager(Ljava/lang/String;)Lorg/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesPager;
    //#output(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.getWeblogEntriesPager(Ljava/lang/String;Ljava/lang/String;)Lorg/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesPager;
    //#output(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.getWeblogEntriesPagerByTag(Ljava/lang/String;)Lorg/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesPager;
    //#output(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.getWeblogEntry()Lorg/apache/roller/weblogger/pojos/wrapper/WeblogEntryWrapper;
    //#output(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.getWeblogPage()Lorg/apache/roller/weblogger/pojos/wrapper/ThemeTemplateWrapper;
    //#output(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.init(Ljava/util/Map;)V
    //#output(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.isPermalink()Z
    //#output(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.isSearchResults()Z
    //#output(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.isWebsiteSpecificSearch()Z
    //#output(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): org/apache/roller/weblogger/ui/rendering/model/Model.__Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/SearchResultsModel]
    //#output(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): org/apache/roller/weblogger/ui/rendering/model/PageModel.__Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/SearchResultsModel]
    //#post(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/SearchResultsModel] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): org/apache/roller/weblogger/ui/rendering/model/Model.__Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/SearchResultsModel] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): org/apache/roller/weblogger/ui/rendering/model/PageModel.__Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/SearchResultsModel] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.addEntryToResults(Lorg/apache/roller/weblogger/pojos/wrapper/WeblogEntryWrapper;)V == &addEntryToResults
    //#post(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.convertHitsToEntries(Lorg/apache/lucene/search/Hits;)V == &convertHitsToEntries
    //#post(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.getCategories()Ljava/util/Set; == &getCategories
    //#post(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.getCommentForm()Lorg/apache/roller/weblogger/ui/rendering/util/WeblogEntryCommentForm; == &org/apache/roller/weblogger/ui/rendering/model/PageModel.getCommentForm
    //#post(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.getErrorMessage()Ljava/lang/String; == &getErrorMessage
    //#post(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.getHits()I == &getHits
    //#post(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.getLimit()I == &getLimit
    //#post(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.getLocale()Ljava/lang/String; == &org/apache/roller/weblogger/ui/rendering/model/PageModel.getLocale
    //#post(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.getModelName()Ljava/lang/String; == &org/apache/roller/weblogger/ui/rendering/model/PageModel.getModelName
    //#post(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.getOffset()I == &getOffset
    //#post(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.getRawTerm()Ljava/lang/String; == &getRawTerm
    //#post(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.getRequestParameter(Ljava/lang/String;)Ljava/lang/String; == &org/apache/roller/weblogger/ui/rendering/model/PageModel.getRequestParameter
    //#post(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.getResults()Ljava/util/TreeMap; == &getResults
    //#post(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.getTags()Ljava/util/List; == &org/apache/roller/weblogger/ui/rendering/model/PageModel.getTags
    //#post(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.getTerm()Ljava/lang/String; == &getTerm
    //#post(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.getWeblog()Lorg/apache/roller/weblogger/pojos/wrapper/WeblogWrapper; == &org/apache/roller/weblogger/ui/rendering/model/PageModel.getWeblog
    //#post(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.getWeblogCategory()Lorg/apache/roller/weblogger/pojos/wrapper/WeblogCategoryWrapper; == &getWeblogCategory
    //#post(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.getWeblogCategoryName()Ljava/lang/String; == &getWeblogCategoryName
    //#post(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.getWeblogEntriesPager()Lorg/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesPager; == &getWeblogEntriesPager
    //#post(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.getWeblogEntriesPager(Ljava/lang/String;)Lorg/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesPager; == &getWeblogEntriesPager
    //#post(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.getWeblogEntriesPager(Ljava/lang/String;Ljava/lang/String;)Lorg/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesPager; == &org/apache/roller/weblogger/ui/rendering/model/PageModel.getWeblogEntriesPager
    //#post(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.getWeblogEntriesPagerByTag(Ljava/lang/String;)Lorg/apache/roller/weblogger/ui/rendering/pagers/WeblogEntriesPager; == &org/apache/roller/weblogger/ui/rendering/model/PageModel.getWeblogEntriesPagerByTag
    //#post(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.getWeblogEntry()Lorg/apache/roller/weblogger/pojos/wrapper/WeblogEntryWrapper; == &org/apache/roller/weblogger/ui/rendering/model/PageModel.getWeblogEntry
    //#post(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.getWeblogPage()Lorg/apache/roller/weblogger/pojos/wrapper/ThemeTemplateWrapper; == &org/apache/roller/weblogger/ui/rendering/model/PageModel.getWeblogPage
    //#post(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.init(Ljava/util/Map;)V == &init
    //#post(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.isPermalink()Z == &org/apache/roller/weblogger/ui/rendering/model/PageModel.isPermalink
    //#post(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.isSearchResults()Z == &isSearchResults
    //#post(org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init): __Dispatch_Table.isWebsiteSpecificSearch()Z == &isWebsiteSpecificSearch
    //#SearchResultsModel.java:: end of method: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel.org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel__static_init
    //#SearchResultsModel.java:: end of class: org.apache.roller.weblogger.ui.rendering.model.SearchResultsModel
