//# 0 errors, 206 messages
//#
package net.sourceforge.pebble.decorator;
    //#staticpagetagsdecorator.java:1:1: class: net.sourceforge.pebble.decorator.StaticPageTagsDecorator
    //#staticpagetagsdecorator.java:1:1: method: net.sourceforge.pebble.decorator.StaticPageTagsDecorator.net.sourceforge.pebble.decorator.StaticPageTagsDecorator__static_init

import net.sourceforge.pebble.domain.PageBasedContent;
import net.sourceforge.pebble.domain.StaticPage;
import net.sourceforge.pebble.api.decorator.ContentDecoratorContext;

/**
 * Generates tag links for inclusion in the body of static pages,
 * when rendered as HTML and newsfeeds.
 *
 * @author Simon Brown
 */
public class StaticPageTagsDecorator extends AbstractTagsDecorator {
    //#staticpagetagsdecorator.java:13: method: void net.sourceforge.pebble.decorator.StaticPageTagsDecorator.net.sourceforge.pebble.decorator.StaticPageTagsDecorator()
    //#input(void net.sourceforge.pebble.decorator.StaticPageTagsDecorator()): this
    //#output(void net.sourceforge.pebble.decorator.StaticPageTagsDecorator()): this.resourceKey
    //#output(void net.sourceforge.pebble.decorator.StaticPageTagsDecorator()): this.target
    //#post(void net.sourceforge.pebble.decorator.StaticPageTagsDecorator()): this.resourceKey == &"tag.tags"
    //#post(void net.sourceforge.pebble.decorator.StaticPageTagsDecorator()): this.target == &""
    //#staticpagetagsdecorator.java:13: end of method: void net.sourceforge.pebble.decorator.StaticPageTagsDecorator.net.sourceforge.pebble.decorator.StaticPageTagsDecorator()

  /**
   * Decorates the specified static page.
   *
   * @param context    the context in which the decoration is running
   * @param staticPage the static page to be decorated
   */
  @Override
  public void decorate(ContentDecoratorContext context, StaticPage staticPage) {
    String html = generateDecorationHtml(context, staticPage);
    //#staticpagetagsdecorator.java:23: method: void net.sourceforge.pebble.decorator.StaticPageTagsDecorator.decorate(ContentDecoratorContext, StaticPage)
    //#input(void decorate(ContentDecoratorContext, StaticPage)): __Descendant_Table[net/sourceforge/pebble/decorator/StaticPageTagsDecorator]
    //#input(void decorate(ContentDecoratorContext, StaticPage)): __Descendant_Table[others]
    //#input(void decorate(ContentDecoratorContext, StaticPage)): __Dispatch_Table.generateDecorationHtml(Lnet/sourceforge/pebble/api/decorator/ContentDecoratorContext;Lnet/sourceforge/pebble/domain/PageBasedContent;)Ljava/lang/String;
    //#input(void decorate(ContentDecoratorContext, StaticPage)): __Dispatch_Table.getBaseUrl(Lnet/sourceforge/pebble/domain/PageBasedContent;)Ljava/lang/String;
    //#input(void decorate(ContentDecoratorContext, StaticPage)): context
    //#input(void decorate(ContentDecoratorContext, StaticPage)): context.__Tag
    //#input(void decorate(ContentDecoratorContext, StaticPage)): context.media
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/Configuration.__Descendant_Table[net/sourceforge/pebble/Configuration]
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/Configuration.__Descendant_Table[others]
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/Configuration.__Dispatch_Table.getUrl()Ljava/lang/String;
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/Configuration.__Dispatch_Table.isVirtualHostingEnabled()Z
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/api/decorator/ContentDecoratorContext.__Descendant_Table[net/sourceforge/pebble/api/decorator/ContentDecoratorContext]
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/api/decorator/ContentDecoratorContext.__Descendant_Table[others]
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/api/decorator/ContentDecoratorContext.__Dispatch_Table.getMedia()I
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/decorator/AbstractTagsDecorator.__Descendant_Table[net/sourceforge/pebble/decorator/AbstractTagsDecorator]
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/decorator/AbstractTagsDecorator.__Descendant_Table[net/sourceforge/pebble/decorator/BlogTagsDecorator]
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/decorator/AbstractTagsDecorator.__Descendant_Table[net/sourceforge/pebble/decorator/StaticPageTagsDecorator]
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/decorator/AbstractTagsDecorator.__Descendant_Table[net/sourceforge/pebble/decorator/TechnoratiTagsDecorator]
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/decorator/AbstractTagsDecorator.__Descendant_Table[others]
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/decorator/AbstractTagsDecorator.__Dispatch_Table.getBaseUrl(Lnet/sourceforge/pebble/domain/PageBasedContent;)Ljava/lang/String;
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/decorator/BlogTagsDecorator.__Dispatch_Table.getBaseUrl(Lnet/sourceforge/pebble/domain/PageBasedContent;)Ljava/lang/String;
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/decorator/TechnoratiTagsDecorator.__Dispatch_Table.getBaseUrl(Lnet/sourceforge/pebble/domain/PageBasedContent;)Ljava/lang/String;
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/domain/Blog.__Descendant_Table[net/sourceforge/pebble/domain/Blog]
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/domain/Blog.__Descendant_Table[others]
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.getId()Ljava/lang/String;
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.getRootCategory()Lnet/sourceforge/pebble/domain/Category;
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.getUrl()Ljava/lang/String;
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[net/sourceforge/pebble/domain/BlogEntry]
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[others]
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getAllTags()Ljava/util/List;
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getCategories()Ljava/util/Set;
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getTagsAsList()Ljava/util/List;
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/domain/BlogManager.__Descendant_Table[net/sourceforge/pebble/domain/BlogManager]
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/domain/BlogManager.__Descendant_Table[others]
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/domain/BlogManager.__Dispatch_Table.isMultiBlog()Z
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/domain/BlogManager.instance.__Tag
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/domain/Category.__Descendant_Table[net/sourceforge/pebble/domain/Category]
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/domain/Category.__Descendant_Table[others]
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.getAllTags()Ljava/util/List;
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.getParent()Lnet/sourceforge/pebble/domain/Category;
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.getTagsAsList()Ljava/util/List;
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[net/sourceforge/pebble/domain/BlogEntry]
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[net/sourceforge/pebble/domain/PageBasedContent]
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[net/sourceforge/pebble/domain/StaticPage]
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[others]
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/domain/PageBasedContent.__Dispatch_Table.getAllTags()Ljava/util/List;
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/domain/PageBasedContent.__Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/domain/StaticPage.__Descendant_Table[net/sourceforge/pebble/domain/StaticPage]
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/domain/StaticPage.__Descendant_Table[others]
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/domain/StaticPage.__Dispatch_Table.getAllTags()Ljava/util/List;
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/domain/StaticPage.__Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/domain/StaticPage.__Dispatch_Table.getBody()Ljava/lang/String;
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/domain/StaticPage.__Dispatch_Table.getTagsAsList()Ljava/util/List;
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/domain/StaticPage.__Dispatch_Table.setBody(Ljava/lang/String;)V
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/domain/Tag.__Descendant_Table[net/sourceforge/pebble/domain/Tag]
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/domain/Tag.__Descendant_Table[net/sourceforge/pebble/index/IndexedTag]
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/domain/Tag.__Descendant_Table[others]
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/domain/Tag.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(void decorate(ContentDecoratorContext, StaticPage)): net/sourceforge/pebble/index/IndexedTag.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(void decorate(ContentDecoratorContext, StaticPage)): staticPage
    //#input(void decorate(ContentDecoratorContext, StaticPage)): staticPage.__Tag
    //#input(void decorate(ContentDecoratorContext, StaticPage)): staticPage.blog
    //#input(void decorate(ContentDecoratorContext, StaticPage)): staticPage.blog.__Tag
    //#input(void decorate(ContentDecoratorContext, StaticPage)): staticPage.blog.rootCategory...__Tag
    //#input(void decorate(ContentDecoratorContext, StaticPage)): staticPage.blog.rootCategory.__Tag
    //#input(void decorate(ContentDecoratorContext, StaticPage)): staticPage.body
    //#input(void decorate(ContentDecoratorContext, StaticPage)): staticPage.propertyChangeSupport
    //#input(void decorate(ContentDecoratorContext, StaticPage)): staticPage.tagsAsList
    //#input(void decorate(ContentDecoratorContext, StaticPage)): this
    //#input(void decorate(ContentDecoratorContext, StaticPage)): this.__Tag
    //#input(void decorate(ContentDecoratorContext, StaticPage)): this.resourceKey
    //#input(void decorate(ContentDecoratorContext, StaticPage)): this.target
    //#output(void decorate(ContentDecoratorContext, StaticPage)): staticPage.body
    //#pre[1] (void decorate(ContentDecoratorContext, StaticPage)): context != null
    //#pre[2] (void decorate(ContentDecoratorContext, StaticPage)): context.__Tag == net/sourceforge/pebble/api/decorator/ContentDecoratorContext
    //#pre[3] (void decorate(ContentDecoratorContext, StaticPage)): init'ed(context.media)
    //#pre[7] (void decorate(ContentDecoratorContext, StaticPage)): init'ed(staticPage.body)
    //#pre[8] (void decorate(ContentDecoratorContext, StaticPage)): (soft) staticPage != null
    //#pre[9] (void decorate(ContentDecoratorContext, StaticPage)): (soft) staticPage.__Tag == net/sourceforge/pebble/domain/StaticPage
    //#pre[10] (void decorate(ContentDecoratorContext, StaticPage)): (soft) init'ed(staticPage.blog)
    //#pre[21] (void decorate(ContentDecoratorContext, StaticPage)): (soft) staticPage.propertyChangeSupport != null
    //#pre[22] (void decorate(ContentDecoratorContext, StaticPage)): (soft) init'ed(staticPage.tagsAsList)
    //#pre[24] (void decorate(ContentDecoratorContext, StaticPage)): (soft) this.__Tag == net/sourceforge/pebble/decorator/StaticPageTagsDecorator
    //#post(void decorate(ContentDecoratorContext, StaticPage)): init'ed(staticPage.body)
    //#unanalyzed(void decorate(ContentDecoratorContext, StaticPage)): Effects-of-calling:getBlog
    //#unanalyzed(void decorate(ContentDecoratorContext, StaticPage)): Effects-of-calling:getUrl
    //#unanalyzed(void decorate(ContentDecoratorContext, StaticPage)): Effects-of-calling:java.lang.String:valueOf
    //#unanalyzed(void decorate(ContentDecoratorContext, StaticPage)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void decorate(ContentDecoratorContext, StaticPage)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void decorate(ContentDecoratorContext, StaticPage)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void decorate(ContentDecoratorContext, StaticPage)): Effects-of-calling:java.lang.StringBuffer
    //#unanalyzed(void decorate(ContentDecoratorContext, StaticPage)): Effects-of-calling:getAllTags
    //#unanalyzed(void decorate(ContentDecoratorContext, StaticPage)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void decorate(ContentDecoratorContext, StaticPage)): Effects-of-calling:getBaseUrl
    //#unanalyzed(void decorate(ContentDecoratorContext, StaticPage)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void decorate(ContentDecoratorContext, StaticPage)): Effects-of-calling:java.lang.StringBuffer:append
    //#unanalyzed(void decorate(ContentDecoratorContext, StaticPage)): Effects-of-calling:net.sourceforge.pebble.util.I18n:getMessage
    //#unanalyzed(void decorate(ContentDecoratorContext, StaticPage)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void decorate(ContentDecoratorContext, StaticPage)): Effects-of-calling:getName
    //#unanalyzed(void decorate(ContentDecoratorContext, StaticPage)): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(void decorate(ContentDecoratorContext, StaticPage)): Effects-of-calling:java.lang.StringBuffer:toString
    //#unanalyzed(void decorate(ContentDecoratorContext, StaticPage)): Effects-of-calling:java.lang.String:indexOf
    //#unanalyzed(void decorate(ContentDecoratorContext, StaticPage)): Effects-of-calling:net.sourceforge.pebble.PebbleContext:getInstance
    //#unanalyzed(void decorate(ContentDecoratorContext, StaticPage)): Effects-of-calling:net.sourceforge.pebble.PebbleContext:getConfiguration
    //#unanalyzed(void decorate(ContentDecoratorContext, StaticPage)): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void decorate(ContentDecoratorContext, StaticPage)): Effects-of-calling:java.lang.String:substring
    //#unanalyzed(void decorate(ContentDecoratorContext, StaticPage)): Effects-of-calling:getTagsAsList
    //#unanalyzed(void decorate(ContentDecoratorContext, StaticPage)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void decorate(ContentDecoratorContext, StaticPage)): Effects-of-calling:java.util.Collections:sort
    //#unanalyzed(void decorate(ContentDecoratorContext, StaticPage)): Effects-of-calling:java.util.HashSet
    //#unanalyzed(void decorate(ContentDecoratorContext, StaticPage)): Effects-of-calling:java.util.List:add
    //#unanalyzed(void decorate(ContentDecoratorContext, StaticPage)): Effects-of-calling:java.util.Set:iterator
    //#unanalyzed(void decorate(ContentDecoratorContext, StaticPage)): Effects-of-calling:java.util.List:contains
    //#unanalyzed(void decorate(ContentDecoratorContext, StaticPage)): Effects-of-calling:java.util.Set:size
    //#unanalyzed(void decorate(ContentDecoratorContext, StaticPage)): Effects-of-calling:java.util.List:addAll
    //#unanalyzed(void decorate(ContentDecoratorContext, StaticPage)): Effects-of-calling:java.util.Collections:reverse
    //#unanalyzed(void decorate(ContentDecoratorContext, StaticPage)): Effects-of-calling:getRootCategory
    //#unanalyzed(void decorate(ContentDecoratorContext, StaticPage)): Effects-of-calling:java.beans.PropertyChangeSupport:firePropertyChange
    //#test_vector(void decorate(ContentDecoratorContext, StaticPage)): staticPage.body: Addr_Set{null}, Inverse{null}
    //#test_vector(void decorate(ContentDecoratorContext, StaticPage)): java.lang.String:length(...)@27: {0}, {1..4_294_967_295}

    // now add the tags to the body, if not empty
    String body = staticPage.getBody();
    if (body != null && body.trim().length() > 0) {
      staticPage.setBody(body + html);
    }
  }
    //#staticpagetagsdecorator.java:30: end of method: void net.sourceforge.pebble.decorator.StaticPageTagsDecorator.decorate(ContentDecoratorContext, StaticPage)

  /**
   * Gets the base URL for tag links, complete with trailing slash.
   *
   * @param content   the owning content
   * @return  a URL as a String
   */
  public String getBaseUrl(PageBasedContent content) {
    return content.getBlog().getUrl() + "tags/";
    //#staticpagetagsdecorator.java:39: method: String net.sourceforge.pebble.decorator.StaticPageTagsDecorator.getBaseUrl(PageBasedContent)
    //#staticpagetagsdecorator.java:39: Warning: suspicious precondition
    //#    the precondition for content.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: net.sourceforge.pebble.decorator.StaticPageTagsDecorator
    //#    method: String getBaseUrl(PageBasedContent)
    //#    suspicious precondition index: [2]
    //#input(String getBaseUrl(PageBasedContent)): content
    //#input(String getBaseUrl(PageBasedContent)): content.__Tag
    //#input(String getBaseUrl(PageBasedContent)): content.blog
    //#input(String getBaseUrl(PageBasedContent)): content.blog.__Tag
    //#input(String getBaseUrl(PageBasedContent)): content.blog.id
    //#input(String getBaseUrl(PageBasedContent)): net/sourceforge/pebble/Configuration.__Descendant_Table[net/sourceforge/pebble/Configuration]
    //#input(String getBaseUrl(PageBasedContent)): net/sourceforge/pebble/Configuration.__Descendant_Table[others]
    //#input(String getBaseUrl(PageBasedContent)): net/sourceforge/pebble/Configuration.__Dispatch_Table.getUrl()Ljava/lang/String;
    //#input(String getBaseUrl(PageBasedContent)): net/sourceforge/pebble/Configuration.__Dispatch_Table.isVirtualHostingEnabled()Z
    //#input(String getBaseUrl(PageBasedContent)): net/sourceforge/pebble/domain/Blog.__Descendant_Table[net/sourceforge/pebble/domain/Blog]
    //#input(String getBaseUrl(PageBasedContent)): net/sourceforge/pebble/domain/Blog.__Descendant_Table[others]
    //#input(String getBaseUrl(PageBasedContent)): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.getId()Ljava/lang/String;
    //#input(String getBaseUrl(PageBasedContent)): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.getUrl()Ljava/lang/String;
    //#input(String getBaseUrl(PageBasedContent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#input(String getBaseUrl(PageBasedContent)): net/sourceforge/pebble/domain/BlogManager.__Descendant_Table[net/sourceforge/pebble/domain/BlogManager]
    //#input(String getBaseUrl(PageBasedContent)): net/sourceforge/pebble/domain/BlogManager.__Descendant_Table[others]
    //#input(String getBaseUrl(PageBasedContent)): net/sourceforge/pebble/domain/BlogManager.__Dispatch_Table.isMultiBlog()Z
    //#input(String getBaseUrl(PageBasedContent)): net/sourceforge/pebble/domain/BlogManager.instance
    //#input(String getBaseUrl(PageBasedContent)): net/sourceforge/pebble/domain/BlogManager.instance.__Tag
    //#input(String getBaseUrl(PageBasedContent)): net/sourceforge/pebble/domain/BlogManager.instance.multiBlog
    //#input(String getBaseUrl(PageBasedContent)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[net/sourceforge/pebble/domain/BlogEntry]
    //#input(String getBaseUrl(PageBasedContent)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[net/sourceforge/pebble/domain/PageBasedContent]
    //#input(String getBaseUrl(PageBasedContent)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[net/sourceforge/pebble/domain/StaticPage]
    //#input(String getBaseUrl(PageBasedContent)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[others]
    //#input(String getBaseUrl(PageBasedContent)): net/sourceforge/pebble/domain/PageBasedContent.__Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#input(String getBaseUrl(PageBasedContent)): net/sourceforge/pebble/domain/StaticPage.__Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#output(String getBaseUrl(PageBasedContent)): return_value
    //#pre[1] (String getBaseUrl(PageBasedContent)): content != null
    //#pre[2] (String getBaseUrl(PageBasedContent)): content.__Tag in {net/sourceforge/pebble/domain/BlogEntry, net/sourceforge/pebble/domain/PageBasedContent, net/sourceforge/pebble/domain/StaticPage}
    //#pre[3] (String getBaseUrl(PageBasedContent)): content.blog != null
    //#pre[4] (String getBaseUrl(PageBasedContent)): (soft) content.blog.__Tag == net/sourceforge/pebble/domain/Blog
    //#pre[5] (String getBaseUrl(PageBasedContent)): (soft) init'ed(content.blog.id)
    //#pre[6] (String getBaseUrl(PageBasedContent)): (soft) net/sourceforge/pebble/domain/BlogManager.instance != null
    //#pre[7] (String getBaseUrl(PageBasedContent)): (soft) net/sourceforge/pebble/domain/BlogManager.instance.__Tag == net/sourceforge/pebble/domain/BlogManager
    //#pre[8] (String getBaseUrl(PageBasedContent)): (soft) init'ed(net/sourceforge/pebble/domain/BlogManager.instance.multiBlog)
    //#post(String getBaseUrl(PageBasedContent)): return_value != null
    //#unanalyzed(String getBaseUrl(PageBasedContent)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(String getBaseUrl(PageBasedContent)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(String getBaseUrl(PageBasedContent)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(String getBaseUrl(PageBasedContent)): Effects-of-calling:java.lang.String:valueOf
    //#unanalyzed(String getBaseUrl(PageBasedContent)): Effects-of-calling:java.lang.String:indexOf
    //#unanalyzed(String getBaseUrl(PageBasedContent)): Effects-of-calling:net.sourceforge.pebble.PebbleContext:getInstance
    //#unanalyzed(String getBaseUrl(PageBasedContent)): Effects-of-calling:net.sourceforge.pebble.PebbleContext:getConfiguration
    //#unanalyzed(String getBaseUrl(PageBasedContent)): Effects-of-calling:java.lang.String:length
    //#unanalyzed(String getBaseUrl(PageBasedContent)): Effects-of-calling:java.lang.String:substring
    //#staticpagetagsdecorator.java:39: end of method: String net.sourceforge.pebble.decorator.StaticPageTagsDecorator.getBaseUrl(PageBasedContent)
  }

}
    //#output(net.sourceforge.pebble.decorator.StaticPageTagsDecorator__static_init): __Descendant_Table[net/sourceforge/pebble/decorator/StaticPageTagsDecorator]
    //#output(net.sourceforge.pebble.decorator.StaticPageTagsDecorator__static_init): __Dispatch_Table.decorate(Lnet/sourceforge/pebble/api/decorator/ContentDecoratorContext;Lnet/sourceforge/pebble/domain/BlogEntry;)V
    //#output(net.sourceforge.pebble.decorator.StaticPageTagsDecorator__static_init): __Dispatch_Table.decorate(Lnet/sourceforge/pebble/api/decorator/ContentDecoratorContext;Lnet/sourceforge/pebble/domain/Comment;)V
    //#output(net.sourceforge.pebble.decorator.StaticPageTagsDecorator__static_init): __Dispatch_Table.decorate(Lnet/sourceforge/pebble/api/decorator/ContentDecoratorContext;Lnet/sourceforge/pebble/domain/StaticPage;)V
    //#output(net.sourceforge.pebble.decorator.StaticPageTagsDecorator__static_init): __Dispatch_Table.decorate(Lnet/sourceforge/pebble/api/decorator/ContentDecoratorContext;Lnet/sourceforge/pebble/domain/TrackBack;)V
    //#output(net.sourceforge.pebble.decorator.StaticPageTagsDecorator__static_init): __Dispatch_Table.generateDecorationHtml(Lnet/sourceforge/pebble/api/decorator/ContentDecoratorContext;Lnet/sourceforge/pebble/domain/PageBasedContent;)Ljava/lang/String;
    //#output(net.sourceforge.pebble.decorator.StaticPageTagsDecorator__static_init): __Dispatch_Table.getBaseUrl(Lnet/sourceforge/pebble/domain/PageBasedContent;)Ljava/lang/String;
    //#output(net.sourceforge.pebble.decorator.StaticPageTagsDecorator__static_init): __Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#output(net.sourceforge.pebble.decorator.StaticPageTagsDecorator__static_init): __Dispatch_Table.setBlog(Lnet/sourceforge/pebble/domain/Blog;)V
    //#output(net.sourceforge.pebble.decorator.StaticPageTagsDecorator__static_init): net/sourceforge/pebble/api/decorator/ContentDecorator.__Descendant_Table[net/sourceforge/pebble/decorator/StaticPageTagsDecorator]
    //#output(net.sourceforge.pebble.decorator.StaticPageTagsDecorator__static_init): net/sourceforge/pebble/decorator/AbstractTagsDecorator.__Descendant_Table[net/sourceforge/pebble/decorator/StaticPageTagsDecorator]
    //#output(net.sourceforge.pebble.decorator.StaticPageTagsDecorator__static_init): net/sourceforge/pebble/decorator/ContentDecoratorSupport.__Descendant_Table[net/sourceforge/pebble/decorator/StaticPageTagsDecorator]
    //#post(net.sourceforge.pebble.decorator.StaticPageTagsDecorator__static_init): __Descendant_Table[net/sourceforge/pebble/decorator/StaticPageTagsDecorator] == &__Dispatch_Table
    //#post(net.sourceforge.pebble.decorator.StaticPageTagsDecorator__static_init): net/sourceforge/pebble/api/decorator/ContentDecorator.__Descendant_Table[net/sourceforge/pebble/decorator/StaticPageTagsDecorator] == &__Dispatch_Table
    //#post(net.sourceforge.pebble.decorator.StaticPageTagsDecorator__static_init): net/sourceforge/pebble/decorator/AbstractTagsDecorator.__Descendant_Table[net/sourceforge/pebble/decorator/StaticPageTagsDecorator] == &__Dispatch_Table
    //#post(net.sourceforge.pebble.decorator.StaticPageTagsDecorator__static_init): net/sourceforge/pebble/decorator/ContentDecoratorSupport.__Descendant_Table[net/sourceforge/pebble/decorator/StaticPageTagsDecorator] == &__Dispatch_Table
    //#post(net.sourceforge.pebble.decorator.StaticPageTagsDecorator__static_init): __Dispatch_Table.decorate(Lnet/sourceforge/pebble/api/decorator/ContentDecoratorContext;Lnet/sourceforge/pebble/domain/BlogEntry;)V == &net/sourceforge/pebble/decorator/ContentDecoratorSupport.decorate
    //#post(net.sourceforge.pebble.decorator.StaticPageTagsDecorator__static_init): __Dispatch_Table.decorate(Lnet/sourceforge/pebble/api/decorator/ContentDecoratorContext;Lnet/sourceforge/pebble/domain/Comment;)V == &net/sourceforge/pebble/decorator/ContentDecoratorSupport.decorate
    //#post(net.sourceforge.pebble.decorator.StaticPageTagsDecorator__static_init): __Dispatch_Table.decorate(Lnet/sourceforge/pebble/api/decorator/ContentDecoratorContext;Lnet/sourceforge/pebble/domain/StaticPage;)V == &decorate
    //#post(net.sourceforge.pebble.decorator.StaticPageTagsDecorator__static_init): __Dispatch_Table.decorate(Lnet/sourceforge/pebble/api/decorator/ContentDecoratorContext;Lnet/sourceforge/pebble/domain/TrackBack;)V == &net/sourceforge/pebble/decorator/ContentDecoratorSupport.decorate
    //#post(net.sourceforge.pebble.decorator.StaticPageTagsDecorator__static_init): __Dispatch_Table.generateDecorationHtml(Lnet/sourceforge/pebble/api/decorator/ContentDecoratorContext;Lnet/sourceforge/pebble/domain/PageBasedContent;)Ljava/lang/String; == &net/sourceforge/pebble/decorator/AbstractTagsDecorator.generateDecorationHtml
    //#post(net.sourceforge.pebble.decorator.StaticPageTagsDecorator__static_init): __Dispatch_Table.getBaseUrl(Lnet/sourceforge/pebble/domain/PageBasedContent;)Ljava/lang/String; == &getBaseUrl
    //#post(net.sourceforge.pebble.decorator.StaticPageTagsDecorator__static_init): __Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog; == &net/sourceforge/pebble/decorator/ContentDecoratorSupport.getBlog
    //#post(net.sourceforge.pebble.decorator.StaticPageTagsDecorator__static_init): __Dispatch_Table.setBlog(Lnet/sourceforge/pebble/domain/Blog;)V == &net/sourceforge/pebble/decorator/ContentDecoratorSupport.setBlog
    //#staticpagetagsdecorator.java:: end of method: net.sourceforge.pebble.decorator.StaticPageTagsDecorator.net.sourceforge.pebble.decorator.StaticPageTagsDecorator__static_init
    //#staticpagetagsdecorator.java:: end of class: net.sourceforge.pebble.decorator.StaticPageTagsDecorator
