File Source: readmoredecorator.java

         /* 
    P/P   *  Method: net.sourceforge.pebble.decorator.ReadMoreDecorator__static_init
          */
     1  package net.sourceforge.pebble.decorator;
     2  
     3  import net.sourceforge.pebble.api.decorator.ContentDecoratorContext;
     4  import net.sourceforge.pebble.domain.Blog;
     5  import net.sourceforge.pebble.domain.BlogEntry;
     6  import net.sourceforge.pebble.util.I18n;
     7  
     8  /**
     9   * Adds a read more link :
    10   *  - when the entry is aggregated
    11   *  - when an excerpt is present, in the summary view
    12   *
    13   * @author Simon Brown
    14   */
         /* 
    P/P   *  Method: void net.sourceforge.pebble.decorator.ReadMoreDecorator()
          */
    15  public class ReadMoreDecorator extends ContentDecoratorSupport {
    16  
    17  
    18    /**
    19     * Decorates the specified blog entry.
    20     *
    21     * @param context   the context in which the decoration is running
    22     * @param blogEntry the blog entry to be decorated
    23     */
    24    public void decorate(ContentDecoratorContext context, BlogEntry blogEntry) {
             /* 
    P/P       *  Method: void decorate(ContentDecoratorContext, BlogEntry)
              * 
              *  Preconditions:
              *    blogEntry != null
              *    (soft) context != null
              * 
              *  Test Vectors:
              *    java.lang.String:length(...)@27: {0}, {1..232-1}
              * 
              *  Preconditions:
              *    init'ed(blogEntry.originalPermalink)
              *    init'ed(blogEntry.excerpt)
              *    (soft) blogEntry.blog != null
              *    (soft) blogEntry.propertyChangeSupport != null
              *    (soft) init'ed(blogEntry.blog.id)
              *    (soft) init'ed(context.view)
              *    (soft) init'ed(blogEntry.body)
              * 
              *  Postconditions:
              *    (soft) init'ed(blogEntry.body)
              *    init'ed(blogEntry.excerpt)
              *    possibly_updated(blogEntry.permalink)
              * 
              *  Preconditions:
              *    (soft) net/sourceforge/pebble/domain/BlogManager.instance != null
              *    (soft) init'ed(net/sourceforge/pebble/domain/BlogManager.instance.multiBlog)
              * 
              *  Test Vectors:
              *    blogEntry.originalPermalink: Addr_Set{null}, Inverse{null}
              *    context.view: {-231..-1, 1..232-1}, {0}
              *    blogEntry.excerpt: Addr_Set{null}, Inverse{null}
              */
    25      Blog blog = blogEntry.getBlog();
    26  
    27      if ((blogEntry.getExcerpt() != null && blogEntry.getExcerpt().length() > 0 && context.getView() == ContentDecoratorContext.SUMMARY_VIEW)) {
    28        StringBuffer buf = new StringBuffer();
    29        buf.append(blogEntry.getExcerpt());
    30  
    31        buf.append("<p><a href=\"");
    32        buf.append(blogEntry.getPermalink());
    33        buf.append("\">");
    34        buf.append(I18n.getMessage(blog, "common.readMore"));
    35        buf.append("</a></p>");
    36  
    37        blogEntry.setExcerpt(buf.toString());
    38      } else if (blogEntry.isAggregated()) {
    39        StringBuffer buf = new StringBuffer();
    40        buf.append(blogEntry.getBody());
    41  
    42        buf.append("<p><a href=\"");
    43        buf.append(blogEntry.getPermalink());
    44        buf.append("\">");
    45        buf.append(I18n.getMessage(blog, "common.readMore"));
    46        buf.append("</a></p>");
    47  
    48        blogEntry.setBody(buf.toString());
    49      }
    50    }
    51  
    52  }








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