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

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

import java.util.Arrays;
import java.util.List;
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.roller.weblogger.WebloggerException;
import org.apache.roller.weblogger.business.URLStrategy;
import org.apache.roller.weblogger.business.WebloggerFactory;
import org.apache.roller.weblogger.business.WeblogManager;
import org.apache.roller.weblogger.config.WebloggerRuntimeConfig;
import org.apache.roller.weblogger.pojos.WeblogEntry;
import org.apache.roller.weblogger.pojos.Weblog;
import org.apache.roller.weblogger.ui.rendering.util.WeblogRequest;


/**
 * Provides access to URL building functionality.
 *
 * NOTE: we purposely go against the standard getter/setter bean standard
 * for methods that take arguments so that users get a consistent way to
 * access those methods in their templates. i.e.
 *
 * $url.category("foo")
 *
 * instead of
 *
 * $url.getCategory("foo")
 */
public class URLModel implements Model {
    
    private static Log log = LogFactory.getLog(URLModel.class);
    //#URLModel.java:51: method: org.apache.roller.weblogger.ui.rendering.model.URLModel.org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init
    //#URLModel.java:51: Warning: method not available
    //#    -- call on Log org.apache.commons.logging.LogFactory:getLog(Class)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init
    //#    unanalyzed callee: Log org.apache.commons.logging.LogFactory:getLog(Class)
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/URLModel]
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.absoluteSearch(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.action(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.category(Ljava/lang/String;)Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.category(Ljava/lang/String;I)Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.collection(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.collection(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.comment(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.comments(Ljava/lang/String;)Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.date(Ljava/lang/String;)Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.date(Ljava/lang/String;I)Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.editEntry(Ljava/lang/String;)Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.entry(Ljava/lang/String;)Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.getAbsoluteSite()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.getCommentAuthenticator()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.getCreateEntry()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.getEditSettings()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.getFeed()Lorg/apache/roller/weblogger/ui/rendering/model/URLModel$FeedURLS;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.getHome()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.getLogin()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.getLogout()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.getModelName()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.getRsd()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.getSearch()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.getSite()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.home(I)Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.home(Ljava/lang/String;)Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.home(Ljava/lang/String;I)Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.init(Ljava/util/Map;)V
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.page(Ljava/lang/String;)Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.page(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.resource(Ljava/lang/String;)Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.search(Ljava/lang/String;I)Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.search(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.tag(Ljava/lang/String;)Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.tag(Ljava/lang/String;I)Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.tags(Ljava/util/List;)Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.tags(Ljava/util/List;I)Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.themeResource(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.themeResource(Ljava/lang/String;Ljava/lang/String;Z)Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.trackback(Ljava/lang/String;)Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): log
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): org/apache/roller/weblogger/ui/rendering/model/Model.__Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/URLModel]
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/URLModel] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): org/apache/roller/weblogger/ui/rendering/model/Model.__Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/URLModel] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.absoluteSearch(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String; == &absoluteSearch
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.action(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; == &action
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.category(Ljava/lang/String;)Ljava/lang/String; == &category
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.category(Ljava/lang/String;I)Ljava/lang/String; == &category
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.collection(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; == &collection
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.collection(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String; == &collection
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.comment(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; == &comment
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.comments(Ljava/lang/String;)Ljava/lang/String; == &comments
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.date(Ljava/lang/String;)Ljava/lang/String; == &date
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.date(Ljava/lang/String;I)Ljava/lang/String; == &date
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.editEntry(Ljava/lang/String;)Ljava/lang/String; == &editEntry
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.entry(Ljava/lang/String;)Ljava/lang/String; == &entry
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.getAbsoluteSite()Ljava/lang/String; == &getAbsoluteSite
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.getCommentAuthenticator()Ljava/lang/String; == &getCommentAuthenticator
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.getCreateEntry()Ljava/lang/String; == &getCreateEntry
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.getEditSettings()Ljava/lang/String; == &getEditSettings
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.getFeed()Lorg/apache/roller/weblogger/ui/rendering/model/URLModel$FeedURLS; == &getFeed
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.getHome()Ljava/lang/String; == &getHome
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.getLogin()Ljava/lang/String; == &getLogin
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.getLogout()Ljava/lang/String; == &getLogout
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.getModelName()Ljava/lang/String; == &getModelName
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.getRsd()Ljava/lang/String; == &getRsd
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.getSearch()Ljava/lang/String; == &getSearch
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.getSite()Ljava/lang/String; == &getSite
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.home(I)Ljava/lang/String; == &home
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.home(Ljava/lang/String;)Ljava/lang/String; == &home
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.home(Ljava/lang/String;I)Ljava/lang/String; == &home
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.init(Ljava/util/Map;)V == &init
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.page(Ljava/lang/String;)Ljava/lang/String; == &page
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.page(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String; == &page
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.resource(Ljava/lang/String;)Ljava/lang/String; == &resource
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.search(Ljava/lang/String;I)Ljava/lang/String; == &search
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.search(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String; == &search
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.tag(Ljava/lang/String;)Ljava/lang/String; == &tag
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.tag(Ljava/lang/String;I)Ljava/lang/String; == &tag
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.tags(Ljava/util/List;)Ljava/lang/String; == &tags
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.tags(Ljava/util/List;I)Ljava/lang/String; == &tags
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.themeResource(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; == &themeResource
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.themeResource(Ljava/lang/String;Ljava/lang/String;Z)Ljava/lang/String; == &themeResource
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): __Dispatch_Table.trackback(Ljava/lang/String;)Ljava/lang/String; == &trackback
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init): init'ed(log)
    //#URLModel.java:51: end of method: org.apache.roller.weblogger.ui.rendering.model.URLModel.org.apache.roller.weblogger.ui.rendering.model.URLModel__static_init
    
    protected Weblog weblog = null;
    protected String locale = null;
    
    protected URLStrategy urlStrategy = null;
    
    
    public URLModel() {}
    //#URLModel.java:59: method: void org.apache.roller.weblogger.ui.rendering.model.URLModel.org.apache.roller.weblogger.ui.rendering.model.URLModel()
    //#input(void org.apache.roller.weblogger.ui.rendering.model.URLModel()): this
    //#output(void org.apache.roller.weblogger.ui.rendering.model.URLModel()): this.locale
    //#output(void org.apache.roller.weblogger.ui.rendering.model.URLModel()): this.urlStrategy
    //#output(void org.apache.roller.weblogger.ui.rendering.model.URLModel()): this.weblog
    //#post(void org.apache.roller.weblogger.ui.rendering.model.URLModel()): this.locale == null
    //#post(void org.apache.roller.weblogger.ui.rendering.model.URLModel()): this.urlStrategy == null
    //#post(void org.apache.roller.weblogger.ui.rendering.model.URLModel()): this.weblog == null
    //#URLModel.java:59: end of method: void org.apache.roller.weblogger.ui.rendering.model.URLModel.org.apache.roller.weblogger.ui.rendering.model.URLModel()
    
    public String getModelName() {
        return "url";
    //#URLModel.java:62: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.getModelName()
    //#output(String getModelName()): return_value
    //#post(String getModelName()): return_value == &"url"
    //#URLModel.java:62: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.getModelName()
    }
    
    public void init(Map initData) throws WebloggerException {
        
        // need a weblog request so that we can know the weblog and locale
        WeblogRequest weblogRequest = (WeblogRequest) initData.get("parsedRequest");
    //#URLModel.java:68: method: void org.apache.roller.weblogger.ui.rendering.model.URLModel.init(Map)
    //#input(void init(Map)): initData
    //#input(void init(Map)): this
    //#output(void init(Map)): this.locale
    //#output(void init(Map)): this.urlStrategy
    //#output(void init(Map)): this.weblog
    //#pre[1] (void init(Map)): initData != null
    //#presumption(void init(Map)): java.util.Map:get(...)@68 != null
    //#presumption(void init(Map)): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@79 != null
    //#post(void init(Map)): init'ed(this.locale)
    //#post(void init(Map)): init'ed(this.urlStrategy)
    //#post(void init(Map)): init'ed(this.weblog)
    //#test_vector(void init(Map)): java.util.Map:get(...)@77: Inverse{null}, Addr_Set{null}
        if(weblogRequest == null) {
            throw new WebloggerException("Expected 'weblogRequest' init param!");
        }
        
        this.weblog = weblogRequest.getWeblog();
    //#URLModel.java:73: Warning: method not available
    //#    -- call on Weblog org.apache.roller.weblogger.ui.rendering.util.WeblogRequest:getWeblog()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: void init(Map)
    //#    unanalyzed callee: Weblog org.apache.roller.weblogger.ui.rendering.util.WeblogRequest:getWeblog()
        this.locale = weblogRequest.getLocale();
    //#URLModel.java:74: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.ui.rendering.util.WeblogRequest:getLocale()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: void init(Map)
    //#    unanalyzed callee: String org.apache.roller.weblogger.ui.rendering.util.WeblogRequest:getLocale()
        
        // look for url strategy
        urlStrategy = (URLStrategy) initData.get("urlStrategy");
        if(urlStrategy == null) {
            urlStrategy = WebloggerFactory.getWeblogger().getUrlStrategy();
    //#URLModel.java:79: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: void init(Map)
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#URLModel.java:79: Warning: method not available
    //#    -- call on URLStrategy org.apache.roller.weblogger.business.Weblogger:getUrlStrategy()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: void init(Map)
    //#    unanalyzed callee: URLStrategy org.apache.roller.weblogger.business.Weblogger:getUrlStrategy()
        }
    }
    //#URLModel.java:81: end of method: void org.apache.roller.weblogger.ui.rendering.model.URLModel.init(Map)
    
    
    /** Relative URL of Roller, e.g. /roller */
    public String getSite() {
        return WebloggerRuntimeConfig.getRelativeContextURL();
    //#URLModel.java:86: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.getSite()
    //#URLModel.java:86: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.config.WebloggerRuntimeConfig:getRelativeContextURL()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String getSite()
    //#    unanalyzed callee: String org.apache.roller.weblogger.config.WebloggerRuntimeConfig:getRelativeContextURL()
    //#output(String getSite()): return_value
    //#post(String getSite()): init'ed(return_value)
    //#URLModel.java:86: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.getSite()
    }
    
    
    /** Absolute URL of Roller, e.g. http://localhost:8080/roller */
    public String getAbsoluteSite() {
        return WebloggerRuntimeConfig.getAbsoluteContextURL();
    //#URLModel.java:92: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.getAbsoluteSite()
    //#URLModel.java:92: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.config.WebloggerRuntimeConfig:getAbsoluteContextURL()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String getAbsoluteSite()
    //#    unanalyzed callee: String org.apache.roller.weblogger.config.WebloggerRuntimeConfig:getAbsoluteContextURL()
    //#output(String getAbsoluteSite()): return_value
    //#post(String getAbsoluteSite()): init'ed(return_value)
    //#URLModel.java:92: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.getAbsoluteSite()
    }
    
    
    /** URL for logging in */  
    public String getLogin() {
        return urlStrategy.getLoginURL(false);
    //#URLModel.java:98: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.getLogin()
    //#URLModel.java:98: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getLoginURL(bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String getLogin()
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getLoginURL(bool)
    //#input(String getLogin()): this
    //#input(String getLogin()): this.urlStrategy
    //#output(String getLogin()): return_value
    //#pre[2] (String getLogin()): this.urlStrategy != null
    //#post(String getLogin()): init'ed(return_value)
    //#URLModel.java:98: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.getLogin()
    }
    
    
    /** URL for logging out */
    public String getLogout() {
        return urlStrategy.getLogoutURL(false);
    //#URLModel.java:104: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.getLogout()
    //#URLModel.java:104: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getLogoutURL(bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String getLogout()
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getLogoutURL(bool)
    //#input(String getLogout()): this
    //#input(String getLogout()): this.urlStrategy
    //#output(String getLogout()): return_value
    //#pre[2] (String getLogout()): this.urlStrategy != null
    //#post(String getLogout()): init'ed(return_value)
    //#URLModel.java:104: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.getLogout()
    }
    
    
    /** URL for a specific UI action */
    public String action(String action, String namespace) {
        if(namespace != null) {
    //#URLModel.java:110: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.action(String, String)
    //#input(String action(String, String)): action
    //#input(String action(String, String)): namespace
    //#input(String action(String, String)): this
    //#input(String action(String, String)): this.urlStrategy
    //#input(String action(String, String)): this.weblog
    //#output(String action(String, String)): return_value
    //#pre[4] (String action(String, String)): (soft) this.urlStrategy != null
    //#pre[5] (String action(String, String)): (soft) this.weblog != null
    //#post(String action(String, String)): init'ed(return_value)
    //#test_vector(String action(String, String)): namespace: Addr_Set{null}, Inverse{null}
    //#test_vector(String action(String, String)): java.lang.String:equals(...)@111: {0}, {1}
    //#test_vector(String action(String, String)): java.lang.String:equals(...)@113: {0}, {1}
    //#test_vector(String action(String, String)): java.lang.String:equals(...)@115: {0}, {1}
            if("/roller-ui".equals(namespace)) {
                return urlStrategy.getActionURL(action, namespace, null, null, true);
    //#URLModel.java:112: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getActionURL(String, String, String, Map, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String action(String, String)
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getActionURL(String, String, String, Map, bool)
            } else if("/roller-ui/authoring".equals(namespace)) {
                return urlStrategy.getActionURL(action, namespace, weblog.getHandle(), null, true);
    //#URLModel.java:114: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.pojos.Weblog:getHandle()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String action(String, String)
    //#    unanalyzed callee: String org.apache.roller.weblogger.pojos.Weblog:getHandle()
    //#URLModel.java:114: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getActionURL(String, String, String, Map, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String action(String, String)
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getActionURL(String, String, String, Map, bool)
            } else if("/roller-ui/admin".equals(namespace)) {
                return urlStrategy.getActionURL(action, namespace, null, null, true);
    //#URLModel.java:116: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getActionURL(String, String, String, Map, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String action(String, String)
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getActionURL(String, String, String, Map, bool)
            }
        }
        return null;
    //#URLModel.java:119: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.action(String, String)
    }
    
    
    public String getCommentAuthenticator() {
        return getSite()+"/CommentAuthenticatorServlet";
    //#URLModel.java:124: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.getCommentAuthenticator()
    //#URLModel.java:124: Warning: suspicious precondition
    //#    the precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String getCommentAuthenticator()
    //#    suspicious precondition index: [2]
    //#input(String getCommentAuthenticator()): ".CommentAuthenticatorServlet"._tainted
    //#input(String getCommentAuthenticator()): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/PreviewURLModel]
    //#input(String getCommentAuthenticator()): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/URLModel]
    //#input(String getCommentAuthenticator()): __Descendant_Table[others]
    //#input(String getCommentAuthenticator()): __Dispatch_Table.getSite()Ljava/lang/String;
    //#input(String getCommentAuthenticator()): org/apache/roller/weblogger/ui/rendering/model/PreviewURLModel.__Dispatch_Table.getSite()Ljava/lang/String;
    //#input(String getCommentAuthenticator()): this
    //#input(String getCommentAuthenticator()): this.__Tag
    //#output(String getCommentAuthenticator()): java.lang.StringBuilder:toString(...)._tainted
    //#output(String getCommentAuthenticator()): return_value
    //#new obj(String getCommentAuthenticator()): java.lang.StringBuilder:toString(...)
    //#pre[2] (String getCommentAuthenticator()): this.__Tag in {org/apache/roller/weblogger/ui/rendering/model/PreviewURLModel, org/apache/roller/weblogger/ui/rendering/model/URLModel}
    //#post(String getCommentAuthenticator()): java.lang.StringBuilder:toString(...)._tainted == 0
    //#post(String getCommentAuthenticator()): return_value == &java.lang.StringBuilder:toString(...)
    //#unanalyzed(String getCommentAuthenticator()): Effects-of-calling:org.apache.roller.weblogger.config.WebloggerRuntimeConfig:getRelativeContextURL
    //#URLModel.java:124: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.getCommentAuthenticator()
    }
    
    
    public String themeResource(String theme, String filePath) {
        return getSite()+"/themes/"+theme+"/"+filePath;
    //#URLModel.java:129: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.themeResource(String, String)
    //#URLModel.java:129: Warning: suspicious precondition
    //#    the precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String themeResource(String, String)
    //#    suspicious precondition index: [7]
    //#input(String themeResource(String, String)): "."._tainted
    //#input(String themeResource(String, String)): ".themes."._tainted
    //#input(String themeResource(String, String)): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/PreviewURLModel]
    //#input(String themeResource(String, String)): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/URLModel]
    //#input(String themeResource(String, String)): __Descendant_Table[others]
    //#input(String themeResource(String, String)): __Dispatch_Table.getSite()Ljava/lang/String;
    //#input(String themeResource(String, String)): filePath
    //#input(String themeResource(String, String)): filePath._tainted
    //#input(String themeResource(String, String)): org/apache/roller/weblogger/ui/rendering/model/PreviewURLModel.__Dispatch_Table.getSite()Ljava/lang/String;
    //#input(String themeResource(String, String)): theme
    //#input(String themeResource(String, String)): theme._tainted
    //#input(String themeResource(String, String)): this
    //#input(String themeResource(String, String)): this.__Tag
    //#output(String themeResource(String, String)): java.lang.StringBuilder:toString(...)._tainted
    //#output(String themeResource(String, String)): return_value
    //#new obj(String themeResource(String, String)): java.lang.StringBuilder:toString(...)
    //#pre[7] (String themeResource(String, String)): this.__Tag in {org/apache/roller/weblogger/ui/rendering/model/PreviewURLModel, org/apache/roller/weblogger/ui/rendering/model/URLModel}
    //#post(String themeResource(String, String)): java.lang.StringBuilder:toString(...)._tainted == theme._tainted | filePath._tainted
    //#post(String themeResource(String, String)): init'ed(java.lang.StringBuilder:toString(...)._tainted)
    //#post(String themeResource(String, String)): return_value == &java.lang.StringBuilder:toString(...)
    //#unanalyzed(String themeResource(String, String)): Effects-of-calling:org.apache.roller.weblogger.config.WebloggerRuntimeConfig:getRelativeContextURL
    //#URLModel.java:129: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.themeResource(String, String)
    }
        
    public String themeResource(String theme, String filePath, boolean absolute) {
        if (absolute) {
    //#URLModel.java:133: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.themeResource(String, String, bool)
    //#URLModel.java:133: Warning: suspicious precondition
    //#    the precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String themeResource(String, String, bool)
    //#    suspicious precondition index: [8]
    //#input(String themeResource(String, String, bool)): "."._tainted
    //#input(String themeResource(String, String, bool)): ".themes."._tainted
    //#input(String themeResource(String, String, bool)): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/PreviewURLModel]
    //#input(String themeResource(String, String, bool)): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/URLModel]
    //#input(String themeResource(String, String, bool)): __Descendant_Table[others]
    //#input(String themeResource(String, String, bool)): __Dispatch_Table.getAbsoluteSite()Ljava/lang/String;
    //#input(String themeResource(String, String, bool)): __Dispatch_Table.getSite()Ljava/lang/String;
    //#input(String themeResource(String, String, bool)): __Dispatch_Table.themeResource(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    //#input(String themeResource(String, String, bool)): absolute
    //#input(String themeResource(String, String, bool)): filePath
    //#input(String themeResource(String, String, bool)): filePath._tainted
    //#input(String themeResource(String, String, bool)): org/apache/roller/weblogger/ui/rendering/model/PreviewURLModel.__Dispatch_Table.getAbsoluteSite()Ljava/lang/String;
    //#input(String themeResource(String, String, bool)): org/apache/roller/weblogger/ui/rendering/model/PreviewURLModel.__Dispatch_Table.getSite()Ljava/lang/String;
    //#input(String themeResource(String, String, bool)): org/apache/roller/weblogger/ui/rendering/model/PreviewURLModel.__Dispatch_Table.themeResource(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    //#input(String themeResource(String, String, bool)): theme
    //#input(String themeResource(String, String, bool)): theme._tainted
    //#input(String themeResource(String, String, bool)): this
    //#input(String themeResource(String, String, bool)): this.__Tag
    //#output(String themeResource(String, String, bool)): java.lang.StringBuilder:toString(...)._tainted
    //#output(String themeResource(String, String, bool)): return_value
    //#new obj(String themeResource(String, String, bool)): java.lang.StringBuilder:toString(...)
    //#pre[8] (String themeResource(String, String, bool)): this.__Tag in {org/apache/roller/weblogger/ui/rendering/model/PreviewURLModel, org/apache/roller/weblogger/ui/rendering/model/URLModel}
    //#post(String themeResource(String, String, bool)): init'ed(java.lang.StringBuilder:toString(...)._tainted)
    //#post(String themeResource(String, String, bool)): return_value in Addr_Set{&java.lang.StringBuilder:toString(...),&java.lang.StringBuilder:toString(...)}
    //#unanalyzed(String themeResource(String, String, bool)): Effects-of-calling:org.apache.roller.weblogger.config.WebloggerRuntimeConfig:getRelativeContextURL
    //#unanalyzed(String themeResource(String, String, bool)): Effects-of-calling:org.apache.roller.weblogger.config.WebloggerRuntimeConfig:getAbsoluteContextURL
    //#unanalyzed(String themeResource(String, String, bool)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(String themeResource(String, String, bool)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(String themeResource(String, String, bool)): Effects-of-calling:java.lang.StringBuilder:toString
    //#test_vector(String themeResource(String, String, bool)): absolute: {0}, {1}
            return getAbsoluteSite()+"/themes/"+theme+"/"+filePath;
        }
        return themeResource(theme, filePath);
    //#URLModel.java:136: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.themeResource(String, String, bool)
    }
        
    public String getHome() {
        return urlStrategy.getWeblogCollectionURL(weblog, locale, null, null, null, -1, true);
    //#URLModel.java:140: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.getHome()
    //#URLModel.java:140: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogCollectionURL(Weblog, String, String, String, List, int, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String getHome()
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogCollectionURL(Weblog, String, String, String, List, int, bool)
    //#input(String getHome()): this
    //#input(String getHome()): this.locale
    //#input(String getHome()): this.urlStrategy
    //#input(String getHome()): this.weblog
    //#output(String getHome()): return_value
    //#pre[2] (String getHome()): init'ed(this.locale)
    //#pre[3] (String getHome()): this.urlStrategy != null
    //#pre[4] (String getHome()): init'ed(this.weblog)
    //#post(String getHome()): init'ed(return_value)
    //#URLModel.java:140: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.getHome()
    }
    
    
    public String home(int pageNum) {
        return urlStrategy.getWeblogCollectionURL(weblog, locale, null, null, null, pageNum, true);
    //#URLModel.java:145: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.home(int)
    //#URLModel.java:145: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogCollectionURL(Weblog, String, String, String, List, int, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String home(int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogCollectionURL(Weblog, String, String, String, List, int, bool)
    //#input(String home(int)): pageNum
    //#input(String home(int)): this
    //#input(String home(int)): this.locale
    //#input(String home(int)): this.urlStrategy
    //#input(String home(int)): this.weblog
    //#output(String home(int)): return_value
    //#pre[3] (String home(int)): init'ed(this.locale)
    //#pre[4] (String home(int)): this.urlStrategy != null
    //#pre[5] (String home(int)): init'ed(this.weblog)
    //#post(String home(int)): init'ed(return_value)
    //#URLModel.java:145: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.home(int)
    }
    
    
    public String home(String customLocale) {
        return urlStrategy.getWeblogCollectionURL(weblog, customLocale, null, null, null, -1, true);
    //#URLModel.java:150: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.home(String)
    //#URLModel.java:150: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogCollectionURL(Weblog, String, String, String, List, int, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String home(String)
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogCollectionURL(Weblog, String, String, String, List, int, bool)
    //#input(String home(String)): customLocale
    //#input(String home(String)): this
    //#input(String home(String)): this.urlStrategy
    //#input(String home(String)): this.weblog
    //#output(String home(String)): return_value
    //#pre[3] (String home(String)): this.urlStrategy != null
    //#pre[4] (String home(String)): init'ed(this.weblog)
    //#post(String home(String)): init'ed(return_value)
    //#URLModel.java:150: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.home(String)
    }
    
    
    public String home(String customLocale, int pageNum) {
        return urlStrategy.getWeblogCollectionURL(weblog, customLocale, null, null, null, pageNum, true);
    //#URLModel.java:155: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.home(String, int)
    //#URLModel.java:155: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogCollectionURL(Weblog, String, String, String, List, int, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String home(String, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogCollectionURL(Weblog, String, String, String, List, int, bool)
    //#input(String home(String, int)): customLocale
    //#input(String home(String, int)): pageNum
    //#input(String home(String, int)): this
    //#input(String home(String, int)): this.urlStrategy
    //#input(String home(String, int)): this.weblog
    //#output(String home(String, int)): return_value
    //#pre[4] (String home(String, int)): this.urlStrategy != null
    //#pre[5] (String home(String, int)): init'ed(this.weblog)
    //#post(String home(String, int)): init'ed(return_value)
    //#URLModel.java:155: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.home(String, int)
    }
    
    
    public String entry(String anchor) {
        return urlStrategy.getWeblogEntryURL(weblog, locale, anchor, true);
    //#URLModel.java:160: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.entry(String)
    //#URLModel.java:160: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogEntryURL(Weblog, String, String, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String entry(String)
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogEntryURL(Weblog, String, String, bool)
    //#input(String entry(String)): anchor
    //#input(String entry(String)): this
    //#input(String entry(String)): this.locale
    //#input(String entry(String)): this.urlStrategy
    //#input(String entry(String)): this.weblog
    //#output(String entry(String)): return_value
    //#pre[3] (String entry(String)): init'ed(this.locale)
    //#pre[4] (String entry(String)): this.urlStrategy != null
    //#pre[5] (String entry(String)): init'ed(this.weblog)
    //#post(String entry(String)): init'ed(return_value)
    //#URLModel.java:160: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.entry(String)
    }
    
    public String comment(String anchor, String timeStamp) {
        return urlStrategy.getWeblogCommentURL(weblog, locale, anchor, timeStamp, true);
    //#URLModel.java:164: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.comment(String, String)
    //#URLModel.java:164: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogCommentURL(Weblog, String, String, String, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String comment(String, String)
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogCommentURL(Weblog, String, String, String, bool)
    //#input(String comment(String, String)): anchor
    //#input(String comment(String, String)): this
    //#input(String comment(String, String)): this.locale
    //#input(String comment(String, String)): this.urlStrategy
    //#input(String comment(String, String)): this.weblog
    //#input(String comment(String, String)): timeStamp
    //#output(String comment(String, String)): return_value
    //#pre[3] (String comment(String, String)): init'ed(this.locale)
    //#pre[4] (String comment(String, String)): this.urlStrategy != null
    //#pre[5] (String comment(String, String)): init'ed(this.weblog)
    //#post(String comment(String, String)): init'ed(return_value)
    //#URLModel.java:164: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.comment(String, String)
    }
    
    
    public String comments(String anchor) {
        return urlStrategy.getWeblogCommentsURL(weblog, locale, anchor, true);
    //#URLModel.java:169: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.comments(String)
    //#URLModel.java:169: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogCommentsURL(Weblog, String, String, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String comments(String)
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogCommentsURL(Weblog, String, String, bool)
    //#input(String comments(String)): anchor
    //#input(String comments(String)): this
    //#input(String comments(String)): this.locale
    //#input(String comments(String)): this.urlStrategy
    //#input(String comments(String)): this.weblog
    //#output(String comments(String)): return_value
    //#pre[3] (String comments(String)): init'ed(this.locale)
    //#pre[4] (String comments(String)): this.urlStrategy != null
    //#pre[5] (String comments(String)): init'ed(this.weblog)
    //#post(String comments(String)): init'ed(return_value)
    //#URLModel.java:169: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.comments(String)
    }
    
    
    public String trackback(String anchor) {
        return urlStrategy.getWeblogEntryURL(weblog, locale, anchor, true);
    //#URLModel.java:174: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.trackback(String)
    //#URLModel.java:174: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogEntryURL(Weblog, String, String, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String trackback(String)
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogEntryURL(Weblog, String, String, bool)
    //#input(String trackback(String)): anchor
    //#input(String trackback(String)): this
    //#input(String trackback(String)): this.locale
    //#input(String trackback(String)): this.urlStrategy
    //#input(String trackback(String)): this.weblog
    //#output(String trackback(String)): return_value
    //#pre[3] (String trackback(String)): init'ed(this.locale)
    //#pre[4] (String trackback(String)): this.urlStrategy != null
    //#pre[5] (String trackback(String)): init'ed(this.weblog)
    //#post(String trackback(String)): init'ed(return_value)
    //#URLModel.java:174: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.trackback(String)
    }

    
    public String date(String dateString) {
        return urlStrategy.getWeblogCollectionURL(weblog, locale, null, dateString, null, -1, true);
    //#URLModel.java:179: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.date(String)
    //#URLModel.java:179: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogCollectionURL(Weblog, String, String, String, List, int, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String date(String)
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogCollectionURL(Weblog, String, String, String, List, int, bool)
    //#input(String date(String)): dateString
    //#input(String date(String)): this
    //#input(String date(String)): this.locale
    //#input(String date(String)): this.urlStrategy
    //#input(String date(String)): this.weblog
    //#output(String date(String)): return_value
    //#pre[3] (String date(String)): init'ed(this.locale)
    //#pre[4] (String date(String)): this.urlStrategy != null
    //#pre[5] (String date(String)): init'ed(this.weblog)
    //#post(String date(String)): init'ed(return_value)
    //#URLModel.java:179: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.date(String)
    }
    
    
    public String date(String dateString, int pageNum) {
        return urlStrategy.getWeblogCollectionURL(weblog, locale, null, dateString, null, pageNum, true);
    //#URLModel.java:184: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.date(String, int)
    //#URLModel.java:184: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogCollectionURL(Weblog, String, String, String, List, int, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String date(String, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogCollectionURL(Weblog, String, String, String, List, int, bool)
    //#input(String date(String, int)): dateString
    //#input(String date(String, int)): pageNum
    //#input(String date(String, int)): this
    //#input(String date(String, int)): this.locale
    //#input(String date(String, int)): this.urlStrategy
    //#input(String date(String, int)): this.weblog
    //#output(String date(String, int)): return_value
    //#pre[4] (String date(String, int)): init'ed(this.locale)
    //#pre[5] (String date(String, int)): this.urlStrategy != null
    //#pre[6] (String date(String, int)): init'ed(this.weblog)
    //#post(String date(String, int)): init'ed(return_value)
    //#URLModel.java:184: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.date(String, int)
    }
    
    
    public String category(String catPath) {
        return urlStrategy.getWeblogCollectionURL(weblog, locale, catPath, null, null, -1, true);
    //#URLModel.java:189: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.category(String)
    //#URLModel.java:189: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogCollectionURL(Weblog, String, String, String, List, int, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String category(String)
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogCollectionURL(Weblog, String, String, String, List, int, bool)
    //#input(String category(String)): catPath
    //#input(String category(String)): this
    //#input(String category(String)): this.locale
    //#input(String category(String)): this.urlStrategy
    //#input(String category(String)): this.weblog
    //#output(String category(String)): return_value
    //#pre[3] (String category(String)): init'ed(this.locale)
    //#pre[4] (String category(String)): this.urlStrategy != null
    //#pre[5] (String category(String)): init'ed(this.weblog)
    //#post(String category(String)): init'ed(return_value)
    //#URLModel.java:189: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.category(String)
    }
    
    
    public String category(String catPath, int pageNum) {
        return urlStrategy.getWeblogCollectionURL(weblog, locale, catPath, null, null, pageNum, true);
    //#URLModel.java:194: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.category(String, int)
    //#URLModel.java:194: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogCollectionURL(Weblog, String, String, String, List, int, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String category(String, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogCollectionURL(Weblog, String, String, String, List, int, bool)
    //#input(String category(String, int)): catPath
    //#input(String category(String, int)): pageNum
    //#input(String category(String, int)): this
    //#input(String category(String, int)): this.locale
    //#input(String category(String, int)): this.urlStrategy
    //#input(String category(String, int)): this.weblog
    //#output(String category(String, int)): return_value
    //#pre[4] (String category(String, int)): init'ed(this.locale)
    //#pre[5] (String category(String, int)): this.urlStrategy != null
    //#pre[6] (String category(String, int)): init'ed(this.weblog)
    //#post(String category(String, int)): init'ed(return_value)
    //#URLModel.java:194: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.category(String, int)
    }
    
    
    public String tag(String tag) {
        return urlStrategy.getWeblogCollectionURL(weblog, locale, null, null, Arrays.asList(new String[]{tag}) , -1, true);
    //#URLModel.java:199: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.tag(String)
    //#URLModel.java:199: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogCollectionURL(Weblog, String, String, String, List, int, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String tag(String)
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogCollectionURL(Weblog, String, String, String, List, int, bool)
    //#input(String tag(String)): tag
    //#input(String tag(String)): this
    //#input(String tag(String)): this.locale
    //#input(String tag(String)): this.urlStrategy
    //#input(String tag(String)): this.weblog
    //#output(String tag(String)): return_value
    //#pre[3] (String tag(String)): init'ed(this.locale)
    //#pre[4] (String tag(String)): this.urlStrategy != null
    //#pre[5] (String tag(String)): init'ed(this.weblog)
    //#post(String tag(String)): init'ed(return_value)
    //#URLModel.java:199: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.tag(String)
    }
    
    
    public String tag(String tag, int pageNum) {
        return urlStrategy.getWeblogCollectionURL(weblog, locale, null, null, Arrays.asList(new String[]{tag}), pageNum, true);
    //#URLModel.java:204: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.tag(String, int)
    //#URLModel.java:204: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogCollectionURL(Weblog, String, String, String, List, int, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String tag(String, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogCollectionURL(Weblog, String, String, String, List, int, bool)
    //#input(String tag(String, int)): pageNum
    //#input(String tag(String, int)): tag
    //#input(String tag(String, int)): this
    //#input(String tag(String, int)): this.locale
    //#input(String tag(String, int)): this.urlStrategy
    //#input(String tag(String, int)): this.weblog
    //#output(String tag(String, int)): return_value
    //#pre[4] (String tag(String, int)): init'ed(this.locale)
    //#pre[5] (String tag(String, int)): this.urlStrategy != null
    //#pre[6] (String tag(String, int)): init'ed(this.weblog)
    //#post(String tag(String, int)): init'ed(return_value)
    //#URLModel.java:204: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.tag(String, int)
    }    
    
    
    public String tags(List tags) {
        return urlStrategy.getWeblogCollectionURL(weblog, locale, null, null, tags , -1, true);
    //#URLModel.java:209: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.tags(List)
    //#URLModel.java:209: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogCollectionURL(Weblog, String, String, String, List, int, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String tags(List)
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogCollectionURL(Weblog, String, String, String, List, int, bool)
    //#input(String tags(List)): tags
    //#input(String tags(List)): this
    //#input(String tags(List)): this.locale
    //#input(String tags(List)): this.urlStrategy
    //#input(String tags(List)): this.weblog
    //#output(String tags(List)): return_value
    //#pre[3] (String tags(List)): init'ed(this.locale)
    //#pre[4] (String tags(List)): this.urlStrategy != null
    //#pre[5] (String tags(List)): init'ed(this.weblog)
    //#post(String tags(List)): init'ed(return_value)
    //#URLModel.java:209: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.tags(List)
    }
    
    
    public String tags(List tags, int pageNum) {
        return urlStrategy.getWeblogCollectionURL(weblog, locale, null, null, tags, -1, true);
    //#URLModel.java:214: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.tags(List, int)
    //#URLModel.java:214: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogCollectionURL(Weblog, String, String, String, List, int, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String tags(List, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogCollectionURL(Weblog, String, String, String, List, int, bool)
    //#input(String tags(List, int)): tags
    //#input(String tags(List, int)): this
    //#input(String tags(List, int)): this.locale
    //#input(String tags(List, int)): this.urlStrategy
    //#input(String tags(List, int)): this.weblog
    //#output(String tags(List, int)): return_value
    //#pre[3] (String tags(List, int)): init'ed(this.locale)
    //#pre[4] (String tags(List, int)): this.urlStrategy != null
    //#pre[5] (String tags(List, int)): init'ed(this.weblog)
    //#post(String tags(List, int)): init'ed(return_value)
    //#URLModel.java:214: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.tags(List, int)
    }
    
    
    public String collection(String dateString, String catPath) {
        return urlStrategy.getWeblogCollectionURL(weblog, locale, catPath, dateString, null, -1, true);
    //#URLModel.java:219: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.collection(String, String)
    //#URLModel.java:219: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogCollectionURL(Weblog, String, String, String, List, int, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String collection(String, String)
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogCollectionURL(Weblog, String, String, String, List, int, bool)
    //#input(String collection(String, String)): catPath
    //#input(String collection(String, String)): dateString
    //#input(String collection(String, String)): this
    //#input(String collection(String, String)): this.locale
    //#input(String collection(String, String)): this.urlStrategy
    //#input(String collection(String, String)): this.weblog
    //#output(String collection(String, String)): return_value
    //#pre[4] (String collection(String, String)): init'ed(this.locale)
    //#pre[5] (String collection(String, String)): this.urlStrategy != null
    //#pre[6] (String collection(String, String)): init'ed(this.weblog)
    //#post(String collection(String, String)): init'ed(return_value)
    //#URLModel.java:219: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.collection(String, String)
    }
    
    
    public String collection(String dateString, String catPath, int pageNum) {
        return urlStrategy.getWeblogCollectionURL(weblog, locale, catPath, dateString, null, pageNum, true);
    //#URLModel.java:224: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.collection(String, String, int)
    //#URLModel.java:224: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogCollectionURL(Weblog, String, String, String, List, int, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String collection(String, String, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogCollectionURL(Weblog, String, String, String, List, int, bool)
    //#input(String collection(String, String, int)): catPath
    //#input(String collection(String, String, int)): dateString
    //#input(String collection(String, String, int)): pageNum
    //#input(String collection(String, String, int)): this
    //#input(String collection(String, String, int)): this.locale
    //#input(String collection(String, String, int)): this.urlStrategy
    //#input(String collection(String, String, int)): this.weblog
    //#output(String collection(String, String, int)): return_value
    //#pre[5] (String collection(String, String, int)): init'ed(this.locale)
    //#pre[6] (String collection(String, String, int)): this.urlStrategy != null
    //#pre[7] (String collection(String, String, int)): init'ed(this.weblog)
    //#post(String collection(String, String, int)): init'ed(return_value)
    //#URLModel.java:224: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.collection(String, String, int)
    }
    
    
    public String getSearch() {
        return urlStrategy.getWeblogSearchURL(weblog, locale, null, null, -1, false);
    //#URLModel.java:229: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.getSearch()
    //#URLModel.java:229: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogSearchURL(Weblog, String, String, String, int, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String getSearch()
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogSearchURL(Weblog, String, String, String, int, bool)
    //#input(String getSearch()): this
    //#input(String getSearch()): this.locale
    //#input(String getSearch()): this.urlStrategy
    //#input(String getSearch()): this.weblog
    //#output(String getSearch()): return_value
    //#pre[2] (String getSearch()): init'ed(this.locale)
    //#pre[3] (String getSearch()): this.urlStrategy != null
    //#pre[4] (String getSearch()): init'ed(this.weblog)
    //#post(String getSearch()): init'ed(return_value)
    //#URLModel.java:229: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.getSearch()
    }
    
    
    public String search(String query, int pageNum) {
        return urlStrategy.getWeblogSearchURL(weblog, locale, query, null, pageNum, false);
    //#URLModel.java:234: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.search(String, int)
    //#URLModel.java:234: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogSearchURL(Weblog, String, String, String, int, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String search(String, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogSearchURL(Weblog, String, String, String, int, bool)
    //#input(String search(String, int)): pageNum
    //#input(String search(String, int)): query
    //#input(String search(String, int)): this
    //#input(String search(String, int)): this.locale
    //#input(String search(String, int)): this.urlStrategy
    //#input(String search(String, int)): this.weblog
    //#output(String search(String, int)): return_value
    //#pre[4] (String search(String, int)): init'ed(this.locale)
    //#pre[5] (String search(String, int)): this.urlStrategy != null
    //#pre[6] (String search(String, int)): init'ed(this.weblog)
    //#post(String search(String, int)): init'ed(return_value)
    //#URLModel.java:234: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.search(String, int)
    }
    
    
    public String search(String query, String catPath, int pageNum) {
        return urlStrategy.getWeblogSearchURL(weblog, locale, query, catPath, pageNum, false);
    //#URLModel.java:239: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.search(String, String, int)
    //#URLModel.java:239: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogSearchURL(Weblog, String, String, String, int, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String search(String, String, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogSearchURL(Weblog, String, String, String, int, bool)
    //#input(String search(String, String, int)): catPath
    //#input(String search(String, String, int)): pageNum
    //#input(String search(String, String, int)): query
    //#input(String search(String, String, int)): this
    //#input(String search(String, String, int)): this.locale
    //#input(String search(String, String, int)): this.urlStrategy
    //#input(String search(String, String, int)): this.weblog
    //#output(String search(String, String, int)): return_value
    //#pre[5] (String search(String, String, int)): init'ed(this.locale)
    //#pre[6] (String search(String, String, int)): this.urlStrategy != null
    //#pre[7] (String search(String, String, int)): init'ed(this.weblog)
    //#post(String search(String, String, int)): init'ed(return_value)
    //#URLModel.java:239: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.search(String, String, int)
    }
    
    public String absoluteSearch(String query, String catPath, int pageNum) {
        return urlStrategy.getWeblogSearchURL(weblog, locale, query, catPath, pageNum, true);
    //#URLModel.java:243: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.absoluteSearch(String, String, int)
    //#URLModel.java:243: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogSearchURL(Weblog, String, String, String, int, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String absoluteSearch(String, String, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogSearchURL(Weblog, String, String, String, int, bool)
    //#input(String absoluteSearch(String, String, int)): catPath
    //#input(String absoluteSearch(String, String, int)): pageNum
    //#input(String absoluteSearch(String, String, int)): query
    //#input(String absoluteSearch(String, String, int)): this
    //#input(String absoluteSearch(String, String, int)): this.locale
    //#input(String absoluteSearch(String, String, int)): this.urlStrategy
    //#input(String absoluteSearch(String, String, int)): this.weblog
    //#output(String absoluteSearch(String, String, int)): return_value
    //#pre[5] (String absoluteSearch(String, String, int)): init'ed(this.locale)
    //#pre[6] (String absoluteSearch(String, String, int)): this.urlStrategy != null
    //#pre[7] (String absoluteSearch(String, String, int)): init'ed(this.weblog)
    //#post(String absoluteSearch(String, String, int)): init'ed(return_value)
    //#URLModel.java:243: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.absoluteSearch(String, String, int)
    }        
    
    public String page(String pageLink) {
        return urlStrategy.getWeblogPageURL(weblog, locale, pageLink, null, null, null, null, -1, true);
    //#URLModel.java:247: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.page(String)
    //#URLModel.java:247: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogPageURL(Weblog, String, String, String, String, String, List, int, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String page(String)
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogPageURL(Weblog, String, String, String, String, String, List, int, bool)
    //#input(String page(String)): pageLink
    //#input(String page(String)): this
    //#input(String page(String)): this.locale
    //#input(String page(String)): this.urlStrategy
    //#input(String page(String)): this.weblog
    //#output(String page(String)): return_value
    //#pre[3] (String page(String)): init'ed(this.locale)
    //#pre[4] (String page(String)): this.urlStrategy != null
    //#pre[5] (String page(String)): init'ed(this.weblog)
    //#post(String page(String)): init'ed(return_value)
    //#URLModel.java:247: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.page(String)
    }
    
    
    public String page(String pageLink, String dateString, String catPath, int pageNum) {
        return urlStrategy.getWeblogPageURL(weblog, locale, pageLink, null, catPath, dateString, null, pageNum, true);
    //#URLModel.java:252: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.page(String, String, String, int)
    //#URLModel.java:252: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogPageURL(Weblog, String, String, String, String, String, List, int, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String page(String, String, String, int)
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogPageURL(Weblog, String, String, String, String, String, List, int, bool)
    //#input(String page(String, String, String, int)): catPath
    //#input(String page(String, String, String, int)): dateString
    //#input(String page(String, String, String, int)): pageLink
    //#input(String page(String, String, String, int)): pageNum
    //#input(String page(String, String, String, int)): this
    //#input(String page(String, String, String, int)): this.locale
    //#input(String page(String, String, String, int)): this.urlStrategy
    //#input(String page(String, String, String, int)): this.weblog
    //#output(String page(String, String, String, int)): return_value
    //#pre[6] (String page(String, String, String, int)): init'ed(this.locale)
    //#pre[7] (String page(String, String, String, int)): this.urlStrategy != null
    //#pre[8] (String page(String, String, String, int)): init'ed(this.weblog)
    //#post(String page(String, String, String, int)): init'ed(return_value)
    //#URLModel.java:252: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.page(String, String, String, int)
    }
    
    
    public String resource(String filePath) {
        return urlStrategy.getWeblogResourceURL(weblog, filePath, true);
    //#URLModel.java:257: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.resource(String)
    //#URLModel.java:257: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogResourceURL(Weblog, String, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String resource(String)
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogResourceURL(Weblog, String, bool)
    //#input(String resource(String)): filePath
    //#input(String resource(String)): this
    //#input(String resource(String)): this.urlStrategy
    //#input(String resource(String)): this.weblog
    //#output(String resource(String)): return_value
    //#pre[3] (String resource(String)): this.urlStrategy != null
    //#pre[4] (String resource(String)): init'ed(this.weblog)
    //#post(String resource(String)): init'ed(return_value)
    //#URLModel.java:257: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.resource(String)
    }
    
    
    public String getRsd() {
        return urlStrategy.getWeblogRsdURL(weblog, true);
    //#URLModel.java:262: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.getRsd()
    //#URLModel.java:262: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogRsdURL(Weblog, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String getRsd()
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogRsdURL(Weblog, bool)
    //#input(String getRsd()): this
    //#input(String getRsd()): this.urlStrategy
    //#input(String getRsd()): this.weblog
    //#output(String getRsd()): return_value
    //#pre[2] (String getRsd()): this.urlStrategy != null
    //#pre[3] (String getRsd()): init'ed(this.weblog)
    //#post(String getRsd()): init'ed(return_value)
    //#URLModel.java:262: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.getRsd()
    }
    
    
    public FeedURLS getFeed() {
        return new FeedURLS();
    //#URLModel.java:267: method: URLModel$FeedURLS org.apache.roller.weblogger.ui.rendering.model.URLModel.getFeed()
    //#input(URLModel$FeedURLS getFeed()): this
    //#output(URLModel$FeedURLS getFeed()): new URLModel$FeedURLS(getFeed#1) num objects
    //#output(URLModel$FeedURLS getFeed()): return_value.__Tag
    //#output(URLModel$FeedURLS getFeed()): return_value.this$0
    //#output(URLModel$FeedURLS getFeed()): return_value
    //#new obj(URLModel$FeedURLS getFeed()): new URLModel$FeedURLS(getFeed#1)
    //#post(URLModel$FeedURLS getFeed()): return_value == &new URLModel$FeedURLS(getFeed#1)
    //#post(URLModel$FeedURLS getFeed()): new URLModel$FeedURLS(getFeed#1) num objects == 1
    //#post(URLModel$FeedURLS getFeed()): return_value.__Tag == org/apache/roller/weblogger/ui/rendering/model/URLModel$FeedURLS
    //#post(URLModel$FeedURLS getFeed()): return_value.this$0 == this
    //#post(URLModel$FeedURLS getFeed()): return_value.this$0 != null
    //#URLModel.java:267: end of method: URLModel$FeedURLS org.apache.roller.weblogger.ui.rendering.model.URLModel.getFeed()
    }
    
    
    /** URL for editing a weblog entry */
    public String editEntry(String anchor) {
        try {
            // need to determine entryId from anchor
            WeblogManager wmgr = WebloggerFactory.getWeblogger().getWeblogManager();
    //#URLModel.java:275: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.editEntry(String)
    //#URLModel.java:275: Warning: method not available
    //#    -- call on Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String editEntry(String)
    //#    unanalyzed callee: Weblogger org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger()
    //#URLModel.java:275: Warning: method not available
    //#    -- call on WeblogManager org.apache.roller.weblogger.business.Weblogger:getWeblogManager()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String editEntry(String)
    //#    unanalyzed callee: WeblogManager org.apache.roller.weblogger.business.Weblogger:getWeblogManager()
    //#input(String editEntry(String)): "Error looking up entry by anchor - "._tainted
    //#input(String editEntry(String)): anchor
    //#input(String editEntry(String)): anchor._tainted
    //#input(String editEntry(String)): log
    //#input(String editEntry(String)): this
    //#input(String editEntry(String)): this.urlStrategy
    //#input(String editEntry(String)): this.weblog
    //#output(String editEntry(String)): return_value
    //#pre[3] (String editEntry(String)): (soft) log != null
    //#pre[5] (String editEntry(String)): (soft) this.urlStrategy != null
    //#pre[6] (String editEntry(String)): (soft) this.weblog != null
    //#presumption(String editEntry(String)): org.apache.roller.weblogger.business.Weblogger:getWeblogManager(...)@275 != null
    //#presumption(String editEntry(String)): org.apache.roller.weblogger.business.WebloggerFactory:getWeblogger(...)@275 != null
    //#post(String editEntry(String)): init'ed(return_value)
            WeblogEntry entry = wmgr.getWeblogEntryByAnchor(weblog, anchor);
    //#URLModel.java:276: Warning: method not available
    //#    -- call on WeblogEntry org.apache.roller.weblogger.business.WeblogManager:getWeblogEntryByAnchor(Weblog, String)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String editEntry(String)
    //#    unanalyzed callee: WeblogEntry org.apache.roller.weblogger.business.WeblogManager:getWeblogEntryByAnchor(Weblog, String)
            if(entry != null) {
                return urlStrategy.getEntryEditURL(weblog.getHandle(), entry.getId(), false);
    //#URLModel.java:278: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.pojos.Weblog:getHandle()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String editEntry(String)
    //#    unanalyzed callee: String org.apache.roller.weblogger.pojos.Weblog:getHandle()
    //#URLModel.java:278: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.pojos.WeblogEntry:getId()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String editEntry(String)
    //#    unanalyzed callee: String org.apache.roller.weblogger.pojos.WeblogEntry:getId()
    //#URLModel.java:278: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getEntryEditURL(String, String, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String editEntry(String)
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getEntryEditURL(String, String, bool)
            }
        } catch (WebloggerException ex) {
            log.error("Error looking up entry by anchor - "+anchor, ex);
    //#URLModel.java:281: Warning: method not available
    //#    -- call on void org.apache.commons.logging.Log:error(Object, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String editEntry(String)
    //#    unanalyzed callee: void org.apache.commons.logging.Log:error(Object, Throwable)
        }
        return null;
    //#URLModel.java:283: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.editEntry(String)
    } 
    
    
    /** URL for creating a new weblog entry */
    public String getCreateEntry() {
        return urlStrategy.getEntryAddURL(weblog.getHandle(), false);
    //#URLModel.java:289: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.getCreateEntry()
    //#URLModel.java:289: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.pojos.Weblog:getHandle()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String getCreateEntry()
    //#    unanalyzed callee: String org.apache.roller.weblogger.pojos.Weblog:getHandle()
    //#URLModel.java:289: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getEntryAddURL(String, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String getCreateEntry()
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getEntryAddURL(String, bool)
    //#input(String getCreateEntry()): this
    //#input(String getCreateEntry()): this.urlStrategy
    //#input(String getCreateEntry()): this.weblog
    //#output(String getCreateEntry()): return_value
    //#pre[2] (String getCreateEntry()): this.urlStrategy != null
    //#pre[3] (String getCreateEntry()): this.weblog != null
    //#post(String getCreateEntry()): init'ed(return_value)
    //#URLModel.java:289: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.getCreateEntry()
    }
    
    
    /** URL for editing weblog settings */
    public String getEditSettings() {
        return urlStrategy.getWeblogConfigURL(weblog.getHandle(), false);
    //#URLModel.java:295: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.getEditSettings()
    //#URLModel.java:295: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.pojos.Weblog:getHandle()
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String getEditSettings()
    //#    unanalyzed callee: String org.apache.roller.weblogger.pojos.Weblog:getHandle()
    //#URLModel.java:295: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogConfigURL(String, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel
    //#    method: String getEditSettings()
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogConfigURL(String, bool)
    //#input(String getEditSettings()): this
    //#input(String getEditSettings()): this.urlStrategy
    //#input(String getEditSettings()): this.weblog
    //#output(String getEditSettings()): return_value
    //#pre[2] (String getEditSettings()): this.urlStrategy != null
    //#pre[3] (String getEditSettings()): this.weblog != null
    //#post(String getEditSettings()): init'ed(return_value)
    //#URLModel.java:295: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel.getEditSettings()
    }
    
    
    ///////  Inner Classes  ///////
    
    public class FeedURLS {
    //#URLModel.java:301: method: void org.apache.roller.weblogger.ui.rendering.model.URLModel$FeedURLS.org.apache.roller.weblogger.ui.rendering.model.URLModel$FeedURLS(URLModel)
    //#input(void org.apache.roller.weblogger.ui.rendering.model.URLModel$FeedURLS(URLModel)): Param_1
    //#input(void org.apache.roller.weblogger.ui.rendering.model.URLModel$FeedURLS(URLModel)): this
    //#output(void org.apache.roller.weblogger.ui.rendering.model.URLModel$FeedURLS(URLModel)): this.this$0
    //#post(void org.apache.roller.weblogger.ui.rendering.model.URLModel$FeedURLS(URLModel)): this.this$0 == Param_1
    //#post(void org.apache.roller.weblogger.ui.rendering.model.URLModel$FeedURLS(URLModel)): init'ed(this.this$0)
    //#URLModel.java:301: end of method: void org.apache.roller.weblogger.ui.rendering.model.URLModel$FeedURLS.org.apache.roller.weblogger.ui.rendering.model.URLModel$FeedURLS(URLModel)
        
        public EntryFeedURLS getEntries() {
            return new EntryFeedURLS();
    //#URLModel.java:304: method: URLModel$EntryFeedURLS org.apache.roller.weblogger.ui.rendering.model.URLModel$FeedURLS.getEntries()
    //#input(URLModel$EntryFeedURLS getEntries()): this
    //#input(URLModel$EntryFeedURLS getEntries()): this.this$0
    //#output(URLModel$EntryFeedURLS getEntries()): new URLModel$EntryFeedURLS(getEntries#1) num objects
    //#output(URLModel$EntryFeedURLS getEntries()): return_value.__Tag
    //#output(URLModel$EntryFeedURLS getEntries()): return_value.this$0
    //#output(URLModel$EntryFeedURLS getEntries()): return_value
    //#new obj(URLModel$EntryFeedURLS getEntries()): new URLModel$EntryFeedURLS(getEntries#1)
    //#post(URLModel$EntryFeedURLS getEntries()): return_value == &new URLModel$EntryFeedURLS(getEntries#1)
    //#post(URLModel$EntryFeedURLS getEntries()): new URLModel$EntryFeedURLS(getEntries#1) num objects == 1
    //#post(URLModel$EntryFeedURLS getEntries()): return_value.__Tag == org/apache/roller/weblogger/ui/rendering/model/URLModel$EntryFeedURLS
    //#post(URLModel$EntryFeedURLS getEntries()): return_value.this$0 == this.this$0
    //#post(URLModel$EntryFeedURLS getEntries()): init'ed(return_value.this$0)
    //#URLModel.java:304: end of method: URLModel$EntryFeedURLS org.apache.roller.weblogger.ui.rendering.model.URLModel$FeedURLS.getEntries()
        }
        
        public CommentFeedURLS getComments() {
            return new CommentFeedURLS();
    //#URLModel.java:308: method: URLModel$CommentFeedURLS org.apache.roller.weblogger.ui.rendering.model.URLModel$FeedURLS.getComments()
    //#input(URLModel$CommentFeedURLS getComments()): this
    //#input(URLModel$CommentFeedURLS getComments()): this.this$0
    //#output(URLModel$CommentFeedURLS getComments()): new URLModel$CommentFeedURLS(getComments#1) num objects
    //#output(URLModel$CommentFeedURLS getComments()): return_value.__Tag
    //#output(URLModel$CommentFeedURLS getComments()): return_value.this$0
    //#output(URLModel$CommentFeedURLS getComments()): return_value
    //#new obj(URLModel$CommentFeedURLS getComments()): new URLModel$CommentFeedURLS(getComments#1)
    //#post(URLModel$CommentFeedURLS getComments()): return_value == &new URLModel$CommentFeedURLS(getComments#1)
    //#post(URLModel$CommentFeedURLS getComments()): new URLModel$CommentFeedURLS(getComments#1) num objects == 1
    //#post(URLModel$CommentFeedURLS getComments()): return_value.__Tag == org/apache/roller/weblogger/ui/rendering/model/URLModel$CommentFeedURLS
    //#post(URLModel$CommentFeedURLS getComments()): return_value.this$0 == this.this$0
    //#post(URLModel$CommentFeedURLS getComments()): init'ed(return_value.this$0)
    //#URLModel.java:308: end of method: URLModel$CommentFeedURLS org.apache.roller.weblogger.ui.rendering.model.URLModel$FeedURLS.getComments()
        }
    }
    
    public class EntryFeedURLS {
    //#URLModel.java:312: method: void org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS.org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS(URLModel)
    //#input(void org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS(URLModel)): Param_1
    //#input(void org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS(URLModel)): this
    //#output(void org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS(URLModel)): this.this$0
    //#post(void org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS(URLModel)): this.this$0 == Param_1
    //#post(void org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS(URLModel)): init'ed(this.this$0)
    //#URLModel.java:312: end of method: void org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS.org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS(URLModel)
        
        public String getRss() {
            return urlStrategy.getWeblogFeedURL(weblog, locale, "entries", "rss", null, null, null, false, true);
    //#URLModel.java:315: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS.getRss()
    //#URLModel.java:315: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogFeedURL(Weblog, String, String, String, String, String, List, bool, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS
    //#    method: String getRss()
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogFeedURL(Weblog, String, String, String, String, String, List, bool, bool)
    //#input(String getRss()): this
    //#input(String getRss()): this.this$0
    //#input(String getRss()): this.this$0.locale
    //#input(String getRss()): this.this$0.urlStrategy
    //#input(String getRss()): this.this$0.weblog
    //#output(String getRss()): return_value
    //#pre[2] (String getRss()): this.this$0 != null
    //#pre[3] (String getRss()): init'ed(this.locale)
    //#pre[4] (String getRss()): this.urlStrategy != null
    //#pre[5] (String getRss()): init'ed(this.weblog)
    //#post(String getRss()): init'ed(return_value)
    //#URLModel.java:315: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS.getRss()
        }
        
        public String rss(String catPath, boolean excerpts) {
            return urlStrategy.getWeblogFeedURL(weblog, locale, "entries", "rss", catPath, null, null, excerpts, true);
    //#URLModel.java:319: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS.rss(String, bool)
    //#URLModel.java:319: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogFeedURL(Weblog, String, String, String, String, String, List, bool, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS
    //#    method: String rss(String, bool)
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogFeedURL(Weblog, String, String, String, String, String, List, bool, bool)
    //#input(String rss(String, bool)): catPath
    //#input(String rss(String, bool)): excerpts
    //#input(String rss(String, bool)): this
    //#input(String rss(String, bool)): this.this$0
    //#input(String rss(String, bool)): this.this$0.locale
    //#input(String rss(String, bool)): this.this$0.urlStrategy
    //#input(String rss(String, bool)): this.this$0.weblog
    //#output(String rss(String, bool)): return_value
    //#pre[4] (String rss(String, bool)): this.this$0 != null
    //#pre[5] (String rss(String, bool)): init'ed(this.locale)
    //#pre[6] (String rss(String, bool)): this.urlStrategy != null
    //#pre[7] (String rss(String, bool)): init'ed(this.weblog)
    //#post(String rss(String, bool)): init'ed(return_value)
    //#URLModel.java:319: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS.rss(String, bool)
        }
        
        public String rssByTags(List tags, boolean excerpts) {
            return urlStrategy.getWeblogFeedURL(weblog, locale, "entries", "rss", null, null, tags, excerpts, true);
    //#URLModel.java:323: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS.rssByTags(List, bool)
    //#URLModel.java:323: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogFeedURL(Weblog, String, String, String, String, String, List, bool, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS
    //#    method: String rssByTags(List, bool)
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogFeedURL(Weblog, String, String, String, String, String, List, bool, bool)
    //#input(String rssByTags(List, bool)): excerpts
    //#input(String rssByTags(List, bool)): tags
    //#input(String rssByTags(List, bool)): this
    //#input(String rssByTags(List, bool)): this.this$0
    //#input(String rssByTags(List, bool)): this.this$0.locale
    //#input(String rssByTags(List, bool)): this.this$0.urlStrategy
    //#input(String rssByTags(List, bool)): this.this$0.weblog
    //#output(String rssByTags(List, bool)): return_value
    //#pre[4] (String rssByTags(List, bool)): this.this$0 != null
    //#pre[5] (String rssByTags(List, bool)): init'ed(this.locale)
    //#pre[6] (String rssByTags(List, bool)): this.urlStrategy != null
    //#pre[7] (String rssByTags(List, bool)): init'ed(this.weblog)
    //#post(String rssByTags(List, bool)): init'ed(return_value)
    //#URLModel.java:323: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS.rssByTags(List, bool)
        }
        
        public String getAtom() {
            return urlStrategy.getWeblogFeedURL(weblog, locale, "entries", "atom", null, null, null, false, true);
    //#URLModel.java:327: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS.getAtom()
    //#URLModel.java:327: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogFeedURL(Weblog, String, String, String, String, String, List, bool, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS
    //#    method: String getAtom()
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogFeedURL(Weblog, String, String, String, String, String, List, bool, bool)
    //#input(String getAtom()): this
    //#input(String getAtom()): this.this$0
    //#input(String getAtom()): this.this$0.locale
    //#input(String getAtom()): this.this$0.urlStrategy
    //#input(String getAtom()): this.this$0.weblog
    //#output(String getAtom()): return_value
    //#pre[2] (String getAtom()): this.this$0 != null
    //#pre[3] (String getAtom()): init'ed(this.locale)
    //#pre[4] (String getAtom()): this.urlStrategy != null
    //#pre[5] (String getAtom()): init'ed(this.weblog)
    //#post(String getAtom()): init'ed(return_value)
    //#URLModel.java:327: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS.getAtom()
        }
        
        public String atom(String catPath, boolean excerpts) {
            return urlStrategy.getWeblogFeedURL(weblog, locale, "entries", "atom", catPath, null, null, excerpts, true);
    //#URLModel.java:331: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS.atom(String, bool)
    //#URLModel.java:331: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogFeedURL(Weblog, String, String, String, String, String, List, bool, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS
    //#    method: String atom(String, bool)
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogFeedURL(Weblog, String, String, String, String, String, List, bool, bool)
    //#input(String atom(String, bool)): catPath
    //#input(String atom(String, bool)): excerpts
    //#input(String atom(String, bool)): this
    //#input(String atom(String, bool)): this.this$0
    //#input(String atom(String, bool)): this.this$0.locale
    //#input(String atom(String, bool)): this.this$0.urlStrategy
    //#input(String atom(String, bool)): this.this$0.weblog
    //#output(String atom(String, bool)): return_value
    //#pre[4] (String atom(String, bool)): this.this$0 != null
    //#pre[5] (String atom(String, bool)): init'ed(this.locale)
    //#pre[6] (String atom(String, bool)): this.urlStrategy != null
    //#pre[7] (String atom(String, bool)): init'ed(this.weblog)
    //#post(String atom(String, bool)): init'ed(return_value)
    //#URLModel.java:331: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS.atom(String, bool)
        }
        
        public String search(String term, String catPath) {
            return urlStrategy.getWeblogFeedURL(weblog, locale, "entries", "atom", catPath, term, null, false, true);
    //#URLModel.java:335: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS.search(String, String)
    //#URLModel.java:335: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogFeedURL(Weblog, String, String, String, String, String, List, bool, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS
    //#    method: String search(String, String)
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogFeedURL(Weblog, String, String, String, String, String, List, bool, bool)
    //#input(String search(String, String)): catPath
    //#input(String search(String, String)): term
    //#input(String search(String, String)): this
    //#input(String search(String, String)): this.this$0
    //#input(String search(String, String)): this.this$0.locale
    //#input(String search(String, String)): this.this$0.urlStrategy
    //#input(String search(String, String)): this.this$0.weblog
    //#output(String search(String, String)): return_value
    //#pre[4] (String search(String, String)): this.this$0 != null
    //#pre[5] (String search(String, String)): init'ed(this.locale)
    //#pre[6] (String search(String, String)): this.urlStrategy != null
    //#pre[7] (String search(String, String)): init'ed(this.weblog)
    //#post(String search(String, String)): init'ed(return_value)
    //#URLModel.java:335: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS.search(String, String)
        }        
        
        public String atomByTags(List tags, boolean excerpts) {
            return urlStrategy.getWeblogFeedURL(weblog, locale, "entries", "atom", null, null, tags, excerpts, true);
    //#URLModel.java:339: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS.atomByTags(List, bool)
    //#URLModel.java:339: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogFeedURL(Weblog, String, String, String, String, String, List, bool, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS
    //#    method: String atomByTags(List, bool)
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogFeedURL(Weblog, String, String, String, String, String, List, bool, bool)
    //#input(String atomByTags(List, bool)): excerpts
    //#input(String atomByTags(List, bool)): tags
    //#input(String atomByTags(List, bool)): this
    //#input(String atomByTags(List, bool)): this.this$0
    //#input(String atomByTags(List, bool)): this.this$0.locale
    //#input(String atomByTags(List, bool)): this.this$0.urlStrategy
    //#input(String atomByTags(List, bool)): this.this$0.weblog
    //#output(String atomByTags(List, bool)): return_value
    //#pre[4] (String atomByTags(List, bool)): this.this$0 != null
    //#pre[5] (String atomByTags(List, bool)): init'ed(this.locale)
    //#pre[6] (String atomByTags(List, bool)): this.urlStrategy != null
    //#pre[7] (String atomByTags(List, bool)): init'ed(this.weblog)
    //#post(String atomByTags(List, bool)): init'ed(return_value)
    //#URLModel.java:339: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS.atomByTags(List, bool)
        }
    }
    
    public class CommentFeedURLS {
    //#URLModel.java:343: method: void org.apache.roller.weblogger.ui.rendering.model.URLModel$CommentFeedURLS.org.apache.roller.weblogger.ui.rendering.model.URLModel$CommentFeedURLS(URLModel)
    //#input(void org.apache.roller.weblogger.ui.rendering.model.URLModel$CommentFeedURLS(URLModel)): Param_1
    //#input(void org.apache.roller.weblogger.ui.rendering.model.URLModel$CommentFeedURLS(URLModel)): this
    //#output(void org.apache.roller.weblogger.ui.rendering.model.URLModel$CommentFeedURLS(URLModel)): this.this$0
    //#post(void org.apache.roller.weblogger.ui.rendering.model.URLModel$CommentFeedURLS(URLModel)): this.this$0 == Param_1
    //#post(void org.apache.roller.weblogger.ui.rendering.model.URLModel$CommentFeedURLS(URLModel)): init'ed(this.this$0)
    //#URLModel.java:343: end of method: void org.apache.roller.weblogger.ui.rendering.model.URLModel$CommentFeedURLS.org.apache.roller.weblogger.ui.rendering.model.URLModel$CommentFeedURLS(URLModel)
        
        public String getRss() {
            return urlStrategy.getWeblogFeedURL(weblog, locale, "comments", "rss", null, null, null, false, true);
    //#URLModel.java:346: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel$CommentFeedURLS.getRss()
    //#URLModel.java:346: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogFeedURL(Weblog, String, String, String, String, String, List, bool, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel$CommentFeedURLS
    //#    method: String getRss()
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogFeedURL(Weblog, String, String, String, String, String, List, bool, bool)
    //#input(String getRss()): this
    //#input(String getRss()): this.this$0
    //#input(String getRss()): this.this$0.locale
    //#input(String getRss()): this.this$0.urlStrategy
    //#input(String getRss()): this.this$0.weblog
    //#output(String getRss()): return_value
    //#pre[2] (String getRss()): this.this$0 != null
    //#pre[3] (String getRss()): init'ed(this.locale)
    //#pre[4] (String getRss()): this.urlStrategy != null
    //#pre[5] (String getRss()): init'ed(this.weblog)
    //#post(String getRss()): init'ed(return_value)
    //#URLModel.java:346: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel$CommentFeedURLS.getRss()
        }
        
        public String rss(String catPath, boolean excerpts) {
            return urlStrategy.getWeblogFeedURL(weblog, locale, "comments", "rss", catPath, null, null, excerpts, true);
    //#URLModel.java:350: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel$CommentFeedURLS.rss(String, bool)
    //#URLModel.java:350: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogFeedURL(Weblog, String, String, String, String, String, List, bool, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel$CommentFeedURLS
    //#    method: String rss(String, bool)
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogFeedURL(Weblog, String, String, String, String, String, List, bool, bool)
    //#input(String rss(String, bool)): catPath
    //#input(String rss(String, bool)): excerpts
    //#input(String rss(String, bool)): this
    //#input(String rss(String, bool)): this.this$0
    //#input(String rss(String, bool)): this.this$0.locale
    //#input(String rss(String, bool)): this.this$0.urlStrategy
    //#input(String rss(String, bool)): this.this$0.weblog
    //#output(String rss(String, bool)): return_value
    //#pre[4] (String rss(String, bool)): this.this$0 != null
    //#pre[5] (String rss(String, bool)): init'ed(this.locale)
    //#pre[6] (String rss(String, bool)): this.urlStrategy != null
    //#pre[7] (String rss(String, bool)): init'ed(this.weblog)
    //#post(String rss(String, bool)): init'ed(return_value)
    //#URLModel.java:350: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel$CommentFeedURLS.rss(String, bool)
        }
        
        public String getAtom() {
            return urlStrategy.getWeblogFeedURL(weblog, locale, "comments", "atom", null, null, null, false, true);
    //#URLModel.java:354: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel$CommentFeedURLS.getAtom()
    //#URLModel.java:354: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogFeedURL(Weblog, String, String, String, String, String, List, bool, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel$CommentFeedURLS
    //#    method: String getAtom()
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogFeedURL(Weblog, String, String, String, String, String, List, bool, bool)
    //#input(String getAtom()): this
    //#input(String getAtom()): this.this$0
    //#input(String getAtom()): this.this$0.locale
    //#input(String getAtom()): this.this$0.urlStrategy
    //#input(String getAtom()): this.this$0.weblog
    //#output(String getAtom()): return_value
    //#pre[2] (String getAtom()): this.this$0 != null
    //#pre[3] (String getAtom()): init'ed(this.locale)
    //#pre[4] (String getAtom()): this.urlStrategy != null
    //#pre[5] (String getAtom()): init'ed(this.weblog)
    //#post(String getAtom()): init'ed(return_value)
    //#URLModel.java:354: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel$CommentFeedURLS.getAtom()
        }
        
        public String atom(String catPath, boolean excerpts) {
            return urlStrategy.getWeblogFeedURL(weblog, locale, "comments", "atom", catPath, null, null, excerpts, true);
    //#URLModel.java:358: method: String org.apache.roller.weblogger.ui.rendering.model.URLModel$CommentFeedURLS.atom(String, bool)
    //#URLModel.java:358: Warning: method not available
    //#    -- call on String org.apache.roller.weblogger.business.URLStrategy:getWeblogFeedURL(Weblog, String, String, String, String, String, List, bool, bool)
    //#    severity: INFORMATIONAL
    //#    class: org.apache.roller.weblogger.ui.rendering.model.URLModel$CommentFeedURLS
    //#    method: String atom(String, bool)
    //#    unanalyzed callee: String org.apache.roller.weblogger.business.URLStrategy:getWeblogFeedURL(Weblog, String, String, String, String, String, List, bool, bool)
    //#input(String atom(String, bool)): catPath
    //#input(String atom(String, bool)): excerpts
    //#input(String atom(String, bool)): this
    //#input(String atom(String, bool)): this.this$0
    //#input(String atom(String, bool)): this.this$0.locale
    //#input(String atom(String, bool)): this.this$0.urlStrategy
    //#input(String atom(String, bool)): this.this$0.weblog
    //#output(String atom(String, bool)): return_value
    //#pre[4] (String atom(String, bool)): this.this$0 != null
    //#pre[5] (String atom(String, bool)): init'ed(this.locale)
    //#pre[6] (String atom(String, bool)): this.urlStrategy != null
    //#pre[7] (String atom(String, bool)): init'ed(this.weblog)
    //#post(String atom(String, bool)): init'ed(return_value)
    //#URLModel.java:358: end of method: String org.apache.roller.weblogger.ui.rendering.model.URLModel$CommentFeedURLS.atom(String, bool)
        }
        
    }
    
}
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel$CommentFeedURLS__static_init): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/URLModel$CommentFeedURLS]
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel$CommentFeedURLS__static_init): __Dispatch_Table.atom(Ljava/lang/String;Z)Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel$CommentFeedURLS__static_init): __Dispatch_Table.getAtom()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel$CommentFeedURLS__static_init): __Dispatch_Table.getRss()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel$CommentFeedURLS__static_init): __Dispatch_Table.rss(Ljava/lang/String;Z)Ljava/lang/String;
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel$CommentFeedURLS__static_init): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/URLModel$CommentFeedURLS] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel$CommentFeedURLS__static_init): __Dispatch_Table.atom(Ljava/lang/String;Z)Ljava/lang/String; == &atom
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel$CommentFeedURLS__static_init): __Dispatch_Table.getAtom()Ljava/lang/String; == &getAtom
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel$CommentFeedURLS__static_init): __Dispatch_Table.getRss()Ljava/lang/String; == &getRss
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel$CommentFeedURLS__static_init): __Dispatch_Table.rss(Ljava/lang/String;Z)Ljava/lang/String; == &rss
    //#URLModel.java:: end of method: org.apache.roller.weblogger.ui.rendering.model.URLModel$CommentFeedURLS.org.apache.roller.weblogger.ui.rendering.model.URLModel$CommentFeedURLS__static_init
    //#URLModel.java:: end of class: org.apache.roller.weblogger.ui.rendering.model.URLModel$CommentFeedURLS
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS__static_init): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/URLModel$EntryFeedURLS]
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS__static_init): __Dispatch_Table.atom(Ljava/lang/String;Z)Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS__static_init): __Dispatch_Table.atomByTags(Ljava/util/List;Z)Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS__static_init): __Dispatch_Table.getAtom()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS__static_init): __Dispatch_Table.getRss()Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS__static_init): __Dispatch_Table.rss(Ljava/lang/String;Z)Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS__static_init): __Dispatch_Table.rssByTags(Ljava/util/List;Z)Ljava/lang/String;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS__static_init): __Dispatch_Table.search(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS__static_init): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/URLModel$EntryFeedURLS] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS__static_init): __Dispatch_Table.atom(Ljava/lang/String;Z)Ljava/lang/String; == &atom
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS__static_init): __Dispatch_Table.atomByTags(Ljava/util/List;Z)Ljava/lang/String; == &atomByTags
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS__static_init): __Dispatch_Table.getAtom()Ljava/lang/String; == &getAtom
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS__static_init): __Dispatch_Table.getRss()Ljava/lang/String; == &getRss
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS__static_init): __Dispatch_Table.rss(Ljava/lang/String;Z)Ljava/lang/String; == &rss
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS__static_init): __Dispatch_Table.rssByTags(Ljava/util/List;Z)Ljava/lang/String; == &rssByTags
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS__static_init): __Dispatch_Table.search(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; == &search
    //#URLModel.java:: end of method: org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS.org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS__static_init
    //#URLModel.java:: end of class: org.apache.roller.weblogger.ui.rendering.model.URLModel$EntryFeedURLS
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel$FeedURLS__static_init): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/URLModel$FeedURLS]
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel$FeedURLS__static_init): __Dispatch_Table.getComments()Lorg/apache/roller/weblogger/ui/rendering/model/URLModel$CommentFeedURLS;
    //#output(org.apache.roller.weblogger.ui.rendering.model.URLModel$FeedURLS__static_init): __Dispatch_Table.getEntries()Lorg/apache/roller/weblogger/ui/rendering/model/URLModel$EntryFeedURLS;
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel$FeedURLS__static_init): __Descendant_Table[org/apache/roller/weblogger/ui/rendering/model/URLModel$FeedURLS] == &__Dispatch_Table
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel$FeedURLS__static_init): __Dispatch_Table.getComments()Lorg/apache/roller/weblogger/ui/rendering/model/URLModel$CommentFeedURLS; == &getComments
    //#post(org.apache.roller.weblogger.ui.rendering.model.URLModel$FeedURLS__static_init): __Dispatch_Table.getEntries()Lorg/apache/roller/weblogger/ui/rendering/model/URLModel$EntryFeedURLS; == &getEntries
    //#URLModel.java:: end of method: org.apache.roller.weblogger.ui.rendering.model.URLModel$FeedURLS.org.apache.roller.weblogger.ui.rendering.model.URLModel$FeedURLS__static_init
    //#URLModel.java:: end of class: org.apache.roller.weblogger.ui.rendering.model.URLModel$FeedURLS
    //#URLModel.java:: end of class: org.apache.roller.weblogger.ui.rendering.model.URLModel
