staticpagetagsdecorator.java

### File Source: staticpagetagsdecorator.java

             /*
        P/P   *  Method: net.sourceforge.pebble.decorator.StaticPageTagsDecorator__static_init
              */
         1  package net.sourceforge.pebble.decorator;
         2
         3  import net.sourceforge.pebble.domain.PageBasedContent;
         4  import net.sourceforge.pebble.domain.StaticPage;
         5  import net.sourceforge.pebble.api.decorator.ContentDecoratorContext;
         6
         7  /**
         8   * Generates tag links for inclusion in the body of static pages,
         9   * when rendered as HTML and newsfeeds.
        10   *
        11   * @author Simon Brown
        12   */
             /*
        P/P   *  Method: void net.sourceforge.pebble.decorator.StaticPageTagsDecorator()
              *
              *  Postconditions:
              *    this.resourceKey == &"tag.tags"
              *    this.target == &""
              */
        13  public class StaticPageTagsDecorator extends AbstractTagsDecorator {
        14
        15    /**
        16     * Decorates the specified static page.
        17     *
        18     * @param context    the context in which the decoration is running
        19     * @param staticPage the static page to be decorated
        20     */
        21    @Override
        22    public void decorate(ContentDecoratorContext context, StaticPage staticPage) {
                 /*
        P/P       *  Method: void decorate(ContentDecoratorContext, StaticPage)
                  *
                  *  Preconditions:
                  *    context != null
                  *
                  *  Test Vectors:
                  *    java.lang.String:length(...)@27: {0}, {1..232-1}
                  *
                  *  Preconditions:
                  *    init'ed(context.media)
                  *    init'ed(staticPage.body)
                  *    (soft) staticPage != null
                  *    (soft) init'ed(staticPage.blog)
                  *    (soft) staticPage.propertyChangeSupport != null
                  *    (soft) init'ed(staticPage.tagsAsList)
                  *
                  *  Postconditions:
                  *    init'ed(staticPage.body)
                  *
                  *  Test Vectors:
                  *    staticPage.body: Addr_Set{null}, Inverse{null}
                  */
        23      String html = generateDecorationHtml(context, staticPage);
        24
        25      // now add the tags to the body, if not empty
        26      String body = staticPage.getBody();
        27      if (body != null && body.trim().length() > 0) {
        28        staticPage.setBody(body + html);
        29      }
        30    }
        31
        32    /**
        33     * Gets the base URL for tag links, complete with trailing slash.
        34     *
        35     * @param content   the owning content
        36     * @return  a URL as a String
        37     */
        38    public String getBaseUrl(PageBasedContent content) {
                 /*
        P/P       *  Method: String getBaseUrl(PageBasedContent)
                  *
                  *  Preconditions:
                  *    content != null
                  *
                  *  Postconditions:
                  *    return_value != null
                  *
                  *  Preconditions:
                  *    content.blog != null
                  *    (soft) init'ed(content.blog.id)
                  *    (soft) net/sourceforge/pebble/domain/BlogManager.instance != null
                  *    (soft) init'ed(net/sourceforge/pebble/domain/BlogManager.instance.multiBlog)
                  */
        39      return content.getBlog().getUrl() + "tags/";
        40    }
        41
        42  }

SofCheck Inspector Build Version : 2.22510

staticpagetagsdecorator.java | 2010-Jun-25 19:40:32
staticpagetagsdecorator.class | 2010-Jul-19 20:23:40