File Source: technoratitagsdecorator.java

         /* 
    P/P   *  Method: net.sourceforge.pebble.decorator.TechnoratiTagsDecorator__static_init
          */
     1  package net.sourceforge.pebble.decorator;
     2  
     3  import net.sourceforge.pebble.domain.PageBasedContent;
     4  import net.sourceforge.pebble.domain.BlogEntry;
     5  import net.sourceforge.pebble.api.decorator.ContentDecoratorContext;
     6  
     7  
     8  /**
     9   * Generates Technorati tag links for inclusion in the body of blog entries,
    10   * when rendered as HTML and newsfeeds.
    11   * 
    12   * @author Simon Brown
    13   */
    14  public class TechnoratiTagsDecorator extends AbstractTagsDecorator {
    15    public TechnoratiTagsDecorator() {
        	 /* 
    P/P 	  *  Method: void net.sourceforge.pebble.decorator.TechnoratiTagsDecorator()
        	  * 
        	  *  Postconditions:
        	  *    this.resourceKey == &"tag.technoratiTags"
        	  *    this.target == &" target="_blank""
        	  */
    16  	super("tag.technoratiTags", true);
    17    }
    18  	
    19    /**
    20     * Decorates the specified blog entry.
    21     *
    22     * @param context   the context in which the decoration is running
    23     * @param blogEntry the blog entry to be decorated
    24     *          if something goes wrong when running the decorator
    25     */
    26    @Override
    27    public void decorate(ContentDecoratorContext context, BlogEntry blogEntry) {
             /* 
    P/P       *  Method: void decorate(ContentDecoratorContext, BlogEntry)
              * 
              *  Preconditions:
              *    blogEntry != null
              *    context != null
              * 
              *  Test Vectors:
              *    java.lang.String:length(...)@32: {0}, {1..232-1}
              *    java.lang.String:length(...)@37: {0}, {1..232-1}
              * 
              *  Preconditions:
              *    init'ed(context.media)
              *    init'ed(blogEntry.body)
              *    init'ed(blogEntry.excerpt)
              *    (soft) init'ed(blogEntry.blog)
              *    (soft) blogEntry.propertyChangeSupport != null
              *    (soft) init'ed(blogEntry.tagsAsList)
              * 
              *  Postconditions:
              *    init'ed(blogEntry.body)
              *    init'ed(blogEntry.excerpt)
              * 
              *  Test Vectors:
              *    blogEntry.body: Addr_Set{null}, Inverse{null}
              *    blogEntry.excerpt: Addr_Set{null}, Inverse{null}
              */
    28      String html = generateDecorationHtml(context, blogEntry);
    29  
    30      // now add the tags to the body and excerpt, if they aren't empty
    31      String body = blogEntry.getBody();
    32      if (body != null && body.trim().length() > 0) {
    33        blogEntry.setBody(body + html);
    34      }
    35  
    36      String excerpt = blogEntry.getExcerpt();
    37      if (excerpt != null && excerpt.trim().length() > 0) {
    38        blogEntry.setExcerpt(excerpt + html);
    39      }
    40    }
    41  
    42    /**
    43     * Gets the base URL for tag links, complete with trailing slash.
    44     *
    45     * @param content   the owning content
    46     * @return  a URL as a String
    47     */
    48    public String getBaseUrl(PageBasedContent content) {
             /* 
    P/P       *  Method: String getBaseUrl(PageBasedContent)
              * 
              *  Postconditions:
              *    return_value == &"http:..technorati.com.tag."
              */
    49      return "http://technorati.com/tag/";
    50    }
    51  
    52  }








SofCheck Inspector Build Version : 2.22510
technoratitagsdecorator.java 2010-Jun-25 19:40:32
technoratitagsdecorator.class 2010-Jul-19 20:23:40