//# 0 errors, 118 messages
//#
package net.sourceforge.pebble.decorator;
    //#htmldecorator.java:1:1: class: net.sourceforge.pebble.decorator.HtmlDecorator
    //#htmldecorator.java:1:1: method: net.sourceforge.pebble.decorator.HtmlDecorator.net.sourceforge.pebble.decorator.HtmlDecorator__static_init

import net.sourceforge.pebble.api.decorator.ContentDecoratorContext;
import net.sourceforge.pebble.domain.Comment;
import net.sourceforge.pebble.domain.TrackBack;
import net.sourceforge.pebble.util.StringUtils;

/**
 * Decorates blog entries and comments by rendering them as HTML.
 * 
 * @author Simon Brown
 */
public class HtmlDecorator extends ContentDecoratorSupport {
    //#htmldecorator.java:13: method: void net.sourceforge.pebble.decorator.HtmlDecorator.net.sourceforge.pebble.decorator.HtmlDecorator()
    //#input(void net.sourceforge.pebble.decorator.HtmlDecorator()): this
    //#htmldecorator.java:13: end of method: void net.sourceforge.pebble.decorator.HtmlDecorator.net.sourceforge.pebble.decorator.HtmlDecorator()

  /**
   * Decorates the specified comment.
   *
   * @param context the context in which the decoration is running
   * @param comment the comment to be decorated
   */
  public void decorate(ContentDecoratorContext context, Comment comment) {
    comment.setAuthor(StringUtils.filterHTML(comment.getAuthor()));
    //#htmldecorator.java:22: method: void net.sourceforge.pebble.decorator.HtmlDecorator.decorate(ContentDecoratorContext, Comment)
    //#htmldecorator.java:22: Warning: method not available
    //#    -- call on String net.sourceforge.pebble.util.StringUtils:filterHTML(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.decorator.HtmlDecorator
    //#    method: void decorate(ContentDecoratorContext, Comment)
    //#    unanalyzed callee: String net.sourceforge.pebble.util.StringUtils:filterHTML(String)
    //#input(void decorate(ContentDecoratorContext, Comment)): comment
    //#input(void decorate(ContentDecoratorContext, Comment)): comment.__Tag
    //#input(void decorate(ContentDecoratorContext, Comment)): comment.author
    //#input(void decorate(ContentDecoratorContext, Comment)): comment.blogEntry
    //#input(void decorate(ContentDecoratorContext, Comment)): comment.body
    //#input(void decorate(ContentDecoratorContext, Comment)): comment.email
    //#input(void decorate(ContentDecoratorContext, Comment)): comment.title
    //#input(void decorate(ContentDecoratorContext, Comment)): comment.website
    //#input(void decorate(ContentDecoratorContext, Comment)): net/sourceforge/pebble/domain/Comment.__Descendant_Table[net/sourceforge/pebble/domain/Comment]
    //#input(void decorate(ContentDecoratorContext, Comment)): net/sourceforge/pebble/domain/Comment.__Descendant_Table[others]
    //#input(void decorate(ContentDecoratorContext, Comment)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getAuthor()Ljava/lang/String;
    //#input(void decorate(ContentDecoratorContext, Comment)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getBody()Ljava/lang/String;
    //#input(void decorate(ContentDecoratorContext, Comment)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getEmail()Ljava/lang/String;
    //#input(void decorate(ContentDecoratorContext, Comment)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getTitle()Ljava/lang/String;
    //#input(void decorate(ContentDecoratorContext, Comment)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getWebsite()Ljava/lang/String;
    //#input(void decorate(ContentDecoratorContext, Comment)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.setAuthor(Ljava/lang/String;)V
    //#input(void decorate(ContentDecoratorContext, Comment)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.setBody(Ljava/lang/String;)V
    //#input(void decorate(ContentDecoratorContext, Comment)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.setEmail(Ljava/lang/String;)V
    //#input(void decorate(ContentDecoratorContext, Comment)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.setTitle(Ljava/lang/String;)V
    //#input(void decorate(ContentDecoratorContext, Comment)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.setWebsite(Ljava/lang/String;)V
    //#output(void decorate(ContentDecoratorContext, Comment)): comment.author
    //#output(void decorate(ContentDecoratorContext, Comment)): comment.body
    //#output(void decorate(ContentDecoratorContext, Comment)): comment.email
    //#output(void decorate(ContentDecoratorContext, Comment)): comment.title
    //#output(void decorate(ContentDecoratorContext, Comment)): comment.website
    //#pre[1] (void decorate(ContentDecoratorContext, Comment)): comment != null
    //#pre[2] (void decorate(ContentDecoratorContext, Comment)): comment.__Tag == net/sourceforge/pebble/domain/Comment
    //#pre[4] (void decorate(ContentDecoratorContext, Comment)): init'ed(comment.author)
    //#pre[5] (void decorate(ContentDecoratorContext, Comment)): init'ed(comment.body)
    //#pre[6] (void decorate(ContentDecoratorContext, Comment)): init'ed(comment.email)
    //#pre[7] (void decorate(ContentDecoratorContext, Comment)): init'ed(comment.title)
    //#pre[8] (void decorate(ContentDecoratorContext, Comment)): init'ed(comment.website)
    //#pre[3] (void decorate(ContentDecoratorContext, Comment)): (soft) init'ed(comment.blogEntry)
    //#post(void decorate(ContentDecoratorContext, Comment)): comment.author != null
    //#post(void decorate(ContentDecoratorContext, Comment)): init'ed(comment.body)
    //#post(void decorate(ContentDecoratorContext, Comment)): init'ed(comment.email)
    //#post(void decorate(ContentDecoratorContext, Comment)): comment.title != null
    //#post(void decorate(ContentDecoratorContext, Comment)): init'ed(comment.website)
    //#unanalyzed(void decorate(ContentDecoratorContext, Comment)): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void decorate(ContentDecoratorContext, Comment)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void decorate(ContentDecoratorContext, Comment)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void decorate(ContentDecoratorContext, Comment)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void decorate(ContentDecoratorContext, Comment)): Effects-of-calling:net.sourceforge.pebble.util.StringUtils:filterHTML
    //#unanalyzed(void decorate(ContentDecoratorContext, Comment)): Effects-of-calling:java.lang.String:startsWith
    //#unanalyzed(void decorate(ContentDecoratorContext, Comment)): Effects-of-calling:net.sourceforge.pebble.util.StringUtils:transformHTML
    //#unanalyzed(void decorate(ContentDecoratorContext, Comment)): Effects-of-calling:net.sourceforge.pebble.domain.BlogEntry:getTitle
    comment.setWebsite(StringUtils.filterHTML(comment.getWebsite()));
    //#htmldecorator.java:23: Warning: method not available
    //#    -- call on String net.sourceforge.pebble.util.StringUtils:filterHTML(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.decorator.HtmlDecorator
    //#    method: void decorate(ContentDecoratorContext, Comment)
    //#    unanalyzed callee: String net.sourceforge.pebble.util.StringUtils:filterHTML(String)
    comment.setEmail(StringUtils.filterHTML(comment.getEmail()));
    //#htmldecorator.java:24: Warning: method not available
    //#    -- call on String net.sourceforge.pebble.util.StringUtils:filterHTML(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.decorator.HtmlDecorator
    //#    method: void decorate(ContentDecoratorContext, Comment)
    //#    unanalyzed callee: String net.sourceforge.pebble.util.StringUtils:filterHTML(String)
    comment.setTitle(StringUtils.filterHTML(comment.getTitle()));
    //#htmldecorator.java:25: Warning: method not available
    //#    -- call on String net.sourceforge.pebble.util.StringUtils:filterHTML(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.decorator.HtmlDecorator
    //#    method: void decorate(ContentDecoratorContext, Comment)
    //#    unanalyzed callee: String net.sourceforge.pebble.util.StringUtils:filterHTML(String)
    comment.setBody(StringUtils.transformToHTMLSubset(StringUtils.transformHTML(comment.getBody())));
    //#htmldecorator.java:26: Warning: method not available
    //#    -- call on String net.sourceforge.pebble.util.StringUtils:transformHTML(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.decorator.HtmlDecorator
    //#    method: void decorate(ContentDecoratorContext, Comment)
    //#    unanalyzed callee: String net.sourceforge.pebble.util.StringUtils:transformHTML(String)
    //#htmldecorator.java:26: Warning: method not available
    //#    -- call on String net.sourceforge.pebble.util.StringUtils:transformToHTMLSubset(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.decorator.HtmlDecorator
    //#    method: void decorate(ContentDecoratorContext, Comment)
    //#    unanalyzed callee: String net.sourceforge.pebble.util.StringUtils:transformToHTMLSubset(String)
  }
    //#htmldecorator.java:27: end of method: void net.sourceforge.pebble.decorator.HtmlDecorator.decorate(ContentDecoratorContext, Comment)

  /**
   * Decorates the specified TrackBack.
   *
   * @param context   the context in which the decoration is running
   * @param trackBack the TrackBack to be decorated
   */
  public void decorate(ContentDecoratorContext context, TrackBack trackBack) {
    trackBack.setBlogName(StringUtils.filterHTML(trackBack.getBlogName()));
    //#htmldecorator.java:36: method: void net.sourceforge.pebble.decorator.HtmlDecorator.decorate(ContentDecoratorContext, TrackBack)
    //#htmldecorator.java:36: Warning: method not available
    //#    -- call on String net.sourceforge.pebble.util.StringUtils:filterHTML(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.decorator.HtmlDecorator
    //#    method: void decorate(ContentDecoratorContext, TrackBack)
    //#    unanalyzed callee: String net.sourceforge.pebble.util.StringUtils:filterHTML(String)
    //#input(void decorate(ContentDecoratorContext, TrackBack)): net/sourceforge/pebble/domain/TrackBack.__Descendant_Table[net/sourceforge/pebble/domain/TrackBack]
    //#input(void decorate(ContentDecoratorContext, TrackBack)): net/sourceforge/pebble/domain/TrackBack.__Descendant_Table[others]
    //#input(void decorate(ContentDecoratorContext, TrackBack)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getBlogName()Ljava/lang/String;
    //#input(void decorate(ContentDecoratorContext, TrackBack)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getExcerpt()Ljava/lang/String;
    //#input(void decorate(ContentDecoratorContext, TrackBack)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getTitle()Ljava/lang/String;
    //#input(void decorate(ContentDecoratorContext, TrackBack)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getUrl()Ljava/lang/String;
    //#input(void decorate(ContentDecoratorContext, TrackBack)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.setBlogName(Ljava/lang/String;)V
    //#input(void decorate(ContentDecoratorContext, TrackBack)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.setExcerpt(Ljava/lang/String;)V
    //#input(void decorate(ContentDecoratorContext, TrackBack)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.setTitle(Ljava/lang/String;)V
    //#input(void decorate(ContentDecoratorContext, TrackBack)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.setUrl(Ljava/lang/String;)V
    //#input(void decorate(ContentDecoratorContext, TrackBack)): trackBack
    //#input(void decorate(ContentDecoratorContext, TrackBack)): trackBack.__Tag
    //#input(void decorate(ContentDecoratorContext, TrackBack)): trackBack.blogName
    //#input(void decorate(ContentDecoratorContext, TrackBack)): trackBack.excerpt
    //#input(void decorate(ContentDecoratorContext, TrackBack)): trackBack.title
    //#input(void decorate(ContentDecoratorContext, TrackBack)): trackBack.url
    //#output(void decorate(ContentDecoratorContext, TrackBack)): trackBack.blogName
    //#output(void decorate(ContentDecoratorContext, TrackBack)): trackBack.excerpt
    //#output(void decorate(ContentDecoratorContext, TrackBack)): trackBack.title
    //#output(void decorate(ContentDecoratorContext, TrackBack)): trackBack.url
    //#pre[1] (void decorate(ContentDecoratorContext, TrackBack)): init'ed(trackBack.blogName)
    //#pre[2] (void decorate(ContentDecoratorContext, TrackBack)): init'ed(trackBack.excerpt)
    //#pre[3] (void decorate(ContentDecoratorContext, TrackBack)): init'ed(trackBack.title)
    //#pre[4] (void decorate(ContentDecoratorContext, TrackBack)): init'ed(trackBack.url)
    //#pre[5] (void decorate(ContentDecoratorContext, TrackBack)): trackBack != null
    //#pre[6] (void decorate(ContentDecoratorContext, TrackBack)): trackBack.__Tag == net/sourceforge/pebble/domain/TrackBack
    //#post(void decorate(ContentDecoratorContext, TrackBack)): trackBack.blogName != null
    //#post(void decorate(ContentDecoratorContext, TrackBack)): trackBack.excerpt != null
    //#post(void decorate(ContentDecoratorContext, TrackBack)): init'ed(trackBack.title)
    //#post(void decorate(ContentDecoratorContext, TrackBack)): init'ed(trackBack.url)
    //#unanalyzed(void decorate(ContentDecoratorContext, TrackBack)): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void decorate(ContentDecoratorContext, TrackBack)): Effects-of-calling:net.sourceforge.pebble.util.StringUtils:transformHTML
    trackBack.setUrl(StringUtils.filterHTML(trackBack.getUrl()));
    //#htmldecorator.java:37: Warning: method not available
    //#    -- call on String net.sourceforge.pebble.util.StringUtils:filterHTML(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.decorator.HtmlDecorator
    //#    method: void decorate(ContentDecoratorContext, TrackBack)
    //#    unanalyzed callee: String net.sourceforge.pebble.util.StringUtils:filterHTML(String)
    trackBack.setTitle(StringUtils.filterHTML(trackBack.getTitle()));
    //#htmldecorator.java:38: Warning: method not available
    //#    -- call on String net.sourceforge.pebble.util.StringUtils:filterHTML(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.decorator.HtmlDecorator
    //#    method: void decorate(ContentDecoratorContext, TrackBack)
    //#    unanalyzed callee: String net.sourceforge.pebble.util.StringUtils:filterHTML(String)
    trackBack.setExcerpt(StringUtils.transformToHTMLSubset(StringUtils.transformHTML(trackBack.getExcerpt())));
    //#htmldecorator.java:39: Warning: method not available
    //#    -- call on String net.sourceforge.pebble.util.StringUtils:transformHTML(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.decorator.HtmlDecorator
    //#    method: void decorate(ContentDecoratorContext, TrackBack)
    //#    unanalyzed callee: String net.sourceforge.pebble.util.StringUtils:transformHTML(String)
    //#htmldecorator.java:39: Warning: method not available
    //#    -- call on String net.sourceforge.pebble.util.StringUtils:transformToHTMLSubset(String)
    //#    severity: INFORMATIONAL
    //#    class: net.sourceforge.pebble.decorator.HtmlDecorator
    //#    method: void decorate(ContentDecoratorContext, TrackBack)
    //#    unanalyzed callee: String net.sourceforge.pebble.util.StringUtils:transformToHTMLSubset(String)
  }
    //#htmldecorator.java:40: end of method: void net.sourceforge.pebble.decorator.HtmlDecorator.decorate(ContentDecoratorContext, TrackBack)
}
    //#output(net.sourceforge.pebble.decorator.HtmlDecorator__static_init): __Descendant_Table[net/sourceforge/pebble/decorator/HtmlDecorator]
    //#output(net.sourceforge.pebble.decorator.HtmlDecorator__static_init): __Dispatch_Table.decorate(Lnet/sourceforge/pebble/api/decorator/ContentDecoratorContext;Lnet/sourceforge/pebble/domain/BlogEntry;)V
    //#output(net.sourceforge.pebble.decorator.HtmlDecorator__static_init): __Dispatch_Table.decorate(Lnet/sourceforge/pebble/api/decorator/ContentDecoratorContext;Lnet/sourceforge/pebble/domain/Comment;)V
    //#output(net.sourceforge.pebble.decorator.HtmlDecorator__static_init): __Dispatch_Table.decorate(Lnet/sourceforge/pebble/api/decorator/ContentDecoratorContext;Lnet/sourceforge/pebble/domain/StaticPage;)V
    //#output(net.sourceforge.pebble.decorator.HtmlDecorator__static_init): __Dispatch_Table.decorate(Lnet/sourceforge/pebble/api/decorator/ContentDecoratorContext;Lnet/sourceforge/pebble/domain/TrackBack;)V
    //#output(net.sourceforge.pebble.decorator.HtmlDecorator__static_init): __Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#output(net.sourceforge.pebble.decorator.HtmlDecorator__static_init): __Dispatch_Table.setBlog(Lnet/sourceforge/pebble/domain/Blog;)V
    //#output(net.sourceforge.pebble.decorator.HtmlDecorator__static_init): net/sourceforge/pebble/api/decorator/ContentDecorator.__Descendant_Table[net/sourceforge/pebble/decorator/HtmlDecorator]
    //#output(net.sourceforge.pebble.decorator.HtmlDecorator__static_init): net/sourceforge/pebble/decorator/ContentDecoratorSupport.__Descendant_Table[net/sourceforge/pebble/decorator/HtmlDecorator]
    //#post(net.sourceforge.pebble.decorator.HtmlDecorator__static_init): __Descendant_Table[net/sourceforge/pebble/decorator/HtmlDecorator] == &__Dispatch_Table
    //#post(net.sourceforge.pebble.decorator.HtmlDecorator__static_init): net/sourceforge/pebble/api/decorator/ContentDecorator.__Descendant_Table[net/sourceforge/pebble/decorator/HtmlDecorator] == &__Dispatch_Table
    //#post(net.sourceforge.pebble.decorator.HtmlDecorator__static_init): net/sourceforge/pebble/decorator/ContentDecoratorSupport.__Descendant_Table[net/sourceforge/pebble/decorator/HtmlDecorator] == &__Dispatch_Table
    //#post(net.sourceforge.pebble.decorator.HtmlDecorator__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.HtmlDecorator__static_init): __Dispatch_Table.decorate(Lnet/sourceforge/pebble/api/decorator/ContentDecoratorContext;Lnet/sourceforge/pebble/domain/Comment;)V == &decorate
    //#post(net.sourceforge.pebble.decorator.HtmlDecorator__static_init): __Dispatch_Table.decorate(Lnet/sourceforge/pebble/api/decorator/ContentDecoratorContext;Lnet/sourceforge/pebble/domain/StaticPage;)V == &net/sourceforge/pebble/decorator/ContentDecoratorSupport.decorate
    //#post(net.sourceforge.pebble.decorator.HtmlDecorator__static_init): __Dispatch_Table.decorate(Lnet/sourceforge/pebble/api/decorator/ContentDecoratorContext;Lnet/sourceforge/pebble/domain/TrackBack;)V == &decorate
    //#post(net.sourceforge.pebble.decorator.HtmlDecorator__static_init): __Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog; == &net/sourceforge/pebble/decorator/ContentDecoratorSupport.getBlog
    //#post(net.sourceforge.pebble.decorator.HtmlDecorator__static_init): __Dispatch_Table.setBlog(Lnet/sourceforge/pebble/domain/Blog;)V == &net/sourceforge/pebble/decorator/ContentDecoratorSupport.setBlog
    //#htmldecorator.java:: end of method: net.sourceforge.pebble.decorator.HtmlDecorator.net.sourceforge.pebble.decorator.HtmlDecorator__static_init
    //#htmldecorator.java:: end of class: net.sourceforge.pebble.decorator.HtmlDecorator
