//# 0 errors, 371 messages
//#
/*
    //#countedurl.java:1:1: class: net.sourceforge.pebble.logging.CountedUrl
    //#countedurl.java:1:1: method: net.sourceforge.pebble.logging.CountedUrl.net.sourceforge.pebble.logging.CountedUrl__static_init
 * Copyright (c) 2003-2006, Simon Brown
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 *   - Redistributions of source code must retain the above copyright
 *     notice, this list of conditions and the following disclaimer.
 *
 *   - Redistributions in binary form must reproduce the above copyright
 *     notice, this list of conditions and the following disclaimer in
 *     the documentation and/or other materials provided with the
 *     distribution.
 *
 *   - Neither the name of Pebble nor the names of its contributors may
 *     be used to endorse or promote products derived from this software
 *     without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */
package net.sourceforge.pebble.logging;

import net.sourceforge.pebble.domain.Blog;

import java.util.List;
import java.util.LinkedList;
import java.util.Collections;

/**
 * Represents a visited or referer URL along with a count of how many times
 * that URL has been accessed/referred from.
 *
 * @author    Simon Brown
 */
public abstract class CountedUrl {

  /** the maximum length of the name */
  public static final int NAME_LENGTH_LIMIT = 60;

  /** the URL as a String */
  private String url;

  /** the displayable name for the URL */
  private String name;

  /** the collection of log entries that relate to this url */
  private List<LogEntry> logEntries = new LinkedList<LogEntry>();

  private boolean newsFeed = false;
  private boolean pageView = false;
  private boolean fileDownload = false;

  protected Blog blog;

  /**
   * Creates a new CountedUrl representing the specified url.
   *
   * @param url   the url as a String
   */
  public CountedUrl(String url) {
    //#countedurl.java:71: method: void net.sourceforge.pebble.logging.CountedUrl.net.sourceforge.pebble.logging.CountedUrl(String)
    //#countedurl.java:71: Warning: suspicious precondition
    //#    the precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: net.sourceforge.pebble.logging.CountedUrl
    //#    method: void net.sourceforge.pebble.logging.CountedUrl(String)
    //#    suspicious precondition index: [2]
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String)): __Descendant_Table[net/sourceforge/pebble/logging/CountedUrl]
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String)): __Descendant_Table[net/sourceforge/pebble/logging/Referer]
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String)): __Descendant_Table[net/sourceforge/pebble/logging/Request]
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String)): __Descendant_Table[others]
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String)): __Dispatch_Table.setUrl(Ljava/lang/String;)V
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String)): net/sourceforge/pebble/logging/Referer.BING_QUERY_STRING_PATTERN
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String)): net/sourceforge/pebble/logging/Referer.GOOGLE_IMAGES_QUERY_STRING_PATTERN
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String)): net/sourceforge/pebble/logging/Referer.GOOGLE_QUERY_STRING_PATTERN
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String)): net/sourceforge/pebble/logging/Referer.JAVABLOGS_HOT_ENTRIES_PATTERN
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String)): net/sourceforge/pebble/logging/Referer.JAVABLOGS_WELCOME_PATTERN
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String)): net/sourceforge/pebble/logging/Referer.MSN_QUERY_STRING_PATTERN
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String)): net/sourceforge/pebble/logging/Referer.YAHOO_QUERY_STRING_PATTERN
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String)): net/sourceforge/pebble/logging/Referer.__Descendant_Table[net/sourceforge/pebble/logging/Referer]
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String)): net/sourceforge/pebble/logging/Referer.__Descendant_Table[others]
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String)): net/sourceforge/pebble/logging/Referer.__Dispatch_Table.setName(Ljava/lang/String;)V
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String)): net/sourceforge/pebble/logging/Referer.__Dispatch_Table.setUrl(Ljava/lang/String;)V
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String)): net/sourceforge/pebble/logging/Request.AUTHOR_FEED_REGEX
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String)): net/sourceforge/pebble/logging/Request.CATEGORY_FEED_REGEX
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String)): net/sourceforge/pebble/logging/Request.RESPONSES_FEED_REGEX
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String)): net/sourceforge/pebble/logging/Request.TAG_FEED_REGEX
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String)): net/sourceforge/pebble/logging/Request.__Descendant_Table[net/sourceforge/pebble/logging/Request]
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String)): net/sourceforge/pebble/logging/Request.__Descendant_Table[others]
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String)): net/sourceforge/pebble/logging/Request.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String)): net/sourceforge/pebble/logging/Request.__Dispatch_Table.setFileDownload(Z)V
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String)): net/sourceforge/pebble/logging/Request.__Dispatch_Table.setName(Ljava/lang/String;)V
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String)): net/sourceforge/pebble/logging/Request.__Dispatch_Table.setNewsFeed(Z)V
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String)): net/sourceforge/pebble/logging/Request.__Dispatch_Table.setPageView(Z)V
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String)): net/sourceforge/pebble/logging/Request.__Dispatch_Table.setUrl(Ljava/lang/String;)V
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String)): net/sourceforge/pebble/permalink/DefaultPermalinkProvider.__Descendant_Table[net/sourceforge/pebble/permalink/DefaultPermalinkProvider]
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String)): net/sourceforge/pebble/permalink/DefaultPermalinkProvider.__Dispatch_Table.setBlog(Lnet/sourceforge/pebble/domain/Blog;)V
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String)): this
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String)): this.__Tag
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String)): url
    //#output(void net.sourceforge.pebble.logging.CountedUrl(String)): new LinkedList(CountedUrl#1) num objects
    //#output(void net.sourceforge.pebble.logging.CountedUrl(String)): this.blog
    //#output(void net.sourceforge.pebble.logging.CountedUrl(String)): this.fileDownload
    //#output(void net.sourceforge.pebble.logging.CountedUrl(String)): this.logEntries
    //#output(void net.sourceforge.pebble.logging.CountedUrl(String)): this.name
    //#output(void net.sourceforge.pebble.logging.CountedUrl(String)): this.newsFeed
    //#output(void net.sourceforge.pebble.logging.CountedUrl(String)): this.pageView
    //#output(void net.sourceforge.pebble.logging.CountedUrl(String)): this.url
    //#new obj(void net.sourceforge.pebble.logging.CountedUrl(String)): new LinkedList(CountedUrl#1)
    //#pre[2] (void net.sourceforge.pebble.logging.CountedUrl(String)): this.__Tag in {net/sourceforge/pebble/logging/CountedUrl, net/sourceforge/pebble/logging/Referer, net/sourceforge/pebble/logging/Request}
    //#post(void net.sourceforge.pebble.logging.CountedUrl(String)): init'ed(this.blog)
    //#post(void net.sourceforge.pebble.logging.CountedUrl(String)): init'ed(this.fileDownload)
    //#post(void net.sourceforge.pebble.logging.CountedUrl(String)): this.logEntries == &new LinkedList(CountedUrl#1)
    //#post(void net.sourceforge.pebble.logging.CountedUrl(String)): possibly_updated(this.name)
    //#post(void net.sourceforge.pebble.logging.CountedUrl(String)): init'ed(this.newsFeed)
    //#post(void net.sourceforge.pebble.logging.CountedUrl(String)): init'ed(this.pageView)
    //#post(void net.sourceforge.pebble.logging.CountedUrl(String)): init'ed(this.url)
    //#post(void net.sourceforge.pebble.logging.CountedUrl(String)): new LinkedList(CountedUrl#1) num objects == 1
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String)): Effects-of-calling:net.sourceforge.pebble.api.permalink.PermalinkProvider:isBlogEntryPermalink
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String)): Effects-of-calling:net.sourceforge.pebble.api.permalink.PermalinkProvider:getBlogEntry
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String)): Effects-of-calling:net.sourceforge.pebble.domain.BlogEntry:getTitle
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String)): Effects-of-calling:setName
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String)): Effects-of-calling:setPageView
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String)): Effects-of-calling:net.sourceforge.pebble.api.permalink.PermalinkProvider:isMonthPermalink
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String)): Effects-of-calling:net.sourceforge.pebble.api.permalink.PermalinkProvider:getMonth
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String)): Effects-of-calling:net.sourceforge.pebble.domain.Blog:getLocale
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String)): Effects-of-calling:java.text.SimpleDateFormat
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String)): Effects-of-calling:net.sourceforge.pebble.domain.Blog:getTimeZone
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String)): Effects-of-calling:java.text.SimpleDateFormat:setTimeZone
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String)): Effects-of-calling:net.sourceforge.pebble.domain.Month:getDate
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String)): Effects-of-calling:java.text.SimpleDateFormat:format
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String)): Effects-of-calling:net.sourceforge.pebble.api.permalink.PermalinkProvider:isDayPermalink
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String)): Effects-of-calling:net.sourceforge.pebble.api.permalink.PermalinkProvider:getDay
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String)): Effects-of-calling:net.sourceforge.pebble.domain.Day:getDate
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String)): Effects-of-calling:setUrl
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String)): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String)): Effects-of-calling:java.util.regex.Pattern:matcher
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String)): Effects-of-calling:java.util.regex.Matcher:matches
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String)): Effects-of-calling:setNewsFeed
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String)): Effects-of-calling:java.lang.String:lastIndexOf
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String)): Effects-of-calling:java.lang.String:substring
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String)): Effects-of-calling:java.lang.String:indexOf
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String)): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String)): Effects-of-calling:java.lang.String:startsWith
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String)): Effects-of-calling:java.lang.String:endsWith
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String)): Effects-of-calling:setFileDownload
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String)): Effects-of-calling:net.sourceforge.pebble.domain.Blog:getPermalinkProvider
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String)): Effects-of-calling:getName
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String)): Effects-of-calling:java.util.regex.Matcher:find
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String)): Effects-of-calling:java.util.regex.Matcher:start
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String)): Effects-of-calling:java.util.regex.Matcher:end
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String)): Effects-of-calling:java.net.URLDecoder:decode
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String)): Effects-of-calling:java.lang.String:equalsIgnoreCase
    setUrl(url);
  }
    //#countedurl.java:73: end of method: void net.sourceforge.pebble.logging.CountedUrl.net.sourceforge.pebble.logging.CountedUrl(String)

  /**
   * Creates a new CountedUrl representing the specified url.
   *
   * @param url   the url as a String
   */
  public CountedUrl(String url, Blog blog) {
    //#countedurl.java:80: method: void net.sourceforge.pebble.logging.CountedUrl.net.sourceforge.pebble.logging.CountedUrl(String, Blog)
    //#countedurl.java:80: Warning: suspicious precondition
    //#    the precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: net.sourceforge.pebble.logging.CountedUrl
    //#    method: void net.sourceforge.pebble.logging.CountedUrl(String, Blog)
    //#    suspicious precondition index: [3]
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): __Descendant_Table[net/sourceforge/pebble/logging/CountedUrl]
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): __Descendant_Table[net/sourceforge/pebble/logging/Referer]
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): __Descendant_Table[net/sourceforge/pebble/logging/Request]
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): __Descendant_Table[others]
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): __Dispatch_Table.setUrl(Ljava/lang/String;)V
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): blog
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): net/sourceforge/pebble/logging/Referer.BING_QUERY_STRING_PATTERN
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): net/sourceforge/pebble/logging/Referer.GOOGLE_IMAGES_QUERY_STRING_PATTERN
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): net/sourceforge/pebble/logging/Referer.GOOGLE_QUERY_STRING_PATTERN
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): net/sourceforge/pebble/logging/Referer.JAVABLOGS_HOT_ENTRIES_PATTERN
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): net/sourceforge/pebble/logging/Referer.JAVABLOGS_WELCOME_PATTERN
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): net/sourceforge/pebble/logging/Referer.MSN_QUERY_STRING_PATTERN
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): net/sourceforge/pebble/logging/Referer.YAHOO_QUERY_STRING_PATTERN
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): net/sourceforge/pebble/logging/Referer.__Descendant_Table[net/sourceforge/pebble/logging/Referer]
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): net/sourceforge/pebble/logging/Referer.__Descendant_Table[others]
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): net/sourceforge/pebble/logging/Referer.__Dispatch_Table.setName(Ljava/lang/String;)V
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): net/sourceforge/pebble/logging/Referer.__Dispatch_Table.setUrl(Ljava/lang/String;)V
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): net/sourceforge/pebble/logging/Request.AUTHOR_FEED_REGEX
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): net/sourceforge/pebble/logging/Request.CATEGORY_FEED_REGEX
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): net/sourceforge/pebble/logging/Request.RESPONSES_FEED_REGEX
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): net/sourceforge/pebble/logging/Request.TAG_FEED_REGEX
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): net/sourceforge/pebble/logging/Request.__Descendant_Table[net/sourceforge/pebble/logging/Request]
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): net/sourceforge/pebble/logging/Request.__Descendant_Table[others]
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): net/sourceforge/pebble/logging/Request.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): net/sourceforge/pebble/logging/Request.__Dispatch_Table.setFileDownload(Z)V
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): net/sourceforge/pebble/logging/Request.__Dispatch_Table.setName(Ljava/lang/String;)V
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): net/sourceforge/pebble/logging/Request.__Dispatch_Table.setNewsFeed(Z)V
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): net/sourceforge/pebble/logging/Request.__Dispatch_Table.setPageView(Z)V
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): net/sourceforge/pebble/logging/Request.__Dispatch_Table.setUrl(Ljava/lang/String;)V
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): net/sourceforge/pebble/permalink/DefaultPermalinkProvider.__Descendant_Table[net/sourceforge/pebble/permalink/DefaultPermalinkProvider]
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): net/sourceforge/pebble/permalink/DefaultPermalinkProvider.__Dispatch_Table.setBlog(Lnet/sourceforge/pebble/domain/Blog;)V
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): this
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): this.__Tag
    //#input(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): url
    //#output(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): new LinkedList(CountedUrl#1) num objects
    //#output(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): this.blog
    //#output(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): this.fileDownload
    //#output(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): this.logEntries
    //#output(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): this.name
    //#output(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): this.newsFeed
    //#output(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): this.pageView
    //#output(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): this.url
    //#new obj(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): new LinkedList(CountedUrl#1)
    //#pre[3] (void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): this.__Tag in {net/sourceforge/pebble/logging/CountedUrl, net/sourceforge/pebble/logging/Referer, net/sourceforge/pebble/logging/Request}
    //#post(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): this.blog == blog
    //#post(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): init'ed(this.blog)
    //#post(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): init'ed(this.fileDownload)
    //#post(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): this.logEntries == &new LinkedList(CountedUrl#1)
    //#post(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): possibly_updated(this.name)
    //#post(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): init'ed(this.newsFeed)
    //#post(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): init'ed(this.pageView)
    //#post(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): init'ed(this.url)
    //#post(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): new LinkedList(CountedUrl#1) num objects == 1
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): Effects-of-calling:net.sourceforge.pebble.api.permalink.PermalinkProvider:isBlogEntryPermalink
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): Effects-of-calling:net.sourceforge.pebble.api.permalink.PermalinkProvider:getBlogEntry
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): Effects-of-calling:net.sourceforge.pebble.domain.BlogEntry:getTitle
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): Effects-of-calling:setName
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): Effects-of-calling:setPageView
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): Effects-of-calling:net.sourceforge.pebble.api.permalink.PermalinkProvider:isMonthPermalink
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): Effects-of-calling:net.sourceforge.pebble.api.permalink.PermalinkProvider:getMonth
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): Effects-of-calling:net.sourceforge.pebble.domain.Blog:getLocale
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): Effects-of-calling:java.text.SimpleDateFormat
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): Effects-of-calling:net.sourceforge.pebble.domain.Blog:getTimeZone
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): Effects-of-calling:java.text.SimpleDateFormat:setTimeZone
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): Effects-of-calling:net.sourceforge.pebble.domain.Month:getDate
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): Effects-of-calling:java.text.SimpleDateFormat:format
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): Effects-of-calling:net.sourceforge.pebble.api.permalink.PermalinkProvider:isDayPermalink
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): Effects-of-calling:net.sourceforge.pebble.api.permalink.PermalinkProvider:getDay
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): Effects-of-calling:net.sourceforge.pebble.domain.Day:getDate
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): Effects-of-calling:setUrl
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): Effects-of-calling:java.util.regex.Pattern:matcher
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): Effects-of-calling:java.util.regex.Matcher:matches
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): Effects-of-calling:setNewsFeed
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): Effects-of-calling:java.lang.String:lastIndexOf
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): Effects-of-calling:java.lang.String:substring
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): Effects-of-calling:java.lang.String:indexOf
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): Effects-of-calling:java.lang.String:startsWith
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): Effects-of-calling:java.lang.String:endsWith
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): Effects-of-calling:setFileDownload
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): Effects-of-calling:net.sourceforge.pebble.domain.Blog:getPermalinkProvider
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): Effects-of-calling:getName
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): Effects-of-calling:java.util.regex.Matcher:find
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): Effects-of-calling:java.util.regex.Matcher:start
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): Effects-of-calling:java.util.regex.Matcher:end
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): Effects-of-calling:java.net.URLDecoder:decode
    //#unanalyzed(void net.sourceforge.pebble.logging.CountedUrl(String, Blog)): Effects-of-calling:java.lang.String:equalsIgnoreCase
    this.blog = blog;
    setUrl(url);
  }
    //#countedurl.java:83: end of method: void net.sourceforge.pebble.logging.CountedUrl.net.sourceforge.pebble.logging.CountedUrl(String, Blog)

  /**
   * Gets the underlying url.
   *
   * @return    the url as a String
   */
  public String getUrl() {
    return url;
    //#countedurl.java:91: method: String net.sourceforge.pebble.logging.CountedUrl.getUrl()
    //#input(String getUrl()): this
    //#input(String getUrl()): this.url
    //#output(String getUrl()): return_value
    //#pre[2] (String getUrl()): init'ed(this.url)
    //#post(String getUrl()): return_value == this.url
    //#post(String getUrl()): init'ed(return_value)
    //#countedurl.java:91: end of method: String net.sourceforge.pebble.logging.CountedUrl.getUrl()
  }

  /**
   * Sets the underlying url.
   *
   * @param url   the url as a String
   */
  protected void setUrl(String url) {
    this.url = url;
    //#countedurl.java:100: method: void net.sourceforge.pebble.logging.CountedUrl.setUrl(String)
    //#input(void setUrl(String)): this
    //#input(void setUrl(String)): url
    //#output(void setUrl(String)): this.url
    //#post(void setUrl(String)): this.url == url
    //#post(void setUrl(String)): init'ed(this.url)
  }
    //#countedurl.java:101: end of method: void net.sourceforge.pebble.logging.CountedUrl.setUrl(String)

  /**
   * Gets a name representation of the url. This is just the url, but truncated
   * to a maximum number of characters.
   *
   * @return    a String
   */
  public String getName() {
    return this.name;
    //#countedurl.java:110: method: String net.sourceforge.pebble.logging.CountedUrl.getName()
    //#input(String getName()): this
    //#input(String getName()): this.name
    //#output(String getName()): return_value
    //#pre[2] (String getName()): init'ed(this.name)
    //#post(String getName()): return_value == this.name
    //#post(String getName()): init'ed(return_value)
    //#countedurl.java:110: end of method: String net.sourceforge.pebble.logging.CountedUrl.getName()
  }

  /**
   * Sets the name.
   *
   * @param name    the name as a String
   */
  protected void setName(String name) {
    this.name = name;
    //#countedurl.java:119: method: void net.sourceforge.pebble.logging.CountedUrl.setName(String)
    //#input(void setName(String)): name
    //#input(void setName(String)): this
    //#output(void setName(String)): this.name
    //#post(void setName(String)): this.name == name
    //#post(void setName(String)): init'ed(this.name)
  }
    //#countedurl.java:120: end of method: void net.sourceforge.pebble.logging.CountedUrl.setName(String)

  /**
   * Gets a name representation of the url. This is just the url, but truncated
   * to a maximum number of characters.
   *
   * @return    a String
   */
  public String getTruncatedName() {
    String s = getName();
    //#countedurl.java:129: method: String net.sourceforge.pebble.logging.CountedUrl.getTruncatedName()
    //#countedurl.java:129: Warning: suspicious precondition
    //#    the precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: net.sourceforge.pebble.logging.CountedUrl
    //#    method: String getTruncatedName()
    //#    suspicious precondition index: [2]
    //#input(String getTruncatedName()): __Descendant_Table[net/sourceforge/pebble/logging/CountedUrl]
    //#input(String getTruncatedName()): __Descendant_Table[net/sourceforge/pebble/logging/Referer]
    //#input(String getTruncatedName()): __Descendant_Table[net/sourceforge/pebble/logging/Request]
    //#input(String getTruncatedName()): __Descendant_Table[others]
    //#input(String getTruncatedName()): __Dispatch_Table.getName()Ljava/lang/String;
    //#input(String getTruncatedName()): net/sourceforge/pebble/logging/Referer.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(String getTruncatedName()): net/sourceforge/pebble/logging/Request.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(String getTruncatedName()): this
    //#input(String getTruncatedName()): this.__Tag
    //#input(String getTruncatedName()): this.name
    //#output(String getTruncatedName()): return_value
    //#pre[2] (String getTruncatedName()): this.__Tag in {net/sourceforge/pebble/logging/CountedUrl, net/sourceforge/pebble/logging/Referer, net/sourceforge/pebble/logging/Request}
    //#pre[3] (String getTruncatedName()): this.name != null
    //#post(String getTruncatedName()): return_value != null
    //#test_vector(String getTruncatedName()): java.lang.String:length(...)@130: {61..4_294_967_295}, {0..60}
    if (s.length() <= NAME_LENGTH_LIMIT) {
      return s;
    } else {
      return s.substring(0, NAME_LENGTH_LIMIT - 3) + "...";
    //#countedurl.java:133: end of method: String net.sourceforge.pebble.logging.CountedUrl.getTruncatedName()
    }
  }

  /**
   * Adds a LogEntry.
   *
   * @param logEntry    a LogEntry instance
   */
  public void addLogEntry(LogEntry logEntry) {
    logEntries.add(logEntry);
    //#countedurl.java:143: method: void net.sourceforge.pebble.logging.CountedUrl.addLogEntry(LogEntry)
    //#input(void addLogEntry(LogEntry)): logEntry
    //#input(void addLogEntry(LogEntry)): this
    //#input(void addLogEntry(LogEntry)): this.logEntries
    //#pre[3] (void addLogEntry(LogEntry)): this.logEntries != null
  }
    //#countedurl.java:144: end of method: void net.sourceforge.pebble.logging.CountedUrl.addLogEntry(LogEntry)

  /**
   * Gets the list of log entries associated with this URL
   *
   * @return  a List of LogEntry instances
   */
  public List<LogEntry> getLogEntries() {
    return new LinkedList<LogEntry>(logEntries);
    //#countedurl.java:152: method: List net.sourceforge.pebble.logging.CountedUrl.getLogEntries()
    //#input(List getLogEntries()): this
    //#input(List getLogEntries()): this.logEntries
    //#output(List getLogEntries()): new LinkedList(getLogEntries#1) num objects
    //#output(List getLogEntries()): return_value
    //#new obj(List getLogEntries()): new LinkedList(getLogEntries#1)
    //#pre[2] (List getLogEntries()): init'ed(this.logEntries)
    //#post(List getLogEntries()): return_value == &new LinkedList(getLogEntries#1)
    //#post(List getLogEntries()): new LinkedList(getLogEntries#1) num objects == 1
    //#countedurl.java:152: end of method: List net.sourceforge.pebble.logging.CountedUrl.getLogEntries()
  }

  /**
   * Gets the count associated with this url.
   *
   * @return    the count as an int
   */
  public int getCount() {
    return logEntries.size();
    //#countedurl.java:161: method: int net.sourceforge.pebble.logging.CountedUrl.getCount()
    //#input(int getCount()): this
    //#input(int getCount()): this.logEntries
    //#output(int getCount()): return_value
    //#pre[2] (int getCount()): this.logEntries != null
    //#post(int getCount()): init'ed(return_value)
    //#countedurl.java:161: end of method: int net.sourceforge.pebble.logging.CountedUrl.getCount()
  }

  /**
   * Implementation of the hashCode() method.
   *
   * @return  the hashcode of the underlying url
   */
  public int hashCode() {
    return url == null ? 0 : url.hashCode();
    //#countedurl.java:170: method: int net.sourceforge.pebble.logging.CountedUrl.hashCode()
    //#input(int hashCode()): this
    //#input(int hashCode()): this.url
    //#output(int hashCode()): return_value
    //#pre[2] (int hashCode()): init'ed(this.url)
    //#post(int hashCode()): init'ed(return_value)
    //#countedurl.java:170: end of method: int net.sourceforge.pebble.logging.CountedUrl.hashCode()
  }

  /**
   * Determines whether this object is equal to another.
   *
   * @param o   the object to test against
   * @return  true if the specified object is the same as this one (i.e. the
   *          underlying urls match, false otherwise
   */
  public boolean equals(Object o) {
    if (this == o) return true;
    //#countedurl.java:181: method: bool net.sourceforge.pebble.logging.CountedUrl.equals(Object)
    //#countedurl.java:181: Warning: suspicious precondition
    //#    the precondition for o.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: net.sourceforge.pebble.logging.CountedUrl
    //#    method: bool equals(Object)
    //#    suspicious precondition index: [4]
    //#    Attribs:  Soft
    //#input(bool equals(Object)): __Descendant_Table[net/sourceforge/pebble/logging/CountedUrl]
    //#input(bool equals(Object)): __Descendant_Table[net/sourceforge/pebble/logging/Referer]
    //#input(bool equals(Object)): __Descendant_Table[net/sourceforge/pebble/logging/Request]
    //#input(bool equals(Object)): __Descendant_Table[others]
    //#input(bool equals(Object)): __Dispatch_Table.getUrl()Ljava/lang/String;
    //#input(bool equals(Object)): net/sourceforge/pebble/logging/Referer.__Dispatch_Table.getUrl()Ljava/lang/String;
    //#input(bool equals(Object)): net/sourceforge/pebble/logging/Request.__Dispatch_Table.getUrl()Ljava/lang/String;
    //#input(bool equals(Object)): o
    //#input(bool equals(Object)): o.__Tag
    //#input(bool equals(Object)): o.url
    //#input(bool equals(Object)): this
    //#input(bool equals(Object)): this.url
    //#output(bool equals(Object)): return_value
    //#pre[4] (bool equals(Object)): (soft) o.__Tag in {net/sourceforge/pebble/logging/CountedUrl, net/sourceforge/pebble/logging/Referer, net/sourceforge/pebble/logging/Request}
    //#pre[5] (bool equals(Object)): (soft) init'ed(o.url)
    //#pre[8] (bool equals(Object)): (soft) init'ed(this.url)
    //#post(bool equals(Object)): init'ed(return_value)
    //#test_vector(bool equals(Object)): o.url: Inverse{null}, Addr_Set{null}
    //#test_vector(bool equals(Object)): this == o: {0}, {1}
    //#test_vector(bool equals(Object)): this.url: Inverse{null}, Addr_Set{null}
    //#test_vector(bool equals(Object)): java.lang.String:equals(...)@189: {0}, {1}
    if (!(o instanceof CountedUrl)) return false;

    CountedUrl cUrl = (CountedUrl)o;

    if (url == null && cUrl.getUrl() == null) {
      return true;
    } else {
      return (url != null && url.equals(cUrl.getUrl()));
    //#countedurl.java:189: end of method: bool net.sourceforge.pebble.logging.CountedUrl.equals(Object)
    }
  }

  public boolean isNewsFeed() {
    return newsFeed;
    //#countedurl.java:194: method: bool net.sourceforge.pebble.logging.CountedUrl.isNewsFeed()
    //#input(bool isNewsFeed()): this
    //#input(bool isNewsFeed()): this.newsFeed
    //#output(bool isNewsFeed()): return_value
    //#pre[2] (bool isNewsFeed()): init'ed(this.newsFeed)
    //#post(bool isNewsFeed()): return_value == this.newsFeed
    //#post(bool isNewsFeed()): init'ed(return_value)
    //#countedurl.java:194: end of method: bool net.sourceforge.pebble.logging.CountedUrl.isNewsFeed()
  }

  public void setNewsFeed(boolean newsFeed) {
    this.newsFeed = newsFeed;
    //#countedurl.java:198: method: void net.sourceforge.pebble.logging.CountedUrl.setNewsFeed(bool)
    //#input(void setNewsFeed(bool)): newsFeed
    //#input(void setNewsFeed(bool)): this
    //#output(void setNewsFeed(bool)): this.newsFeed
    //#post(void setNewsFeed(bool)): this.newsFeed == newsFeed
    //#post(void setNewsFeed(bool)): init'ed(this.newsFeed)
  }
    //#countedurl.java:199: end of method: void net.sourceforge.pebble.logging.CountedUrl.setNewsFeed(bool)

  public boolean isPageView() {
    return pageView;
    //#countedurl.java:202: method: bool net.sourceforge.pebble.logging.CountedUrl.isPageView()
    //#input(bool isPageView()): this
    //#input(bool isPageView()): this.pageView
    //#output(bool isPageView()): return_value
    //#pre[2] (bool isPageView()): init'ed(this.pageView)
    //#post(bool isPageView()): return_value == this.pageView
    //#post(bool isPageView()): init'ed(return_value)
    //#countedurl.java:202: end of method: bool net.sourceforge.pebble.logging.CountedUrl.isPageView()
  }

  public void setPageView(boolean pageView) {
    this.pageView = pageView;
    //#countedurl.java:206: method: void net.sourceforge.pebble.logging.CountedUrl.setPageView(bool)
    //#input(void setPageView(bool)): pageView
    //#input(void setPageView(bool)): this
    //#output(void setPageView(bool)): this.pageView
    //#post(void setPageView(bool)): this.pageView == pageView
    //#post(void setPageView(bool)): init'ed(this.pageView)
  }
    //#countedurl.java:207: end of method: void net.sourceforge.pebble.logging.CountedUrl.setPageView(bool)

  public boolean isFileDownload() {
    return fileDownload;
    //#countedurl.java:210: method: bool net.sourceforge.pebble.logging.CountedUrl.isFileDownload()
    //#input(bool isFileDownload()): this
    //#input(bool isFileDownload()): this.fileDownload
    //#output(bool isFileDownload()): return_value
    //#pre[2] (bool isFileDownload()): init'ed(this.fileDownload)
    //#post(bool isFileDownload()): return_value == this.fileDownload
    //#post(bool isFileDownload()): init'ed(return_value)
    //#countedurl.java:210: end of method: bool net.sourceforge.pebble.logging.CountedUrl.isFileDownload()
  }

  public void setFileDownload(boolean fileDownload) {
    this.fileDownload = fileDownload;
    //#countedurl.java:214: method: void net.sourceforge.pebble.logging.CountedUrl.setFileDownload(bool)
    //#input(void setFileDownload(bool)): fileDownload
    //#input(void setFileDownload(bool)): this
    //#output(void setFileDownload(bool)): this.fileDownload
    //#post(void setFileDownload(bool)): this.fileDownload == fileDownload
    //#post(void setFileDownload(bool)): init'ed(this.fileDownload)
  }
    //#countedurl.java:215: end of method: void net.sourceforge.pebble.logging.CountedUrl.setFileDownload(bool)
  
}    //#output(net.sourceforge.pebble.logging.CountedUrl__static_init): __Descendant_Table[net/sourceforge/pebble/logging/CountedUrl]
    //#output(net.sourceforge.pebble.logging.CountedUrl__static_init): __Dispatch_Table.addLogEntry(Lnet/sourceforge/pebble/logging/LogEntry;)V
    //#output(net.sourceforge.pebble.logging.CountedUrl__static_init): __Dispatch_Table.equals(Ljava/lang/Object;)Z
    //#output(net.sourceforge.pebble.logging.CountedUrl__static_init): __Dispatch_Table.getCount()I
    //#output(net.sourceforge.pebble.logging.CountedUrl__static_init): __Dispatch_Table.getLogEntries()Ljava/util/List;
    //#output(net.sourceforge.pebble.logging.CountedUrl__static_init): __Dispatch_Table.getName()Ljava/lang/String;
    //#output(net.sourceforge.pebble.logging.CountedUrl__static_init): __Dispatch_Table.getTruncatedName()Ljava/lang/String;
    //#output(net.sourceforge.pebble.logging.CountedUrl__static_init): __Dispatch_Table.getUrl()Ljava/lang/String;
    //#output(net.sourceforge.pebble.logging.CountedUrl__static_init): __Dispatch_Table.hashCode()I
    //#output(net.sourceforge.pebble.logging.CountedUrl__static_init): __Dispatch_Table.isFileDownload()Z
    //#output(net.sourceforge.pebble.logging.CountedUrl__static_init): __Dispatch_Table.isNewsFeed()Z
    //#output(net.sourceforge.pebble.logging.CountedUrl__static_init): __Dispatch_Table.isPageView()Z
    //#output(net.sourceforge.pebble.logging.CountedUrl__static_init): __Dispatch_Table.setFileDownload(Z)V
    //#output(net.sourceforge.pebble.logging.CountedUrl__static_init): __Dispatch_Table.setName(Ljava/lang/String;)V
    //#output(net.sourceforge.pebble.logging.CountedUrl__static_init): __Dispatch_Table.setNewsFeed(Z)V
    //#output(net.sourceforge.pebble.logging.CountedUrl__static_init): __Dispatch_Table.setPageView(Z)V
    //#output(net.sourceforge.pebble.logging.CountedUrl__static_init): __Dispatch_Table.setUrl(Ljava/lang/String;)V
    //#post(net.sourceforge.pebble.logging.CountedUrl__static_init): __Descendant_Table[net/sourceforge/pebble/logging/CountedUrl] == &__Dispatch_Table
    //#post(net.sourceforge.pebble.logging.CountedUrl__static_init): __Dispatch_Table.addLogEntry(Lnet/sourceforge/pebble/logging/LogEntry;)V == &addLogEntry
    //#post(net.sourceforge.pebble.logging.CountedUrl__static_init): __Dispatch_Table.equals(Ljava/lang/Object;)Z == &equals
    //#post(net.sourceforge.pebble.logging.CountedUrl__static_init): __Dispatch_Table.getCount()I == &getCount
    //#post(net.sourceforge.pebble.logging.CountedUrl__static_init): __Dispatch_Table.getLogEntries()Ljava/util/List; == &getLogEntries
    //#post(net.sourceforge.pebble.logging.CountedUrl__static_init): __Dispatch_Table.getName()Ljava/lang/String; == &getName
    //#post(net.sourceforge.pebble.logging.CountedUrl__static_init): __Dispatch_Table.getTruncatedName()Ljava/lang/String; == &getTruncatedName
    //#post(net.sourceforge.pebble.logging.CountedUrl__static_init): __Dispatch_Table.getUrl()Ljava/lang/String; == &getUrl
    //#post(net.sourceforge.pebble.logging.CountedUrl__static_init): __Dispatch_Table.hashCode()I == &hashCode
    //#post(net.sourceforge.pebble.logging.CountedUrl__static_init): __Dispatch_Table.isFileDownload()Z == &isFileDownload
    //#post(net.sourceforge.pebble.logging.CountedUrl__static_init): __Dispatch_Table.isNewsFeed()Z == &isNewsFeed
    //#post(net.sourceforge.pebble.logging.CountedUrl__static_init): __Dispatch_Table.isPageView()Z == &isPageView
    //#post(net.sourceforge.pebble.logging.CountedUrl__static_init): __Dispatch_Table.setFileDownload(Z)V == &setFileDownload
    //#post(net.sourceforge.pebble.logging.CountedUrl__static_init): __Dispatch_Table.setName(Ljava/lang/String;)V == &setName
    //#post(net.sourceforge.pebble.logging.CountedUrl__static_init): __Dispatch_Table.setNewsFeed(Z)V == &setNewsFeed
    //#post(net.sourceforge.pebble.logging.CountedUrl__static_init): __Dispatch_Table.setPageView(Z)V == &setPageView
    //#post(net.sourceforge.pebble.logging.CountedUrl__static_init): __Dispatch_Table.setUrl(Ljava/lang/String;)V == &setUrl
    //#countedurl.java:: end of method: net.sourceforge.pebble.logging.CountedUrl.net.sourceforge.pebble.logging.CountedUrl__static_init
    //#countedurl.java:: end of class: net.sourceforge.pebble.logging.CountedUrl
