//# 0 errors, 532 messages
//#
/*
    //#auditlistener.java:1:1: class: net.sourceforge.pebble.event.AuditListener
    //#auditlistener.java:1:1: method: net.sourceforge.pebble.event.AuditListener.net.sourceforge.pebble.event.AuditListener__static_init
 * Copyright (c) 2003-2006, Simon Brown
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 *   - Redistributions of source code must retain the above copyright
 *     notice, this list of conditions and the following disclaimer.
 *
 *   - Redistributions in binary form must reproduce the above copyright
 *     notice, this list of conditions and the following disclaimer in
 *     the documentation and/or other materials provided with the
 *     distribution.
 *
 *   - Neither the name of Pebble nor the names of its contributors may
 *     be used to endorse or promote products derived from this software
 *     without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */
package net.sourceforge.pebble.event;

import net.sourceforge.pebble.api.event.blogentry.BlogEntryListener;
import net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent;
import net.sourceforge.pebble.api.event.comment.CommentListener;
import net.sourceforge.pebble.api.event.comment.CommentEvent;
import net.sourceforge.pebble.api.event.trackback.TrackBackListener;
import net.sourceforge.pebble.api.event.trackback.TrackBackEvent;
import net.sourceforge.pebble.audit.AuditTrail;
import net.sourceforge.pebble.domain.BlogEntry;
import net.sourceforge.pebble.domain.Comment;
import net.sourceforge.pebble.domain.TrackBack;

/**
 * @author Simon Brown
 */
public class AuditListener implements BlogEntryListener, CommentListener, TrackBackListener {
    //#auditlistener.java:48: method: void net.sourceforge.pebble.event.AuditListener.net.sourceforge.pebble.event.AuditListener()
    //#auditlistener.java:48: end of method: void net.sourceforge.pebble.event.AuditListener.net.sourceforge.pebble.event.AuditListener()

  /**
   * Called when a blog entry has been added.
   *
   * @param event a BlogEntryEvent instance
   */
  public void blogEntryAdded(BlogEntryEvent event) {
    BlogEntry blogEntry = event.getBlogEntry();
    //#auditlistener.java:56: method: void net.sourceforge.pebble.event.AuditListener.blogEntryAdded(BlogEntryEvent)
    //#input(void blogEntryAdded(BlogEntryEvent)): event
    //#input(void blogEntryAdded(BlogEntryEvent)): event.__Tag
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent.__Descendant_Table[net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent]
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent.__Descendant_Table[others]
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent.__Dispatch_Table.getBlogEntry()Lnet/sourceforge/pebble/domain/BlogEntry;
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/audit/AuditTrail.log
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/Blog.__Descendant_Table[net/sourceforge/pebble/domain/Blog]
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/Blog.__Descendant_Table[others]
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.getId()Ljava/lang/String;
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[net/sourceforge/pebble/domain/BlogEntry]
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[others]
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getGuid()Ljava/lang/String;
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getId()Ljava/lang/String;
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getTitle()Ljava/lang/String;
    //#pre[1] (void blogEntryAdded(BlogEntryEvent)): event != null
    //#pre[2] (void blogEntryAdded(BlogEntryEvent)): event.__Tag == net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent
    //#pre[3] (void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/audit/AuditTrail.log != null
    //#presumption(void blogEntryAdded(BlogEntryEvent)): blogEntry.blog.__Tag@56 == net/sourceforge/pebble/domain/Blog
    //#presumption(void blogEntryAdded(BlogEntryEvent)): blogEntry.blog@56 != null
    //#presumption(void blogEntryAdded(BlogEntryEvent)): net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent:getSource(...)@91 != null
    //#presumption(void blogEntryAdded(BlogEntryEvent)): net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent:getSource(...)@91.__Tag == net/sourceforge/pebble/domain/BlogEntry
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:net.sourceforge.pebble.util.SecurityUtils:getUsername
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.lang.String:valueOf
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:org.apache.commons.logging.Log:info
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent:getSource
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:getId
    AuditTrail.log("Blog entry \"" + blogEntry.getTitle() + "\" (" + blogEntry.getGuid() + ") added");
  }
    //#auditlistener.java:58: end of method: void net.sourceforge.pebble.event.AuditListener.blogEntryAdded(BlogEntryEvent)

  /**
   * Called when a blog entry has been removed.
   *
   * @param event a BlogEntryEvent instance
   */
  public void blogEntryRemoved(BlogEntryEvent event) {
    BlogEntry blogEntry = event.getBlogEntry();
    //#auditlistener.java:66: method: void net.sourceforge.pebble.event.AuditListener.blogEntryRemoved(BlogEntryEvent)
    //#input(void blogEntryRemoved(BlogEntryEvent)): event
    //#input(void blogEntryRemoved(BlogEntryEvent)): event.__Tag
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent.__Descendant_Table[net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent]
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent.__Descendant_Table[others]
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent.__Dispatch_Table.getBlogEntry()Lnet/sourceforge/pebble/domain/BlogEntry;
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/audit/AuditTrail.log
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/Blog.__Descendant_Table[net/sourceforge/pebble/domain/Blog]
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/Blog.__Descendant_Table[others]
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.getId()Ljava/lang/String;
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[net/sourceforge/pebble/domain/BlogEntry]
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[others]
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getGuid()Ljava/lang/String;
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getId()Ljava/lang/String;
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getTitle()Ljava/lang/String;
    //#pre[1] (void blogEntryRemoved(BlogEntryEvent)): event != null
    //#pre[2] (void blogEntryRemoved(BlogEntryEvent)): event.__Tag == net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent
    //#pre[3] (void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/audit/AuditTrail.log != null
    //#presumption(void blogEntryRemoved(BlogEntryEvent)): blogEntry.blog.__Tag@66 == net/sourceforge/pebble/domain/Blog
    //#presumption(void blogEntryRemoved(BlogEntryEvent)): blogEntry.blog@66 != null
    //#presumption(void blogEntryRemoved(BlogEntryEvent)): net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent:getSource(...)@91 != null
    //#presumption(void blogEntryRemoved(BlogEntryEvent)): net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent:getSource(...)@91.__Tag == net/sourceforge/pebble/domain/BlogEntry
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:net.sourceforge.pebble.util.SecurityUtils:getUsername
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.lang.String:valueOf
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:org.apache.commons.logging.Log:info
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent:getSource
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:getId
    AuditTrail.log("Blog entry \"" + blogEntry.getTitle() + "\" (" + blogEntry.getGuid() + ") removed");
  }
    //#auditlistener.java:68: end of method: void net.sourceforge.pebble.event.AuditListener.blogEntryRemoved(BlogEntryEvent)

  /**
   * Called when a blog entry has been changed.
   *
   * @param event a BlogEntryEvent instance
   */
  public void blogEntryChanged(BlogEntryEvent event) {
    BlogEntry blogEntry = event.getBlogEntry();
    //#auditlistener.java:76: method: void net.sourceforge.pebble.event.AuditListener.blogEntryChanged(BlogEntryEvent)
    //#input(void blogEntryChanged(BlogEntryEvent)): event
    //#input(void blogEntryChanged(BlogEntryEvent)): event.__Tag
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent.__Descendant_Table[net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent]
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent.__Descendant_Table[others]
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent.__Dispatch_Table.getBlogEntry()Lnet/sourceforge/pebble/domain/BlogEntry;
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/audit/AuditTrail.log
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/Blog.__Descendant_Table[net/sourceforge/pebble/domain/Blog]
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/Blog.__Descendant_Table[others]
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.getId()Ljava/lang/String;
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[net/sourceforge/pebble/domain/BlogEntry]
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[others]
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getGuid()Ljava/lang/String;
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getId()Ljava/lang/String;
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getTitle()Ljava/lang/String;
    //#pre[1] (void blogEntryChanged(BlogEntryEvent)): event != null
    //#pre[2] (void blogEntryChanged(BlogEntryEvent)): event.__Tag == net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent
    //#pre[3] (void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/audit/AuditTrail.log != null
    //#presumption(void blogEntryChanged(BlogEntryEvent)): blogEntry.blog.__Tag@76 == net/sourceforge/pebble/domain/Blog
    //#presumption(void blogEntryChanged(BlogEntryEvent)): blogEntry.blog@76 != null
    //#presumption(void blogEntryChanged(BlogEntryEvent)): net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent:getSource(...)@91 != null
    //#presumption(void blogEntryChanged(BlogEntryEvent)): net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent:getSource(...)@91.__Tag == net/sourceforge/pebble/domain/BlogEntry
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:net.sourceforge.pebble.util.SecurityUtils:getUsername
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.lang.String:valueOf
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:org.apache.commons.logging.Log:info
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent:getSource
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:getId
    AuditTrail.log("Blog entry \"" + blogEntry.getTitle() + "\" (" + blogEntry.getGuid() + ") changed");
  }
    //#auditlistener.java:78: end of method: void net.sourceforge.pebble.event.AuditListener.blogEntryChanged(BlogEntryEvent)

  /**
   * Called when a blog entry has been published.
   *
   * @param event a BlogEntryEvent instance
   */
  public void blogEntryPublished(BlogEntryEvent event) {
    BlogEntry blogEntry = event.getBlogEntry();
    //#auditlistener.java:86: method: void net.sourceforge.pebble.event.AuditListener.blogEntryPublished(BlogEntryEvent)
    //#input(void blogEntryPublished(BlogEntryEvent)): event
    //#input(void blogEntryPublished(BlogEntryEvent)): event.__Tag
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent.__Descendant_Table[net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent]
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent.__Descendant_Table[others]
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent.__Dispatch_Table.getBlogEntry()Lnet/sourceforge/pebble/domain/BlogEntry;
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/audit/AuditTrail.log
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Blog.__Descendant_Table[net/sourceforge/pebble/domain/Blog]
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Blog.__Descendant_Table[others]
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.getId()Ljava/lang/String;
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[net/sourceforge/pebble/domain/BlogEntry]
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[others]
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getGuid()Ljava/lang/String;
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getId()Ljava/lang/String;
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getTitle()Ljava/lang/String;
    //#pre[1] (void blogEntryPublished(BlogEntryEvent)): event != null
    //#pre[2] (void blogEntryPublished(BlogEntryEvent)): event.__Tag == net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent
    //#pre[3] (void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/audit/AuditTrail.log != null
    //#presumption(void blogEntryPublished(BlogEntryEvent)): blogEntry.blog.__Tag@86 == net/sourceforge/pebble/domain/Blog
    //#presumption(void blogEntryPublished(BlogEntryEvent)): blogEntry.blog@86 != null
    //#presumption(void blogEntryPublished(BlogEntryEvent)): net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent:getSource(...)@91 != null
    //#presumption(void blogEntryPublished(BlogEntryEvent)): net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent:getSource(...)@91.__Tag == net/sourceforge/pebble/domain/BlogEntry
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:net.sourceforge.pebble.util.SecurityUtils:getUsername
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.lang.String:valueOf
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:org.apache.commons.logging.Log:info
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent:getSource
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:getId
    AuditTrail.log("Blog entry \"" + blogEntry.getTitle() + "\" (" + blogEntry.getGuid() + ") published");
  }
    //#auditlistener.java:88: end of method: void net.sourceforge.pebble.event.AuditListener.blogEntryPublished(BlogEntryEvent)

  /**
   * Called when a blog entry has been unpublished.
   *
   * @param event a BlogEntryEvent instance
   */
  public void blogEntryUnpublished(BlogEntryEvent event) {
    BlogEntry blogEntry = event.getBlogEntry();
    //#auditlistener.java:96: method: void net.sourceforge.pebble.event.AuditListener.blogEntryUnpublished(BlogEntryEvent)
    //#input(void blogEntryUnpublished(BlogEntryEvent)): event
    //#input(void blogEntryUnpublished(BlogEntryEvent)): event.__Tag
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent.__Descendant_Table[net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent]
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent.__Descendant_Table[others]
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent.__Dispatch_Table.getBlogEntry()Lnet/sourceforge/pebble/domain/BlogEntry;
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/audit/AuditTrail.log
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Blog.__Descendant_Table[net/sourceforge/pebble/domain/Blog]
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Blog.__Descendant_Table[others]
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.getId()Ljava/lang/String;
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[net/sourceforge/pebble/domain/BlogEntry]
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[others]
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getBlog()Lnet/sourceforge/pebble/domain/Blog;
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getGuid()Ljava/lang/String;
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getId()Ljava/lang/String;
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getTitle()Ljava/lang/String;
    //#pre[1] (void blogEntryUnpublished(BlogEntryEvent)): event != null
    //#pre[2] (void blogEntryUnpublished(BlogEntryEvent)): event.__Tag == net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent
    //#pre[3] (void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/audit/AuditTrail.log != null
    //#presumption(void blogEntryUnpublished(BlogEntryEvent)): blogEntry.blog.__Tag@96 == net/sourceforge/pebble/domain/Blog
    //#presumption(void blogEntryUnpublished(BlogEntryEvent)): blogEntry.blog@96 != null
    //#presumption(void blogEntryUnpublished(BlogEntryEvent)): net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent:getSource(...)@91 != null
    //#presumption(void blogEntryUnpublished(BlogEntryEvent)): net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent:getSource(...)@91.__Tag == net/sourceforge/pebble/domain/BlogEntry
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:net.sourceforge.pebble.util.SecurityUtils:getUsername
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.lang.String:valueOf
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:org.apache.commons.logging.Log:info
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent:getSource
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:getId
    AuditTrail.log("Blog entry \"" + blogEntry.getTitle() + "\" (" + blogEntry.getGuid() + ") unpublished");
  }
    //#auditlistener.java:98: end of method: void net.sourceforge.pebble.event.AuditListener.blogEntryUnpublished(BlogEntryEvent)

  /**
   * Called when a comment has been added.
   *
   * @param event a CommentEvent instance
   */
  public void commentAdded(CommentEvent event) {
    Comment comment = event.getComment();
    //#auditlistener.java:106: method: void net.sourceforge.pebble.event.AuditListener.commentAdded(CommentEvent)
    //#input(void commentAdded(CommentEvent)): event
    //#input(void commentAdded(CommentEvent)): event.__Tag
    //#input(void commentAdded(CommentEvent)): net/sourceforge/pebble/api/event/comment/CommentEvent.__Descendant_Table[net/sourceforge/pebble/api/event/comment/CommentEvent]
    //#input(void commentAdded(CommentEvent)): net/sourceforge/pebble/api/event/comment/CommentEvent.__Descendant_Table[others]
    //#input(void commentAdded(CommentEvent)): net/sourceforge/pebble/api/event/comment/CommentEvent.__Dispatch_Table.getComment()Lnet/sourceforge/pebble/domain/Comment;
    //#input(void commentAdded(CommentEvent)): net/sourceforge/pebble/audit/AuditTrail.log
    //#input(void commentAdded(CommentEvent)): net/sourceforge/pebble/domain/Comment.__Descendant_Table[net/sourceforge/pebble/domain/Comment]
    //#input(void commentAdded(CommentEvent)): net/sourceforge/pebble/domain/Comment.__Descendant_Table[others]
    //#input(void commentAdded(CommentEvent)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getAuthor()Ljava/lang/String;
    //#input(void commentAdded(CommentEvent)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getBlogEntry()Lnet/sourceforge/pebble/domain/BlogEntry;
    //#input(void commentAdded(CommentEvent)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getGuid()Ljava/lang/String;
    //#input(void commentAdded(CommentEvent)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getId()J
    //#input(void commentAdded(CommentEvent)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getTitle()Ljava/lang/String;
    //#input(void commentAdded(CommentEvent)): net/sourceforge/pebble/domain/Response.__Descendant_Table[net/sourceforge/pebble/domain/Comment]
    //#input(void commentAdded(CommentEvent)): net/sourceforge/pebble/domain/Response.__Descendant_Table[net/sourceforge/pebble/domain/Response]
    //#input(void commentAdded(CommentEvent)): net/sourceforge/pebble/domain/Response.__Descendant_Table[net/sourceforge/pebble/domain/TrackBack]
    //#input(void commentAdded(CommentEvent)): net/sourceforge/pebble/domain/Response.__Descendant_Table[others]
    //#input(void commentAdded(CommentEvent)): net/sourceforge/pebble/domain/Response.__Dispatch_Table.getBlogEntry()Lnet/sourceforge/pebble/domain/BlogEntry;
    //#input(void commentAdded(CommentEvent)): net/sourceforge/pebble/domain/Response.__Dispatch_Table.getId()J
    //#input(void commentAdded(CommentEvent)): net/sourceforge/pebble/domain/TrackBack.__Descendant_Table[net/sourceforge/pebble/domain/TrackBack]
    //#input(void commentAdded(CommentEvent)): net/sourceforge/pebble/domain/TrackBack.__Descendant_Table[others]
    //#input(void commentAdded(CommentEvent)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getBlogEntry()Lnet/sourceforge/pebble/domain/BlogEntry;
    //#input(void commentAdded(CommentEvent)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getId()J
    //#pre[1] (void commentAdded(CommentEvent)): event != null
    //#pre[2] (void commentAdded(CommentEvent)): event.__Tag == net/sourceforge/pebble/api/event/comment/CommentEvent
    //#pre[3] (void commentAdded(CommentEvent)): net/sourceforge/pebble/audit/AuditTrail.log != null
    //#presumption(void commentAdded(CommentEvent)): comment.blogEntry@106 != null
    //#presumption(void commentAdded(CommentEvent)): comment.date@106 != null
    //#presumption(void commentAdded(CommentEvent)): net.sourceforge.pebble.api.event.comment.CommentEvent:getSource(...)@72 != null
    //#presumption(void commentAdded(CommentEvent)): net.sourceforge.pebble.api.event.comment.CommentEvent:getSource(...)@72.__Tag == net/sourceforge/pebble/domain/Comment
    //#unanalyzed(void commentAdded(CommentEvent)): Effects-of-calling:net.sourceforge.pebble.util.SecurityUtils:getUsername
    //#unanalyzed(void commentAdded(CommentEvent)): Effects-of-calling:java.lang.String:valueOf
    //#unanalyzed(void commentAdded(CommentEvent)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void commentAdded(CommentEvent)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void commentAdded(CommentEvent)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void commentAdded(CommentEvent)): Effects-of-calling:org.apache.commons.logging.Log:info
    //#unanalyzed(void commentAdded(CommentEvent)): Effects-of-calling:net.sourceforge.pebble.api.event.comment.CommentEvent:getSource
    //#unanalyzed(void commentAdded(CommentEvent)): Effects-of-calling:java.util.Date:getTime
    //#unanalyzed(void commentAdded(CommentEvent)): Effects-of-calling:net.sourceforge.pebble.domain.BlogEntry:getId
    AuditTrail.log("Comment \"" + comment.getTitle() + "\" from " + comment.getAuthor() + " (" + comment.getGuid() + ") added");
  }
    //#auditlistener.java:108: end of method: void net.sourceforge.pebble.event.AuditListener.commentAdded(CommentEvent)

  /**
   * Called when a comment has been removed.
   *
   * @param event a CommentEvent instance
   */
  public void commentRemoved(CommentEvent event) {
    Comment comment = event.getComment();
    //#auditlistener.java:116: method: void net.sourceforge.pebble.event.AuditListener.commentRemoved(CommentEvent)
    //#input(void commentRemoved(CommentEvent)): event
    //#input(void commentRemoved(CommentEvent)): event.__Tag
    //#input(void commentRemoved(CommentEvent)): net/sourceforge/pebble/api/event/comment/CommentEvent.__Descendant_Table[net/sourceforge/pebble/api/event/comment/CommentEvent]
    //#input(void commentRemoved(CommentEvent)): net/sourceforge/pebble/api/event/comment/CommentEvent.__Descendant_Table[others]
    //#input(void commentRemoved(CommentEvent)): net/sourceforge/pebble/api/event/comment/CommentEvent.__Dispatch_Table.getComment()Lnet/sourceforge/pebble/domain/Comment;
    //#input(void commentRemoved(CommentEvent)): net/sourceforge/pebble/audit/AuditTrail.log
    //#input(void commentRemoved(CommentEvent)): net/sourceforge/pebble/domain/Comment.__Descendant_Table[net/sourceforge/pebble/domain/Comment]
    //#input(void commentRemoved(CommentEvent)): net/sourceforge/pebble/domain/Comment.__Descendant_Table[others]
    //#input(void commentRemoved(CommentEvent)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getAuthor()Ljava/lang/String;
    //#input(void commentRemoved(CommentEvent)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getBlogEntry()Lnet/sourceforge/pebble/domain/BlogEntry;
    //#input(void commentRemoved(CommentEvent)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getGuid()Ljava/lang/String;
    //#input(void commentRemoved(CommentEvent)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getId()J
    //#input(void commentRemoved(CommentEvent)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getTitle()Ljava/lang/String;
    //#input(void commentRemoved(CommentEvent)): net/sourceforge/pebble/domain/Response.__Descendant_Table[net/sourceforge/pebble/domain/Comment]
    //#input(void commentRemoved(CommentEvent)): net/sourceforge/pebble/domain/Response.__Descendant_Table[net/sourceforge/pebble/domain/Response]
    //#input(void commentRemoved(CommentEvent)): net/sourceforge/pebble/domain/Response.__Descendant_Table[net/sourceforge/pebble/domain/TrackBack]
    //#input(void commentRemoved(CommentEvent)): net/sourceforge/pebble/domain/Response.__Descendant_Table[others]
    //#input(void commentRemoved(CommentEvent)): net/sourceforge/pebble/domain/Response.__Dispatch_Table.getBlogEntry()Lnet/sourceforge/pebble/domain/BlogEntry;
    //#input(void commentRemoved(CommentEvent)): net/sourceforge/pebble/domain/Response.__Dispatch_Table.getId()J
    //#input(void commentRemoved(CommentEvent)): net/sourceforge/pebble/domain/TrackBack.__Descendant_Table[net/sourceforge/pebble/domain/TrackBack]
    //#input(void commentRemoved(CommentEvent)): net/sourceforge/pebble/domain/TrackBack.__Descendant_Table[others]
    //#input(void commentRemoved(CommentEvent)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getBlogEntry()Lnet/sourceforge/pebble/domain/BlogEntry;
    //#input(void commentRemoved(CommentEvent)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getId()J
    //#pre[1] (void commentRemoved(CommentEvent)): event != null
    //#pre[2] (void commentRemoved(CommentEvent)): event.__Tag == net/sourceforge/pebble/api/event/comment/CommentEvent
    //#pre[3] (void commentRemoved(CommentEvent)): net/sourceforge/pebble/audit/AuditTrail.log != null
    //#presumption(void commentRemoved(CommentEvent)): comment.blogEntry@116 != null
    //#presumption(void commentRemoved(CommentEvent)): comment.date@116 != null
    //#presumption(void commentRemoved(CommentEvent)): net.sourceforge.pebble.api.event.comment.CommentEvent:getSource(...)@72 != null
    //#presumption(void commentRemoved(CommentEvent)): net.sourceforge.pebble.api.event.comment.CommentEvent:getSource(...)@72.__Tag == net/sourceforge/pebble/domain/Comment
    //#unanalyzed(void commentRemoved(CommentEvent)): Effects-of-calling:net.sourceforge.pebble.util.SecurityUtils:getUsername
    //#unanalyzed(void commentRemoved(CommentEvent)): Effects-of-calling:java.lang.String:valueOf
    //#unanalyzed(void commentRemoved(CommentEvent)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void commentRemoved(CommentEvent)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void commentRemoved(CommentEvent)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void commentRemoved(CommentEvent)): Effects-of-calling:org.apache.commons.logging.Log:info
    //#unanalyzed(void commentRemoved(CommentEvent)): Effects-of-calling:net.sourceforge.pebble.api.event.comment.CommentEvent:getSource
    //#unanalyzed(void commentRemoved(CommentEvent)): Effects-of-calling:java.util.Date:getTime
    //#unanalyzed(void commentRemoved(CommentEvent)): Effects-of-calling:net.sourceforge.pebble.domain.BlogEntry:getId
    AuditTrail.log("Comment \"" + comment.getTitle() + "\" from " + comment.getAuthor() + " (" + comment.getGuid() + ") removed");
  }
    //#auditlistener.java:118: end of method: void net.sourceforge.pebble.event.AuditListener.commentRemoved(CommentEvent)

  /**
   * Called when a comment has been approved.
   *
   * @param event a CommentEvent instance
   */
  public void commentApproved(CommentEvent event) {
    Comment comment = event.getComment();
    //#auditlistener.java:126: method: void net.sourceforge.pebble.event.AuditListener.commentApproved(CommentEvent)
    //#input(void commentApproved(CommentEvent)): event
    //#input(void commentApproved(CommentEvent)): event.__Tag
    //#input(void commentApproved(CommentEvent)): net/sourceforge/pebble/api/event/comment/CommentEvent.__Descendant_Table[net/sourceforge/pebble/api/event/comment/CommentEvent]
    //#input(void commentApproved(CommentEvent)): net/sourceforge/pebble/api/event/comment/CommentEvent.__Descendant_Table[others]
    //#input(void commentApproved(CommentEvent)): net/sourceforge/pebble/api/event/comment/CommentEvent.__Dispatch_Table.getComment()Lnet/sourceforge/pebble/domain/Comment;
    //#input(void commentApproved(CommentEvent)): net/sourceforge/pebble/audit/AuditTrail.log
    //#input(void commentApproved(CommentEvent)): net/sourceforge/pebble/domain/Comment.__Descendant_Table[net/sourceforge/pebble/domain/Comment]
    //#input(void commentApproved(CommentEvent)): net/sourceforge/pebble/domain/Comment.__Descendant_Table[others]
    //#input(void commentApproved(CommentEvent)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getAuthor()Ljava/lang/String;
    //#input(void commentApproved(CommentEvent)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getBlogEntry()Lnet/sourceforge/pebble/domain/BlogEntry;
    //#input(void commentApproved(CommentEvent)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getGuid()Ljava/lang/String;
    //#input(void commentApproved(CommentEvent)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getId()J
    //#input(void commentApproved(CommentEvent)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getTitle()Ljava/lang/String;
    //#input(void commentApproved(CommentEvent)): net/sourceforge/pebble/domain/Response.__Descendant_Table[net/sourceforge/pebble/domain/Comment]
    //#input(void commentApproved(CommentEvent)): net/sourceforge/pebble/domain/Response.__Descendant_Table[net/sourceforge/pebble/domain/Response]
    //#input(void commentApproved(CommentEvent)): net/sourceforge/pebble/domain/Response.__Descendant_Table[net/sourceforge/pebble/domain/TrackBack]
    //#input(void commentApproved(CommentEvent)): net/sourceforge/pebble/domain/Response.__Descendant_Table[others]
    //#input(void commentApproved(CommentEvent)): net/sourceforge/pebble/domain/Response.__Dispatch_Table.getBlogEntry()Lnet/sourceforge/pebble/domain/BlogEntry;
    //#input(void commentApproved(CommentEvent)): net/sourceforge/pebble/domain/Response.__Dispatch_Table.getId()J
    //#input(void commentApproved(CommentEvent)): net/sourceforge/pebble/domain/TrackBack.__Descendant_Table[net/sourceforge/pebble/domain/TrackBack]
    //#input(void commentApproved(CommentEvent)): net/sourceforge/pebble/domain/TrackBack.__Descendant_Table[others]
    //#input(void commentApproved(CommentEvent)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getBlogEntry()Lnet/sourceforge/pebble/domain/BlogEntry;
    //#input(void commentApproved(CommentEvent)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getId()J
    //#pre[1] (void commentApproved(CommentEvent)): event != null
    //#pre[2] (void commentApproved(CommentEvent)): event.__Tag == net/sourceforge/pebble/api/event/comment/CommentEvent
    //#pre[3] (void commentApproved(CommentEvent)): net/sourceforge/pebble/audit/AuditTrail.log != null
    //#presumption(void commentApproved(CommentEvent)): comment.blogEntry@126 != null
    //#presumption(void commentApproved(CommentEvent)): comment.date@126 != null
    //#presumption(void commentApproved(CommentEvent)): net.sourceforge.pebble.api.event.comment.CommentEvent:getSource(...)@72 != null
    //#presumption(void commentApproved(CommentEvent)): net.sourceforge.pebble.api.event.comment.CommentEvent:getSource(...)@72.__Tag == net/sourceforge/pebble/domain/Comment
    //#unanalyzed(void commentApproved(CommentEvent)): Effects-of-calling:net.sourceforge.pebble.util.SecurityUtils:getUsername
    //#unanalyzed(void commentApproved(CommentEvent)): Effects-of-calling:java.lang.String:valueOf
    //#unanalyzed(void commentApproved(CommentEvent)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void commentApproved(CommentEvent)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void commentApproved(CommentEvent)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void commentApproved(CommentEvent)): Effects-of-calling:org.apache.commons.logging.Log:info
    //#unanalyzed(void commentApproved(CommentEvent)): Effects-of-calling:net.sourceforge.pebble.api.event.comment.CommentEvent:getSource
    //#unanalyzed(void commentApproved(CommentEvent)): Effects-of-calling:java.util.Date:getTime
    //#unanalyzed(void commentApproved(CommentEvent)): Effects-of-calling:net.sourceforge.pebble.domain.BlogEntry:getId
    AuditTrail.log("Comment \"" + comment.getTitle() + "\" from " + comment.getAuthor() + " (" + comment.getGuid() + ") approved");
  }
    //#auditlistener.java:128: end of method: void net.sourceforge.pebble.event.AuditListener.commentApproved(CommentEvent)

  /**
   * Called when a comment has been rejected.
   *
   * @param event a CommentEvent instance
   */
  public void commentRejected(CommentEvent event) {
    Comment comment = event.getComment();
    //#auditlistener.java:136: method: void net.sourceforge.pebble.event.AuditListener.commentRejected(CommentEvent)
    //#input(void commentRejected(CommentEvent)): event
    //#input(void commentRejected(CommentEvent)): event.__Tag
    //#input(void commentRejected(CommentEvent)): net/sourceforge/pebble/api/event/comment/CommentEvent.__Descendant_Table[net/sourceforge/pebble/api/event/comment/CommentEvent]
    //#input(void commentRejected(CommentEvent)): net/sourceforge/pebble/api/event/comment/CommentEvent.__Descendant_Table[others]
    //#input(void commentRejected(CommentEvent)): net/sourceforge/pebble/api/event/comment/CommentEvent.__Dispatch_Table.getComment()Lnet/sourceforge/pebble/domain/Comment;
    //#input(void commentRejected(CommentEvent)): net/sourceforge/pebble/audit/AuditTrail.log
    //#input(void commentRejected(CommentEvent)): net/sourceforge/pebble/domain/Comment.__Descendant_Table[net/sourceforge/pebble/domain/Comment]
    //#input(void commentRejected(CommentEvent)): net/sourceforge/pebble/domain/Comment.__Descendant_Table[others]
    //#input(void commentRejected(CommentEvent)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getAuthor()Ljava/lang/String;
    //#input(void commentRejected(CommentEvent)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getBlogEntry()Lnet/sourceforge/pebble/domain/BlogEntry;
    //#input(void commentRejected(CommentEvent)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getGuid()Ljava/lang/String;
    //#input(void commentRejected(CommentEvent)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getId()J
    //#input(void commentRejected(CommentEvent)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getTitle()Ljava/lang/String;
    //#input(void commentRejected(CommentEvent)): net/sourceforge/pebble/domain/Response.__Descendant_Table[net/sourceforge/pebble/domain/Comment]
    //#input(void commentRejected(CommentEvent)): net/sourceforge/pebble/domain/Response.__Descendant_Table[net/sourceforge/pebble/domain/Response]
    //#input(void commentRejected(CommentEvent)): net/sourceforge/pebble/domain/Response.__Descendant_Table[net/sourceforge/pebble/domain/TrackBack]
    //#input(void commentRejected(CommentEvent)): net/sourceforge/pebble/domain/Response.__Descendant_Table[others]
    //#input(void commentRejected(CommentEvent)): net/sourceforge/pebble/domain/Response.__Dispatch_Table.getBlogEntry()Lnet/sourceforge/pebble/domain/BlogEntry;
    //#input(void commentRejected(CommentEvent)): net/sourceforge/pebble/domain/Response.__Dispatch_Table.getId()J
    //#input(void commentRejected(CommentEvent)): net/sourceforge/pebble/domain/TrackBack.__Descendant_Table[net/sourceforge/pebble/domain/TrackBack]
    //#input(void commentRejected(CommentEvent)): net/sourceforge/pebble/domain/TrackBack.__Descendant_Table[others]
    //#input(void commentRejected(CommentEvent)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getBlogEntry()Lnet/sourceforge/pebble/domain/BlogEntry;
    //#input(void commentRejected(CommentEvent)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getId()J
    //#pre[1] (void commentRejected(CommentEvent)): event != null
    //#pre[2] (void commentRejected(CommentEvent)): event.__Tag == net/sourceforge/pebble/api/event/comment/CommentEvent
    //#pre[3] (void commentRejected(CommentEvent)): net/sourceforge/pebble/audit/AuditTrail.log != null
    //#presumption(void commentRejected(CommentEvent)): comment.blogEntry@136 != null
    //#presumption(void commentRejected(CommentEvent)): comment.date@136 != null
    //#presumption(void commentRejected(CommentEvent)): net.sourceforge.pebble.api.event.comment.CommentEvent:getSource(...)@72 != null
    //#presumption(void commentRejected(CommentEvent)): net.sourceforge.pebble.api.event.comment.CommentEvent:getSource(...)@72.__Tag == net/sourceforge/pebble/domain/Comment
    //#unanalyzed(void commentRejected(CommentEvent)): Effects-of-calling:net.sourceforge.pebble.util.SecurityUtils:getUsername
    //#unanalyzed(void commentRejected(CommentEvent)): Effects-of-calling:java.lang.String:valueOf
    //#unanalyzed(void commentRejected(CommentEvent)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void commentRejected(CommentEvent)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void commentRejected(CommentEvent)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void commentRejected(CommentEvent)): Effects-of-calling:org.apache.commons.logging.Log:info
    //#unanalyzed(void commentRejected(CommentEvent)): Effects-of-calling:net.sourceforge.pebble.api.event.comment.CommentEvent:getSource
    //#unanalyzed(void commentRejected(CommentEvent)): Effects-of-calling:java.util.Date:getTime
    //#unanalyzed(void commentRejected(CommentEvent)): Effects-of-calling:net.sourceforge.pebble.domain.BlogEntry:getId
    AuditTrail.log("Comment \"" + comment.getTitle() + "\" from " + comment.getAuthor() + " (" + comment.getGuid() + ") rejected");
  }
    //#auditlistener.java:138: end of method: void net.sourceforge.pebble.event.AuditListener.commentRejected(CommentEvent)

  /**
   * Called when a TrackBack has been added.
   *
   * @param event a TrackBackEvent instance
   */
  public void trackBackAdded(TrackBackEvent event) {
    TrackBack trackback = event.getTrackBack();
    //#auditlistener.java:146: method: void net.sourceforge.pebble.event.AuditListener.trackBackAdded(TrackBackEvent)
    //#input(void trackBackAdded(TrackBackEvent)): event
    //#input(void trackBackAdded(TrackBackEvent)): event.__Tag
    //#input(void trackBackAdded(TrackBackEvent)): net/sourceforge/pebble/api/event/trackback/TrackBackEvent.__Descendant_Table[net/sourceforge/pebble/api/event/trackback/TrackBackEvent]
    //#input(void trackBackAdded(TrackBackEvent)): net/sourceforge/pebble/api/event/trackback/TrackBackEvent.__Descendant_Table[others]
    //#input(void trackBackAdded(TrackBackEvent)): net/sourceforge/pebble/api/event/trackback/TrackBackEvent.__Dispatch_Table.getTrackBack()Lnet/sourceforge/pebble/domain/TrackBack;
    //#input(void trackBackAdded(TrackBackEvent)): net/sourceforge/pebble/audit/AuditTrail.log
    //#input(void trackBackAdded(TrackBackEvent)): net/sourceforge/pebble/domain/Comment.__Descendant_Table[net/sourceforge/pebble/domain/Comment]
    //#input(void trackBackAdded(TrackBackEvent)): net/sourceforge/pebble/domain/Comment.__Descendant_Table[others]
    //#input(void trackBackAdded(TrackBackEvent)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getBlogEntry()Lnet/sourceforge/pebble/domain/BlogEntry;
    //#input(void trackBackAdded(TrackBackEvent)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getId()J
    //#input(void trackBackAdded(TrackBackEvent)): net/sourceforge/pebble/domain/Response.__Descendant_Table[net/sourceforge/pebble/domain/Comment]
    //#input(void trackBackAdded(TrackBackEvent)): net/sourceforge/pebble/domain/Response.__Descendant_Table[net/sourceforge/pebble/domain/Response]
    //#input(void trackBackAdded(TrackBackEvent)): net/sourceforge/pebble/domain/Response.__Descendant_Table[net/sourceforge/pebble/domain/TrackBack]
    //#input(void trackBackAdded(TrackBackEvent)): net/sourceforge/pebble/domain/Response.__Descendant_Table[others]
    //#input(void trackBackAdded(TrackBackEvent)): net/sourceforge/pebble/domain/Response.__Dispatch_Table.getBlogEntry()Lnet/sourceforge/pebble/domain/BlogEntry;
    //#input(void trackBackAdded(TrackBackEvent)): net/sourceforge/pebble/domain/Response.__Dispatch_Table.getId()J
    //#input(void trackBackAdded(TrackBackEvent)): net/sourceforge/pebble/domain/TrackBack.__Descendant_Table[net/sourceforge/pebble/domain/TrackBack]
    //#input(void trackBackAdded(TrackBackEvent)): net/sourceforge/pebble/domain/TrackBack.__Descendant_Table[others]
    //#input(void trackBackAdded(TrackBackEvent)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getBlogEntry()Lnet/sourceforge/pebble/domain/BlogEntry;
    //#input(void trackBackAdded(TrackBackEvent)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getBlogName()Ljava/lang/String;
    //#input(void trackBackAdded(TrackBackEvent)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getGuid()Ljava/lang/String;
    //#input(void trackBackAdded(TrackBackEvent)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getId()J
    //#input(void trackBackAdded(TrackBackEvent)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getTitle()Ljava/lang/String;
    //#pre[1] (void trackBackAdded(TrackBackEvent)): event != null
    //#pre[2] (void trackBackAdded(TrackBackEvent)): event.__Tag == net/sourceforge/pebble/api/event/trackback/TrackBackEvent
    //#pre[3] (void trackBackAdded(TrackBackEvent)): net/sourceforge/pebble/audit/AuditTrail.log != null
    //#presumption(void trackBackAdded(TrackBackEvent)): net.sourceforge.pebble.api.event.trackback.TrackBackEvent:getSource(...)@72 != null
    //#presumption(void trackBackAdded(TrackBackEvent)): net.sourceforge.pebble.api.event.trackback.TrackBackEvent:getSource(...)@72.__Tag == net/sourceforge/pebble/domain/TrackBack
    //#presumption(void trackBackAdded(TrackBackEvent)): trackback.blogEntry@147 != null
    //#presumption(void trackBackAdded(TrackBackEvent)): trackback.date@147 != null
    //#unanalyzed(void trackBackAdded(TrackBackEvent)): Effects-of-calling:net.sourceforge.pebble.util.SecurityUtils:getUsername
    //#unanalyzed(void trackBackAdded(TrackBackEvent)): Effects-of-calling:java.lang.String:valueOf
    //#unanalyzed(void trackBackAdded(TrackBackEvent)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void trackBackAdded(TrackBackEvent)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void trackBackAdded(TrackBackEvent)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void trackBackAdded(TrackBackEvent)): Effects-of-calling:org.apache.commons.logging.Log:info
    //#unanalyzed(void trackBackAdded(TrackBackEvent)): Effects-of-calling:java.util.Date:getTime
    //#unanalyzed(void trackBackAdded(TrackBackEvent)): Effects-of-calling:net.sourceforge.pebble.domain.BlogEntry:getId
    //#unanalyzed(void trackBackAdded(TrackBackEvent)): Effects-of-calling:net.sourceforge.pebble.api.event.trackback.TrackBackEvent:getSource
    //#unanalyzed(void trackBackAdded(TrackBackEvent)): Effects-of-calling:java.lang.String:length
    AuditTrail.log("TrackBack \"" + trackback.getTitle() + "\" from " + trackback.getBlogName() + " (" + trackback.getGuid() + ") added");
  }
    //#auditlistener.java:148: end of method: void net.sourceforge.pebble.event.AuditListener.trackBackAdded(TrackBackEvent)

  /**
   * Called when a TrackBack has been removed.
   *
   * @param event a TrackBackEvent instance
   */
  public void trackBackRemoved(TrackBackEvent event) {
    TrackBack trackback = event.getTrackBack();
    //#auditlistener.java:156: method: void net.sourceforge.pebble.event.AuditListener.trackBackRemoved(TrackBackEvent)
    //#input(void trackBackRemoved(TrackBackEvent)): event
    //#input(void trackBackRemoved(TrackBackEvent)): event.__Tag
    //#input(void trackBackRemoved(TrackBackEvent)): net/sourceforge/pebble/api/event/trackback/TrackBackEvent.__Descendant_Table[net/sourceforge/pebble/api/event/trackback/TrackBackEvent]
    //#input(void trackBackRemoved(TrackBackEvent)): net/sourceforge/pebble/api/event/trackback/TrackBackEvent.__Descendant_Table[others]
    //#input(void trackBackRemoved(TrackBackEvent)): net/sourceforge/pebble/api/event/trackback/TrackBackEvent.__Dispatch_Table.getTrackBack()Lnet/sourceforge/pebble/domain/TrackBack;
    //#input(void trackBackRemoved(TrackBackEvent)): net/sourceforge/pebble/audit/AuditTrail.log
    //#input(void trackBackRemoved(TrackBackEvent)): net/sourceforge/pebble/domain/Comment.__Descendant_Table[net/sourceforge/pebble/domain/Comment]
    //#input(void trackBackRemoved(TrackBackEvent)): net/sourceforge/pebble/domain/Comment.__Descendant_Table[others]
    //#input(void trackBackRemoved(TrackBackEvent)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getBlogEntry()Lnet/sourceforge/pebble/domain/BlogEntry;
    //#input(void trackBackRemoved(TrackBackEvent)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getId()J
    //#input(void trackBackRemoved(TrackBackEvent)): net/sourceforge/pebble/domain/Response.__Descendant_Table[net/sourceforge/pebble/domain/Comment]
    //#input(void trackBackRemoved(TrackBackEvent)): net/sourceforge/pebble/domain/Response.__Descendant_Table[net/sourceforge/pebble/domain/Response]
    //#input(void trackBackRemoved(TrackBackEvent)): net/sourceforge/pebble/domain/Response.__Descendant_Table[net/sourceforge/pebble/domain/TrackBack]
    //#input(void trackBackRemoved(TrackBackEvent)): net/sourceforge/pebble/domain/Response.__Descendant_Table[others]
    //#input(void trackBackRemoved(TrackBackEvent)): net/sourceforge/pebble/domain/Response.__Dispatch_Table.getBlogEntry()Lnet/sourceforge/pebble/domain/BlogEntry;
    //#input(void trackBackRemoved(TrackBackEvent)): net/sourceforge/pebble/domain/Response.__Dispatch_Table.getId()J
    //#input(void trackBackRemoved(TrackBackEvent)): net/sourceforge/pebble/domain/TrackBack.__Descendant_Table[net/sourceforge/pebble/domain/TrackBack]
    //#input(void trackBackRemoved(TrackBackEvent)): net/sourceforge/pebble/domain/TrackBack.__Descendant_Table[others]
    //#input(void trackBackRemoved(TrackBackEvent)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getBlogEntry()Lnet/sourceforge/pebble/domain/BlogEntry;
    //#input(void trackBackRemoved(TrackBackEvent)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getBlogName()Ljava/lang/String;
    //#input(void trackBackRemoved(TrackBackEvent)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getGuid()Ljava/lang/String;
    //#input(void trackBackRemoved(TrackBackEvent)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getId()J
    //#input(void trackBackRemoved(TrackBackEvent)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getTitle()Ljava/lang/String;
    //#pre[1] (void trackBackRemoved(TrackBackEvent)): event != null
    //#pre[2] (void trackBackRemoved(TrackBackEvent)): event.__Tag == net/sourceforge/pebble/api/event/trackback/TrackBackEvent
    //#pre[3] (void trackBackRemoved(TrackBackEvent)): net/sourceforge/pebble/audit/AuditTrail.log != null
    //#presumption(void trackBackRemoved(TrackBackEvent)): net.sourceforge.pebble.api.event.trackback.TrackBackEvent:getSource(...)@72 != null
    //#presumption(void trackBackRemoved(TrackBackEvent)): net.sourceforge.pebble.api.event.trackback.TrackBackEvent:getSource(...)@72.__Tag == net/sourceforge/pebble/domain/TrackBack
    //#presumption(void trackBackRemoved(TrackBackEvent)): trackback.blogEntry@157 != null
    //#presumption(void trackBackRemoved(TrackBackEvent)): trackback.date@157 != null
    //#unanalyzed(void trackBackRemoved(TrackBackEvent)): Effects-of-calling:net.sourceforge.pebble.util.SecurityUtils:getUsername
    //#unanalyzed(void trackBackRemoved(TrackBackEvent)): Effects-of-calling:java.lang.String:valueOf
    //#unanalyzed(void trackBackRemoved(TrackBackEvent)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void trackBackRemoved(TrackBackEvent)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void trackBackRemoved(TrackBackEvent)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void trackBackRemoved(TrackBackEvent)): Effects-of-calling:org.apache.commons.logging.Log:info
    //#unanalyzed(void trackBackRemoved(TrackBackEvent)): Effects-of-calling:java.util.Date:getTime
    //#unanalyzed(void trackBackRemoved(TrackBackEvent)): Effects-of-calling:net.sourceforge.pebble.domain.BlogEntry:getId
    //#unanalyzed(void trackBackRemoved(TrackBackEvent)): Effects-of-calling:net.sourceforge.pebble.api.event.trackback.TrackBackEvent:getSource
    //#unanalyzed(void trackBackRemoved(TrackBackEvent)): Effects-of-calling:java.lang.String:length
    AuditTrail.log("TrackBack \"" + trackback.getTitle() + "\" from " + trackback.getBlogName() + " (" + trackback.getGuid() + ") removed");
  }
    //#auditlistener.java:158: end of method: void net.sourceforge.pebble.event.AuditListener.trackBackRemoved(TrackBackEvent)

  /**
   * Called when a TrackBack has been approved.
   *
   * @param event a TrackBackEvent instance
   */
  public void trackBackApproved(TrackBackEvent event) {
    TrackBack trackback = event.getTrackBack();
    //#auditlistener.java:166: method: void net.sourceforge.pebble.event.AuditListener.trackBackApproved(TrackBackEvent)
    //#input(void trackBackApproved(TrackBackEvent)): event
    //#input(void trackBackApproved(TrackBackEvent)): event.__Tag
    //#input(void trackBackApproved(TrackBackEvent)): net/sourceforge/pebble/api/event/trackback/TrackBackEvent.__Descendant_Table[net/sourceforge/pebble/api/event/trackback/TrackBackEvent]
    //#input(void trackBackApproved(TrackBackEvent)): net/sourceforge/pebble/api/event/trackback/TrackBackEvent.__Descendant_Table[others]
    //#input(void trackBackApproved(TrackBackEvent)): net/sourceforge/pebble/api/event/trackback/TrackBackEvent.__Dispatch_Table.getTrackBack()Lnet/sourceforge/pebble/domain/TrackBack;
    //#input(void trackBackApproved(TrackBackEvent)): net/sourceforge/pebble/audit/AuditTrail.log
    //#input(void trackBackApproved(TrackBackEvent)): net/sourceforge/pebble/domain/Comment.__Descendant_Table[net/sourceforge/pebble/domain/Comment]
    //#input(void trackBackApproved(TrackBackEvent)): net/sourceforge/pebble/domain/Comment.__Descendant_Table[others]
    //#input(void trackBackApproved(TrackBackEvent)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getBlogEntry()Lnet/sourceforge/pebble/domain/BlogEntry;
    //#input(void trackBackApproved(TrackBackEvent)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getId()J
    //#input(void trackBackApproved(TrackBackEvent)): net/sourceforge/pebble/domain/Response.__Descendant_Table[net/sourceforge/pebble/domain/Comment]
    //#input(void trackBackApproved(TrackBackEvent)): net/sourceforge/pebble/domain/Response.__Descendant_Table[net/sourceforge/pebble/domain/Response]
    //#input(void trackBackApproved(TrackBackEvent)): net/sourceforge/pebble/domain/Response.__Descendant_Table[net/sourceforge/pebble/domain/TrackBack]
    //#input(void trackBackApproved(TrackBackEvent)): net/sourceforge/pebble/domain/Response.__Descendant_Table[others]
    //#input(void trackBackApproved(TrackBackEvent)): net/sourceforge/pebble/domain/Response.__Dispatch_Table.getBlogEntry()Lnet/sourceforge/pebble/domain/BlogEntry;
    //#input(void trackBackApproved(TrackBackEvent)): net/sourceforge/pebble/domain/Response.__Dispatch_Table.getId()J
    //#input(void trackBackApproved(TrackBackEvent)): net/sourceforge/pebble/domain/TrackBack.__Descendant_Table[net/sourceforge/pebble/domain/TrackBack]
    //#input(void trackBackApproved(TrackBackEvent)): net/sourceforge/pebble/domain/TrackBack.__Descendant_Table[others]
    //#input(void trackBackApproved(TrackBackEvent)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getBlogEntry()Lnet/sourceforge/pebble/domain/BlogEntry;
    //#input(void trackBackApproved(TrackBackEvent)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getBlogName()Ljava/lang/String;
    //#input(void trackBackApproved(TrackBackEvent)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getGuid()Ljava/lang/String;
    //#input(void trackBackApproved(TrackBackEvent)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getId()J
    //#input(void trackBackApproved(TrackBackEvent)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getTitle()Ljava/lang/String;
    //#pre[1] (void trackBackApproved(TrackBackEvent)): event != null
    //#pre[2] (void trackBackApproved(TrackBackEvent)): event.__Tag == net/sourceforge/pebble/api/event/trackback/TrackBackEvent
    //#pre[3] (void trackBackApproved(TrackBackEvent)): net/sourceforge/pebble/audit/AuditTrail.log != null
    //#presumption(void trackBackApproved(TrackBackEvent)): net.sourceforge.pebble.api.event.trackback.TrackBackEvent:getSource(...)@72 != null
    //#presumption(void trackBackApproved(TrackBackEvent)): net.sourceforge.pebble.api.event.trackback.TrackBackEvent:getSource(...)@72.__Tag == net/sourceforge/pebble/domain/TrackBack
    //#presumption(void trackBackApproved(TrackBackEvent)): trackback.blogEntry@167 != null
    //#presumption(void trackBackApproved(TrackBackEvent)): trackback.date@167 != null
    //#unanalyzed(void trackBackApproved(TrackBackEvent)): Effects-of-calling:net.sourceforge.pebble.util.SecurityUtils:getUsername
    //#unanalyzed(void trackBackApproved(TrackBackEvent)): Effects-of-calling:java.lang.String:valueOf
    //#unanalyzed(void trackBackApproved(TrackBackEvent)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void trackBackApproved(TrackBackEvent)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void trackBackApproved(TrackBackEvent)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void trackBackApproved(TrackBackEvent)): Effects-of-calling:org.apache.commons.logging.Log:info
    //#unanalyzed(void trackBackApproved(TrackBackEvent)): Effects-of-calling:java.util.Date:getTime
    //#unanalyzed(void trackBackApproved(TrackBackEvent)): Effects-of-calling:net.sourceforge.pebble.domain.BlogEntry:getId
    //#unanalyzed(void trackBackApproved(TrackBackEvent)): Effects-of-calling:net.sourceforge.pebble.api.event.trackback.TrackBackEvent:getSource
    //#unanalyzed(void trackBackApproved(TrackBackEvent)): Effects-of-calling:java.lang.String:length
    AuditTrail.log("TrackBack \"" + trackback.getTitle() + "\" from " + trackback.getBlogName() + " (" + trackback.getGuid() + ") approved");
  }
    //#auditlistener.java:168: end of method: void net.sourceforge.pebble.event.AuditListener.trackBackApproved(TrackBackEvent)

  /**
   * Called when a TrackBack has been rejected.
   *
   * @param event a TrackBackEvent instance
   */
  public void trackBackRejected(TrackBackEvent event) {
    TrackBack trackback = event.getTrackBack();
    //#auditlistener.java:176: method: void net.sourceforge.pebble.event.AuditListener.trackBackRejected(TrackBackEvent)
    //#input(void trackBackRejected(TrackBackEvent)): event
    //#input(void trackBackRejected(TrackBackEvent)): event.__Tag
    //#input(void trackBackRejected(TrackBackEvent)): net/sourceforge/pebble/api/event/trackback/TrackBackEvent.__Descendant_Table[net/sourceforge/pebble/api/event/trackback/TrackBackEvent]
    //#input(void trackBackRejected(TrackBackEvent)): net/sourceforge/pebble/api/event/trackback/TrackBackEvent.__Descendant_Table[others]
    //#input(void trackBackRejected(TrackBackEvent)): net/sourceforge/pebble/api/event/trackback/TrackBackEvent.__Dispatch_Table.getTrackBack()Lnet/sourceforge/pebble/domain/TrackBack;
    //#input(void trackBackRejected(TrackBackEvent)): net/sourceforge/pebble/audit/AuditTrail.log
    //#input(void trackBackRejected(TrackBackEvent)): net/sourceforge/pebble/domain/Comment.__Descendant_Table[net/sourceforge/pebble/domain/Comment]
    //#input(void trackBackRejected(TrackBackEvent)): net/sourceforge/pebble/domain/Comment.__Descendant_Table[others]
    //#input(void trackBackRejected(TrackBackEvent)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getBlogEntry()Lnet/sourceforge/pebble/domain/BlogEntry;
    //#input(void trackBackRejected(TrackBackEvent)): net/sourceforge/pebble/domain/Comment.__Dispatch_Table.getId()J
    //#input(void trackBackRejected(TrackBackEvent)): net/sourceforge/pebble/domain/Response.__Descendant_Table[net/sourceforge/pebble/domain/Comment]
    //#input(void trackBackRejected(TrackBackEvent)): net/sourceforge/pebble/domain/Response.__Descendant_Table[net/sourceforge/pebble/domain/Response]
    //#input(void trackBackRejected(TrackBackEvent)): net/sourceforge/pebble/domain/Response.__Descendant_Table[net/sourceforge/pebble/domain/TrackBack]
    //#input(void trackBackRejected(TrackBackEvent)): net/sourceforge/pebble/domain/Response.__Descendant_Table[others]
    //#input(void trackBackRejected(TrackBackEvent)): net/sourceforge/pebble/domain/Response.__Dispatch_Table.getBlogEntry()Lnet/sourceforge/pebble/domain/BlogEntry;
    //#input(void trackBackRejected(TrackBackEvent)): net/sourceforge/pebble/domain/Response.__Dispatch_Table.getId()J
    //#input(void trackBackRejected(TrackBackEvent)): net/sourceforge/pebble/domain/TrackBack.__Descendant_Table[net/sourceforge/pebble/domain/TrackBack]
    //#input(void trackBackRejected(TrackBackEvent)): net/sourceforge/pebble/domain/TrackBack.__Descendant_Table[others]
    //#input(void trackBackRejected(TrackBackEvent)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getBlogEntry()Lnet/sourceforge/pebble/domain/BlogEntry;
    //#input(void trackBackRejected(TrackBackEvent)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getBlogName()Ljava/lang/String;
    //#input(void trackBackRejected(TrackBackEvent)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getGuid()Ljava/lang/String;
    //#input(void trackBackRejected(TrackBackEvent)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getId()J
    //#input(void trackBackRejected(TrackBackEvent)): net/sourceforge/pebble/domain/TrackBack.__Dispatch_Table.getTitle()Ljava/lang/String;
    //#pre[1] (void trackBackRejected(TrackBackEvent)): event != null
    //#pre[2] (void trackBackRejected(TrackBackEvent)): event.__Tag == net/sourceforge/pebble/api/event/trackback/TrackBackEvent
    //#pre[3] (void trackBackRejected(TrackBackEvent)): net/sourceforge/pebble/audit/AuditTrail.log != null
    //#presumption(void trackBackRejected(TrackBackEvent)): net.sourceforge.pebble.api.event.trackback.TrackBackEvent:getSource(...)@72 != null
    //#presumption(void trackBackRejected(TrackBackEvent)): net.sourceforge.pebble.api.event.trackback.TrackBackEvent:getSource(...)@72.__Tag == net/sourceforge/pebble/domain/TrackBack
    //#presumption(void trackBackRejected(TrackBackEvent)): trackback.blogEntry@177 != null
    //#presumption(void trackBackRejected(TrackBackEvent)): trackback.date@177 != null
    //#unanalyzed(void trackBackRejected(TrackBackEvent)): Effects-of-calling:net.sourceforge.pebble.util.SecurityUtils:getUsername
    //#unanalyzed(void trackBackRejected(TrackBackEvent)): Effects-of-calling:java.lang.String:valueOf
    //#unanalyzed(void trackBackRejected(TrackBackEvent)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void trackBackRejected(TrackBackEvent)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void trackBackRejected(TrackBackEvent)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void trackBackRejected(TrackBackEvent)): Effects-of-calling:org.apache.commons.logging.Log:info
    //#unanalyzed(void trackBackRejected(TrackBackEvent)): Effects-of-calling:java.util.Date:getTime
    //#unanalyzed(void trackBackRejected(TrackBackEvent)): Effects-of-calling:net.sourceforge.pebble.domain.BlogEntry:getId
    //#unanalyzed(void trackBackRejected(TrackBackEvent)): Effects-of-calling:net.sourceforge.pebble.api.event.trackback.TrackBackEvent:getSource
    //#unanalyzed(void trackBackRejected(TrackBackEvent)): Effects-of-calling:java.lang.String:length
    AuditTrail.log("TrackBack \"" + trackback.getTitle() + "\" from " + trackback.getBlogName() + " (" + trackback.getGuid() + ") rejected");
  }
    //#auditlistener.java:178: end of method: void net.sourceforge.pebble.event.AuditListener.trackBackRejected(TrackBackEvent)
}
    //#output(net.sourceforge.pebble.event.AuditListener__static_init): __Descendant_Table[net/sourceforge/pebble/event/AuditListener]
    //#output(net.sourceforge.pebble.event.AuditListener__static_init): __Dispatch_Table.blogEntryAdded(Lnet/sourceforge/pebble/api/event/blogentry/BlogEntryEvent;)V
    //#output(net.sourceforge.pebble.event.AuditListener__static_init): __Dispatch_Table.blogEntryChanged(Lnet/sourceforge/pebble/api/event/blogentry/BlogEntryEvent;)V
    //#output(net.sourceforge.pebble.event.AuditListener__static_init): __Dispatch_Table.blogEntryPublished(Lnet/sourceforge/pebble/api/event/blogentry/BlogEntryEvent;)V
    //#output(net.sourceforge.pebble.event.AuditListener__static_init): __Dispatch_Table.blogEntryRemoved(Lnet/sourceforge/pebble/api/event/blogentry/BlogEntryEvent;)V
    //#output(net.sourceforge.pebble.event.AuditListener__static_init): __Dispatch_Table.blogEntryUnpublished(Lnet/sourceforge/pebble/api/event/blogentry/BlogEntryEvent;)V
    //#output(net.sourceforge.pebble.event.AuditListener__static_init): __Dispatch_Table.commentAdded(Lnet/sourceforge/pebble/api/event/comment/CommentEvent;)V
    //#output(net.sourceforge.pebble.event.AuditListener__static_init): __Dispatch_Table.commentApproved(Lnet/sourceforge/pebble/api/event/comment/CommentEvent;)V
    //#output(net.sourceforge.pebble.event.AuditListener__static_init): __Dispatch_Table.commentRejected(Lnet/sourceforge/pebble/api/event/comment/CommentEvent;)V
    //#output(net.sourceforge.pebble.event.AuditListener__static_init): __Dispatch_Table.commentRemoved(Lnet/sourceforge/pebble/api/event/comment/CommentEvent;)V
    //#output(net.sourceforge.pebble.event.AuditListener__static_init): __Dispatch_Table.trackBackAdded(Lnet/sourceforge/pebble/api/event/trackback/TrackBackEvent;)V
    //#output(net.sourceforge.pebble.event.AuditListener__static_init): __Dispatch_Table.trackBackApproved(Lnet/sourceforge/pebble/api/event/trackback/TrackBackEvent;)V
    //#output(net.sourceforge.pebble.event.AuditListener__static_init): __Dispatch_Table.trackBackRejected(Lnet/sourceforge/pebble/api/event/trackback/TrackBackEvent;)V
    //#output(net.sourceforge.pebble.event.AuditListener__static_init): __Dispatch_Table.trackBackRemoved(Lnet/sourceforge/pebble/api/event/trackback/TrackBackEvent;)V
    //#output(net.sourceforge.pebble.event.AuditListener__static_init): net/sourceforge/pebble/api/event/blogentry/BlogEntryListener.__Descendant_Table[net/sourceforge/pebble/event/AuditListener]
    //#output(net.sourceforge.pebble.event.AuditListener__static_init): net/sourceforge/pebble/api/event/comment/CommentListener.__Descendant_Table[net/sourceforge/pebble/event/AuditListener]
    //#output(net.sourceforge.pebble.event.AuditListener__static_init): net/sourceforge/pebble/api/event/trackback/TrackBackListener.__Descendant_Table[net/sourceforge/pebble/event/AuditListener]
    //#post(net.sourceforge.pebble.event.AuditListener__static_init): __Descendant_Table[net/sourceforge/pebble/event/AuditListener] == &__Dispatch_Table
    //#post(net.sourceforge.pebble.event.AuditListener__static_init): net/sourceforge/pebble/api/event/blogentry/BlogEntryListener.__Descendant_Table[net/sourceforge/pebble/event/AuditListener] == &__Dispatch_Table
    //#post(net.sourceforge.pebble.event.AuditListener__static_init): net/sourceforge/pebble/api/event/comment/CommentListener.__Descendant_Table[net/sourceforge/pebble/event/AuditListener] == &__Dispatch_Table
    //#post(net.sourceforge.pebble.event.AuditListener__static_init): net/sourceforge/pebble/api/event/trackback/TrackBackListener.__Descendant_Table[net/sourceforge/pebble/event/AuditListener] == &__Dispatch_Table
    //#post(net.sourceforge.pebble.event.AuditListener__static_init): __Dispatch_Table.blogEntryAdded(Lnet/sourceforge/pebble/api/event/blogentry/BlogEntryEvent;)V == &blogEntryAdded
    //#post(net.sourceforge.pebble.event.AuditListener__static_init): __Dispatch_Table.blogEntryChanged(Lnet/sourceforge/pebble/api/event/blogentry/BlogEntryEvent;)V == &blogEntryChanged
    //#post(net.sourceforge.pebble.event.AuditListener__static_init): __Dispatch_Table.blogEntryPublished(Lnet/sourceforge/pebble/api/event/blogentry/BlogEntryEvent;)V == &blogEntryPublished
    //#post(net.sourceforge.pebble.event.AuditListener__static_init): __Dispatch_Table.blogEntryRemoved(Lnet/sourceforge/pebble/api/event/blogentry/BlogEntryEvent;)V == &blogEntryRemoved
    //#post(net.sourceforge.pebble.event.AuditListener__static_init): __Dispatch_Table.blogEntryUnpublished(Lnet/sourceforge/pebble/api/event/blogentry/BlogEntryEvent;)V == &blogEntryUnpublished
    //#post(net.sourceforge.pebble.event.AuditListener__static_init): __Dispatch_Table.commentAdded(Lnet/sourceforge/pebble/api/event/comment/CommentEvent;)V == &commentAdded
    //#post(net.sourceforge.pebble.event.AuditListener__static_init): __Dispatch_Table.commentApproved(Lnet/sourceforge/pebble/api/event/comment/CommentEvent;)V == &commentApproved
    //#post(net.sourceforge.pebble.event.AuditListener__static_init): __Dispatch_Table.commentRejected(Lnet/sourceforge/pebble/api/event/comment/CommentEvent;)V == &commentRejected
    //#post(net.sourceforge.pebble.event.AuditListener__static_init): __Dispatch_Table.commentRemoved(Lnet/sourceforge/pebble/api/event/comment/CommentEvent;)V == &commentRemoved
    //#post(net.sourceforge.pebble.event.AuditListener__static_init): __Dispatch_Table.trackBackAdded(Lnet/sourceforge/pebble/api/event/trackback/TrackBackEvent;)V == &trackBackAdded
    //#post(net.sourceforge.pebble.event.AuditListener__static_init): __Dispatch_Table.trackBackApproved(Lnet/sourceforge/pebble/api/event/trackback/TrackBackEvent;)V == &trackBackApproved
    //#post(net.sourceforge.pebble.event.AuditListener__static_init): __Dispatch_Table.trackBackRejected(Lnet/sourceforge/pebble/api/event/trackback/TrackBackEvent;)V == &trackBackRejected
    //#post(net.sourceforge.pebble.event.AuditListener__static_init): __Dispatch_Table.trackBackRemoved(Lnet/sourceforge/pebble/api/event/trackback/TrackBackEvent;)V == &trackBackRemoved
    //#auditlistener.java:: end of method: net.sourceforge.pebble.event.AuditListener.net.sourceforge.pebble.event.AuditListener__static_init
    //#auditlistener.java:: end of class: net.sourceforge.pebble.event.AuditListener
