//# 6 errors, 831 messages
//#
package net.sourceforge.pebble.index;
    //#categoryindexlistener.java:1:1: class: net.sourceforge.pebble.index.CategoryIndexListener
    //#categoryindexlistener.java:1:1: method: net.sourceforge.pebble.index.CategoryIndexListener.net.sourceforge.pebble.index.CategoryIndexListener__static_init

import net.sourceforge.pebble.domain.BlogEntry;
import net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent;
import net.sourceforge.pebble.api.event.blogentry.BlogEntryListener;

import java.beans.PropertyChangeEvent;
import java.util.Iterator;
import java.util.List;

public class CategoryIndexListener implements BlogEntryListener {
    //#categoryindexlistener.java:11: method: void net.sourceforge.pebble.index.CategoryIndexListener.net.sourceforge.pebble.index.CategoryIndexListener()
    //#categoryindexlistener.java:11: end of method: void net.sourceforge.pebble.index.CategoryIndexListener.net.sourceforge.pebble.index.CategoryIndexListener()

  /**
   * Called when a blog entry has been added.
   *
   * @param event a BlogEntryEvent instance
   */
  public void blogEntryAdded(BlogEntryEvent event) {
    BlogEntry blogEntry = event.getBlogEntry();
    //#categoryindexlistener.java:19: method: void net.sourceforge.pebble.index.CategoryIndexListener.blogEntryAdded(BlogEntryEvent)
    //#input(void blogEntryAdded(BlogEntryEvent)): event
    //#input(void blogEntryAdded(BlogEntryEvent)): event.__Tag
    //#input(void blogEntryAdded(BlogEntryEvent)): net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#5).__Tag
    //#input(void blogEntryAdded(BlogEntryEvent)): net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#5).name
    //#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/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.getCategories()Ljava/util/List;
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.getCategoryIndex()Lnet/sourceforge/pebble/index/CategoryIndex;
    //#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.getCategories()Ljava/util/Set;
    //#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.getState()Lnet/sourceforge/pebble/domain/State;
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.isPublished()Z
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Descendant_Table[net/sourceforge/pebble/domain/Category]
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Descendant_Table[others]
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.addBlogEntry(Ljava/lang/String;)V
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.addSubCategory(Lnet/sourceforge/pebble/domain/Category;)V
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.getBlogEntries()Ljava/util/List;
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.getId()Ljava/lang/String;
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.getParent()Lnet/sourceforge/pebble/domain/Category;
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.getSubCategories()Ljava/util/List;
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.isRootCategory()Z
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.setBlog(Lnet/sourceforge/pebble/domain/Blog;)V
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.setId(Ljava/lang/String;)V
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.setParent(Lnet/sourceforge/pebble/domain/Category;)V
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/CategoryBuilder.__Descendant_Table[net/sourceforge/pebble/domain/CategoryBuilder]
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/CategoryBuilder.__Descendant_Table[others]
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/CategoryBuilder.__Dispatch_Table.addCategory(Lnet/sourceforge/pebble/domain/Category;)V
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/CategoryBuilder.__Dispatch_Table.getCategories()Ljava/util/List;
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/CategoryBuilder.__Dispatch_Table.getCategories(Lnet/sourceforge/pebble/domain/Category;)Ljava/util/List;
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/CategoryBuilder.__Dispatch_Table.getRootCategory()Lnet/sourceforge/pebble/domain/Category;
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[net/sourceforge/pebble/domain/BlogEntry]
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[net/sourceforge/pebble/domain/PageBasedContent]
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[net/sourceforge/pebble/domain/StaticPage]
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[others]
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/PageBasedContent.__Dispatch_Table.getState()Lnet/sourceforge/pebble/domain/State;
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/State.PUBLISHED
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/State.__Descendant_Table[net/sourceforge/pebble/domain/State]
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/State.__Descendant_Table[others]
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/State.__Dispatch_Table.equals(Ljava/lang/Object;)Z
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/State.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/domain/StaticPage.__Dispatch_Table.getState()Lnet/sourceforge/pebble/domain/State;
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/index/CategoryIndex.__Descendant_Table[net/sourceforge/pebble/index/CategoryIndex]
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/index/CategoryIndex.__Descendant_Table[others]
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/index/CategoryIndex.__Dispatch_Table.index(Lnet/sourceforge/pebble/domain/BlogEntry;)V
    //#input(void blogEntryAdded(BlogEntryEvent)): net/sourceforge/pebble/index/CategoryIndex.log
    //#output(void blogEntryAdded(BlogEntryEvent)): new ArrayList(Category#1) num objects
    //#output(void blogEntryAdded(BlogEntryEvent)): new ArrayList(Category#2) num objects
    //#output(void blogEntryAdded(BlogEntryEvent)): new ArrayList(Category#3) num objects
    //#output(void blogEntryAdded(BlogEntryEvent)): new Category(getCategory#2) num objects
    //#output(void blogEntryAdded(BlogEntryEvent)): new Category(getCategory#2).__Tag
    //#output(void blogEntryAdded(BlogEntryEvent)): new Category(getCategory#2).blog
    //#output(void blogEntryAdded(BlogEntryEvent)): new Category(getCategory#2).blogEntries
    //#output(void blogEntryAdded(BlogEntryEvent)): new Category(getCategory#2).id
    //#output(void blogEntryAdded(BlogEntryEvent)): new Category(getCategory#2).name
    //#output(void blogEntryAdded(BlogEntryEvent)): new Category(getCategory#2).parent
    //#output(void blogEntryAdded(BlogEntryEvent)): new Category(getCategory#2).subCategories
    //#output(void blogEntryAdded(BlogEntryEvent)): new Category(getCategory#2).tags
    //#output(void blogEntryAdded(BlogEntryEvent)): new Category(getCategory#2).tagsAsList
    //#output(void blogEntryAdded(BlogEntryEvent)): new Category(getCategory#3) num objects
    //#output(void blogEntryAdded(BlogEntryEvent)): new Category(getCategory#3).__Tag
    //#output(void blogEntryAdded(BlogEntryEvent)): new Category(getCategory#3).blog
    //#output(void blogEntryAdded(BlogEntryEvent)): new Category(getCategory#3).blogEntries
    //#output(void blogEntryAdded(BlogEntryEvent)): new Category(getCategory#3).id
    //#output(void blogEntryAdded(BlogEntryEvent)): new Category(getCategory#3).name
    //#output(void blogEntryAdded(BlogEntryEvent)): new Category(getCategory#3).parent
    //#output(void blogEntryAdded(BlogEntryEvent)): new Category(getCategory#3).subCategories
    //#output(void blogEntryAdded(BlogEntryEvent)): new Category(getCategory#3).tags
    //#output(void blogEntryAdded(BlogEntryEvent)): new Category(getCategory#3).tagsAsList
    //#new obj(void blogEntryAdded(BlogEntryEvent)): new ArrayList(Category#1)
    //#new obj(void blogEntryAdded(BlogEntryEvent)): new ArrayList(Category#2)
    //#new obj(void blogEntryAdded(BlogEntryEvent)): new ArrayList(Category#3)
    //#new obj(void blogEntryAdded(BlogEntryEvent)): new Category(getCategory#2)
    //#new obj(void blogEntryAdded(BlogEntryEvent)): new Category(getCategory#3)
    //#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)): (soft) net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#5).name != null
    //#presumption(void blogEntryAdded(BlogEntryEvent)): blogEntry.blog@20 != null
    //#presumption(void blogEntryAdded(BlogEntryEvent)): blogEntry.state.__Tag@19 == net/sourceforge/pebble/domain/State
    //#presumption(void blogEntryAdded(BlogEntryEvent)): blogEntry.state.__Tag@20 == net/sourceforge/pebble/domain/State
    //#presumption(void blogEntryAdded(BlogEntryEvent)): blogEntry.state@19 != null
    //#presumption(void blogEntryAdded(BlogEntryEvent)): blogEntry.state@20 != null
    //#presumption(void blogEntryAdded(BlogEntryEvent)): getBlog(...).__Tag@20 == net/sourceforge/pebble/domain/Blog
    //#presumption(void blogEntryAdded(BlogEntryEvent)): getBlog(...).categoryIndex@20 != null
    //#presumption(void blogEntryAdded(BlogEntryEvent)): getCategoryIndex(...).__Tag@20 == net/sourceforge/pebble/index/CategoryIndex
    //#presumption(void blogEntryAdded(BlogEntryEvent)): getCategoryIndex(...).blog.__Tag@20 == net/sourceforge/pebble/domain/Blog
    //#presumption(void blogEntryAdded(BlogEntryEvent)): getCategoryIndex(...).blog@20 != 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
    //#post(void blogEntryAdded(BlogEntryEvent)): init'ed(new ArrayList(Category#1) num objects)
    //#post(void blogEntryAdded(BlogEntryEvent)): init'ed(new ArrayList(Category#2) num objects)
    //#post(void blogEntryAdded(BlogEntryEvent)): init'ed(new ArrayList(Category#3) num objects)
    //#post(void blogEntryAdded(BlogEntryEvent)): init'ed(new Category(getCategory#2) num objects)
    //#post(void blogEntryAdded(BlogEntryEvent)): init'ed(new Category(getCategory#2).__Tag)
    //#post(void blogEntryAdded(BlogEntryEvent)): possibly_updated(new Category(getCategory#2).blog)
    //#post(void blogEntryAdded(BlogEntryEvent)): init'ed(new Category(getCategory#2).blogEntries)
    //#post(void blogEntryAdded(BlogEntryEvent)): possibly_updated(new Category(getCategory#2).id)
    //#post(void blogEntryAdded(BlogEntryEvent)): init'ed(new Category(getCategory#2).name)
    //#post(void blogEntryAdded(BlogEntryEvent)): possibly_updated(new Category(getCategory#2).parent)
    //#post(void blogEntryAdded(BlogEntryEvent)): init'ed(new Category(getCategory#2).subCategories)
    //#post(void blogEntryAdded(BlogEntryEvent)): init'ed(new Category(getCategory#2).tags)
    //#post(void blogEntryAdded(BlogEntryEvent)): init'ed(new Category(getCategory#2).tagsAsList)
    //#post(void blogEntryAdded(BlogEntryEvent)): init'ed(new Category(getCategory#3) num objects)
    //#post(void blogEntryAdded(BlogEntryEvent)): init'ed(new Category(getCategory#3).__Tag)
    //#post(void blogEntryAdded(BlogEntryEvent)): possibly_updated(new Category(getCategory#3).blog)
    //#post(void blogEntryAdded(BlogEntryEvent)): init'ed(new Category(getCategory#3).blogEntries)
    //#post(void blogEntryAdded(BlogEntryEvent)): possibly_updated(new Category(getCategory#3).id)
    //#post(void blogEntryAdded(BlogEntryEvent)): init'ed(new Category(getCategory#3).name)
    //#post(void blogEntryAdded(BlogEntryEvent)): possibly_updated(new Category(getCategory#3).parent)
    //#post(void blogEntryAdded(BlogEntryEvent)): init'ed(new Category(getCategory#3).subCategories)
    //#post(void blogEntryAdded(BlogEntryEvent)): init'ed(new Category(getCategory#3).tags)
    //#post(void blogEntryAdded(BlogEntryEvent)): init'ed(new Category(getCategory#3).tagsAsList)
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:isPublished
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent:getSource
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:getId
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:writeIndex
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:getCategories
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:getBlogEntries
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:net.sourceforge.pebble.domain.Blog:getIndexesDirectory
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.io.File
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.io.FileWriter
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter:write
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter:newLine
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter:flush
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter:close
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:org.apache.commons.logging.Log:error
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.util.Set:iterator
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:addBlogEntry
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:getSubCategories
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:getCategory
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.lang.String:startsWith
    //#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:net.sourceforge.pebble.domain.Blog:getLocale
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:net.sourceforge.pebble.util.I18n:getMessage
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:net.sourceforge.pebble.domain.Category
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:addCategory
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.lang.String:indexOf
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.lang.String:substring
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.lang.String:lastIndexOf
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:setBlog
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:isRootCategory
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:addSubCategory
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.util.List:add
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.util.List:addAll
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.util.Collections:sort
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.util.HashSet
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.util.List:contains
    //#unanalyzed(void blogEntryAdded(BlogEntryEvent)): Effects-of-calling:java.util.Collections:unmodifiableList
    if (blogEntry.isPublished()) {
      blogEntry.getBlog().getCategoryIndex().index(blogEntry);
    }
  }
    //#categoryindexlistener.java:23: end of method: void net.sourceforge.pebble.index.CategoryIndexListener.blogEntryAdded(BlogEntryEvent)

  /**
   * Called when a blog entry has been removed.
   *
   * @param event a BlogEntryEvent instance
   */
  public void blogEntryRemoved(BlogEntryEvent event) {
    BlogEntry blogEntry = event.getBlogEntry();
    //#categoryindexlistener.java:31: method: void net.sourceforge.pebble.index.CategoryIndexListener.blogEntryRemoved(BlogEntryEvent)
    //#input(void blogEntryRemoved(BlogEntryEvent)): event
    //#input(void blogEntryRemoved(BlogEntryEvent)): event.__Tag
    //#input(void blogEntryRemoved(BlogEntryEvent)): net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#5).__Tag
    //#input(void blogEntryRemoved(BlogEntryEvent)): net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#5).name
    //#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/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.getCategories()Ljava/util/List;
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.getCategoryIndex()Lnet/sourceforge/pebble/index/CategoryIndex;
    //#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.getId()Ljava/lang/String;
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.getState()Lnet/sourceforge/pebble/domain/State;
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.isPublished()Z
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Descendant_Table[net/sourceforge/pebble/domain/Category]
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Descendant_Table[others]
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.addSubCategory(Lnet/sourceforge/pebble/domain/Category;)V
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.getBlogEntries()Ljava/util/List;
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.getId()Ljava/lang/String;
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.getParent()Lnet/sourceforge/pebble/domain/Category;
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.getSubCategories()Ljava/util/List;
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.isRootCategory()Z
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.removeBlogEntry(Ljava/lang/String;)V
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.setBlog(Lnet/sourceforge/pebble/domain/Blog;)V
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.setId(Ljava/lang/String;)V
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.setParent(Lnet/sourceforge/pebble/domain/Category;)V
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/CategoryBuilder.__Descendant_Table[net/sourceforge/pebble/domain/CategoryBuilder]
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/CategoryBuilder.__Descendant_Table[others]
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/CategoryBuilder.__Dispatch_Table.addCategory(Lnet/sourceforge/pebble/domain/Category;)V
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/CategoryBuilder.__Dispatch_Table.getCategories()Ljava/util/List;
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/CategoryBuilder.__Dispatch_Table.getCategories(Lnet/sourceforge/pebble/domain/Category;)Ljava/util/List;
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/CategoryBuilder.__Dispatch_Table.getRootCategory()Lnet/sourceforge/pebble/domain/Category;
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[net/sourceforge/pebble/domain/BlogEntry]
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[net/sourceforge/pebble/domain/PageBasedContent]
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[net/sourceforge/pebble/domain/StaticPage]
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[others]
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/PageBasedContent.__Dispatch_Table.getState()Lnet/sourceforge/pebble/domain/State;
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/State.PUBLISHED
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/State.__Descendant_Table[net/sourceforge/pebble/domain/State]
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/State.__Descendant_Table[others]
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/State.__Dispatch_Table.equals(Ljava/lang/Object;)Z
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/State.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/domain/StaticPage.__Dispatch_Table.getState()Lnet/sourceforge/pebble/domain/State;
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/index/CategoryIndex.__Descendant_Table[net/sourceforge/pebble/index/CategoryIndex]
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/index/CategoryIndex.__Descendant_Table[others]
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/index/CategoryIndex.__Dispatch_Table.unindex(Lnet/sourceforge/pebble/domain/BlogEntry;)V
    //#input(void blogEntryRemoved(BlogEntryEvent)): net/sourceforge/pebble/index/CategoryIndex.log
    //#output(void blogEntryRemoved(BlogEntryEvent)): new ArrayList(Category#1) num objects
    //#output(void blogEntryRemoved(BlogEntryEvent)): new ArrayList(Category#2) num objects
    //#output(void blogEntryRemoved(BlogEntryEvent)): new ArrayList(Category#3) num objects
    //#output(void blogEntryRemoved(BlogEntryEvent)): new Category(getCategory#2) num objects
    //#output(void blogEntryRemoved(BlogEntryEvent)): new Category(getCategory#2).__Tag
    //#output(void blogEntryRemoved(BlogEntryEvent)): new Category(getCategory#2).blog
    //#output(void blogEntryRemoved(BlogEntryEvent)): new Category(getCategory#2).blogEntries
    //#output(void blogEntryRemoved(BlogEntryEvent)): new Category(getCategory#2).id
    //#output(void blogEntryRemoved(BlogEntryEvent)): new Category(getCategory#2).name
    //#output(void blogEntryRemoved(BlogEntryEvent)): new Category(getCategory#2).parent
    //#output(void blogEntryRemoved(BlogEntryEvent)): new Category(getCategory#2).subCategories
    //#output(void blogEntryRemoved(BlogEntryEvent)): new Category(getCategory#2).tags
    //#output(void blogEntryRemoved(BlogEntryEvent)): new Category(getCategory#2).tagsAsList
    //#output(void blogEntryRemoved(BlogEntryEvent)): new Category(getCategory#3) num objects
    //#output(void blogEntryRemoved(BlogEntryEvent)): new Category(getCategory#3).__Tag
    //#output(void blogEntryRemoved(BlogEntryEvent)): new Category(getCategory#3).blog
    //#output(void blogEntryRemoved(BlogEntryEvent)): new Category(getCategory#3).blogEntries
    //#output(void blogEntryRemoved(BlogEntryEvent)): new Category(getCategory#3).id
    //#output(void blogEntryRemoved(BlogEntryEvent)): new Category(getCategory#3).name
    //#output(void blogEntryRemoved(BlogEntryEvent)): new Category(getCategory#3).parent
    //#output(void blogEntryRemoved(BlogEntryEvent)): new Category(getCategory#3).subCategories
    //#output(void blogEntryRemoved(BlogEntryEvent)): new Category(getCategory#3).tags
    //#output(void blogEntryRemoved(BlogEntryEvent)): new Category(getCategory#3).tagsAsList
    //#new obj(void blogEntryRemoved(BlogEntryEvent)): new ArrayList(Category#1)
    //#new obj(void blogEntryRemoved(BlogEntryEvent)): new ArrayList(Category#2)
    //#new obj(void blogEntryRemoved(BlogEntryEvent)): new ArrayList(Category#3)
    //#new obj(void blogEntryRemoved(BlogEntryEvent)): new Category(getCategory#2)
    //#new obj(void blogEntryRemoved(BlogEntryEvent)): new Category(getCategory#3)
    //#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)): (soft) net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#5).name != null
    //#presumption(void blogEntryRemoved(BlogEntryEvent)): blogEntry.blog@32 != null
    //#presumption(void blogEntryRemoved(BlogEntryEvent)): blogEntry.state.__Tag@31 == net/sourceforge/pebble/domain/State
    //#presumption(void blogEntryRemoved(BlogEntryEvent)): blogEntry.state@31 != null
    //#presumption(void blogEntryRemoved(BlogEntryEvent)): getBlog(...).__Tag@32 == net/sourceforge/pebble/domain/Blog
    //#presumption(void blogEntryRemoved(BlogEntryEvent)): getBlog(...).categoryIndex@32 != null
    //#presumption(void blogEntryRemoved(BlogEntryEvent)): getCategoryIndex(...).__Tag@32 == net/sourceforge/pebble/index/CategoryIndex
    //#presumption(void blogEntryRemoved(BlogEntryEvent)): getCategoryIndex(...).blog.__Tag@32 == net/sourceforge/pebble/domain/Blog
    //#presumption(void blogEntryRemoved(BlogEntryEvent)): getCategoryIndex(...).blog@32 != 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
    //#post(void blogEntryRemoved(BlogEntryEvent)): init'ed(new ArrayList(Category#1) num objects)
    //#post(void blogEntryRemoved(BlogEntryEvent)): init'ed(new ArrayList(Category#2) num objects)
    //#post(void blogEntryRemoved(BlogEntryEvent)): init'ed(new ArrayList(Category#3) num objects)
    //#post(void blogEntryRemoved(BlogEntryEvent)): init'ed(new Category(getCategory#2) num objects)
    //#post(void blogEntryRemoved(BlogEntryEvent)): init'ed(new Category(getCategory#2).__Tag)
    //#post(void blogEntryRemoved(BlogEntryEvent)): possibly_updated(new Category(getCategory#2).blog)
    //#post(void blogEntryRemoved(BlogEntryEvent)): init'ed(new Category(getCategory#2).blogEntries)
    //#post(void blogEntryRemoved(BlogEntryEvent)): possibly_updated(new Category(getCategory#2).id)
    //#post(void blogEntryRemoved(BlogEntryEvent)): init'ed(new Category(getCategory#2).name)
    //#post(void blogEntryRemoved(BlogEntryEvent)): possibly_updated(new Category(getCategory#2).parent)
    //#post(void blogEntryRemoved(BlogEntryEvent)): possibly_updated(new Category(getCategory#2).subCategories)
    //#post(void blogEntryRemoved(BlogEntryEvent)): init'ed(new Category(getCategory#2).tags)
    //#post(void blogEntryRemoved(BlogEntryEvent)): init'ed(new Category(getCategory#2).tagsAsList)
    //#post(void blogEntryRemoved(BlogEntryEvent)): init'ed(new Category(getCategory#3) num objects)
    //#post(void blogEntryRemoved(BlogEntryEvent)): init'ed(new Category(getCategory#3).__Tag)
    //#post(void blogEntryRemoved(BlogEntryEvent)): possibly_updated(new Category(getCategory#3).blog)
    //#post(void blogEntryRemoved(BlogEntryEvent)): init'ed(new Category(getCategory#3).blogEntries)
    //#post(void blogEntryRemoved(BlogEntryEvent)): possibly_updated(new Category(getCategory#3).id)
    //#post(void blogEntryRemoved(BlogEntryEvent)): init'ed(new Category(getCategory#3).name)
    //#post(void blogEntryRemoved(BlogEntryEvent)): possibly_updated(new Category(getCategory#3).parent)
    //#post(void blogEntryRemoved(BlogEntryEvent)): possibly_updated(new Category(getCategory#3).subCategories)
    //#post(void blogEntryRemoved(BlogEntryEvent)): init'ed(new Category(getCategory#3).tags)
    //#post(void blogEntryRemoved(BlogEntryEvent)): init'ed(new Category(getCategory#3).tagsAsList)
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent:getSource
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:getId
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:writeIndex
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:getCategories
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:removeBlogEntry
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:getBlogEntries
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:net.sourceforge.pebble.domain.Blog:getIndexesDirectory
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.io.File
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.io.FileWriter
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter:write
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter:newLine
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter:flush
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter:close
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:org.apache.commons.logging.Log:error
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:getSubCategories
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:getCategory
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.lang.String:startsWith
    //#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:net.sourceforge.pebble.domain.Blog:getLocale
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:net.sourceforge.pebble.util.I18n:getMessage
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:net.sourceforge.pebble.domain.Category
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:addCategory
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.lang.String:indexOf
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.lang.String:substring
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.lang.String:lastIndexOf
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:setBlog
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:isRootCategory
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:addSubCategory
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.util.List:add
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.util.List:addAll
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.util.Collections:sort
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.util.List:remove
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.util.List:contains
    //#unanalyzed(void blogEntryRemoved(BlogEntryEvent)): Effects-of-calling:java.util.Collections:unmodifiableList
    if (blogEntry.isPublished()) {
      blogEntry.getBlog().getCategoryIndex().unindex(blogEntry);
    }
  }
    //#categoryindexlistener.java:35: end of method: void net.sourceforge.pebble.index.CategoryIndexListener.blogEntryRemoved(BlogEntryEvent)

  /**
   * Called when a blog entry has been changed.
   *
   * @param event a BlogEntryEvent instance
   */
  public void blogEntryChanged(BlogEntryEvent event) {
    BlogEntry blogEntry = event.getBlogEntry();
    //#categoryindexlistener.java:43: method: void net.sourceforge.pebble.index.CategoryIndexListener.blogEntryChanged(BlogEntryEvent)
    //#input(void blogEntryChanged(BlogEntryEvent)): event
    //#input(void blogEntryChanged(BlogEntryEvent)): event.__Tag
    //#input(void blogEntryChanged(BlogEntryEvent)): event.propertyChangeEvents
    //#input(void blogEntryChanged(BlogEntryEvent)): net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#5).__Tag
    //#input(void blogEntryChanged(BlogEntryEvent)): net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#5).name
    //#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/api/event/blogentry/BlogEntryEvent.__Dispatch_Table.getPropertyChangeEvents()Ljava/util/List;
    //#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.getCategories()Ljava/util/List;
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.getCategoryIndex()Lnet/sourceforge/pebble/index/CategoryIndex;
    //#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.getCategories()Ljava/util/Set;
    //#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.getState()Lnet/sourceforge/pebble/domain/State;
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.isPublished()Z
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Descendant_Table[net/sourceforge/pebble/domain/Category]
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Descendant_Table[others]
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.addBlogEntry(Ljava/lang/String;)V
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.addSubCategory(Lnet/sourceforge/pebble/domain/Category;)V
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.getBlogEntries()Ljava/util/List;
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.getId()Ljava/lang/String;
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.getParent()Lnet/sourceforge/pebble/domain/Category;
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.getSubCategories()Ljava/util/List;
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.isRootCategory()Z
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.removeBlogEntry(Ljava/lang/String;)V
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.setBlog(Lnet/sourceforge/pebble/domain/Blog;)V
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.setId(Ljava/lang/String;)V
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.setParent(Lnet/sourceforge/pebble/domain/Category;)V
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/CategoryBuilder.__Descendant_Table[net/sourceforge/pebble/domain/CategoryBuilder]
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/CategoryBuilder.__Descendant_Table[others]
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/CategoryBuilder.__Dispatch_Table.addCategory(Lnet/sourceforge/pebble/domain/Category;)V
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/CategoryBuilder.__Dispatch_Table.getCategories()Ljava/util/List;
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/CategoryBuilder.__Dispatch_Table.getCategories(Lnet/sourceforge/pebble/domain/Category;)Ljava/util/List;
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/CategoryBuilder.__Dispatch_Table.getRootCategory()Lnet/sourceforge/pebble/domain/Category;
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[net/sourceforge/pebble/domain/BlogEntry]
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[net/sourceforge/pebble/domain/PageBasedContent]
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[net/sourceforge/pebble/domain/StaticPage]
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[others]
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/PageBasedContent.__Dispatch_Table.getState()Lnet/sourceforge/pebble/domain/State;
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/State.PUBLISHED
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/State.__Descendant_Table[net/sourceforge/pebble/domain/State]
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/State.__Descendant_Table[others]
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/State.__Dispatch_Table.equals(Ljava/lang/Object;)Z
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/State.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/domain/StaticPage.__Dispatch_Table.getState()Lnet/sourceforge/pebble/domain/State;
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/index/CategoryIndex.__Descendant_Table[net/sourceforge/pebble/index/CategoryIndex]
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/index/CategoryIndex.__Descendant_Table[others]
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/index/CategoryIndex.__Dispatch_Table.index(Lnet/sourceforge/pebble/domain/BlogEntry;)V
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/index/CategoryIndex.__Dispatch_Table.unindex(Lnet/sourceforge/pebble/domain/BlogEntry;)V
    //#input(void blogEntryChanged(BlogEntryEvent)): net/sourceforge/pebble/index/CategoryIndex.log
    //#output(void blogEntryChanged(BlogEntryEvent)): new ArrayList(Category#1) num objects
    //#output(void blogEntryChanged(BlogEntryEvent)): new ArrayList(Category#2) num objects
    //#output(void blogEntryChanged(BlogEntryEvent)): new ArrayList(Category#3) num objects
    //#output(void blogEntryChanged(BlogEntryEvent)): new Category(getCategory#2) num objects
    //#output(void blogEntryChanged(BlogEntryEvent)): new Category(getCategory#2).__Tag
    //#output(void blogEntryChanged(BlogEntryEvent)): new Category(getCategory#2).blog
    //#output(void blogEntryChanged(BlogEntryEvent)): new Category(getCategory#2).blogEntries
    //#output(void blogEntryChanged(BlogEntryEvent)): new Category(getCategory#2).id
    //#output(void blogEntryChanged(BlogEntryEvent)): new Category(getCategory#2).name
    //#output(void blogEntryChanged(BlogEntryEvent)): new Category(getCategory#2).parent
    //#output(void blogEntryChanged(BlogEntryEvent)): new Category(getCategory#2).subCategories
    //#output(void blogEntryChanged(BlogEntryEvent)): new Category(getCategory#2).tags
    //#output(void blogEntryChanged(BlogEntryEvent)): new Category(getCategory#2).tagsAsList
    //#output(void blogEntryChanged(BlogEntryEvent)): new Category(getCategory#3) num objects
    //#output(void blogEntryChanged(BlogEntryEvent)): new Category(getCategory#3).__Tag
    //#output(void blogEntryChanged(BlogEntryEvent)): new Category(getCategory#3).blog
    //#output(void blogEntryChanged(BlogEntryEvent)): new Category(getCategory#3).blogEntries
    //#output(void blogEntryChanged(BlogEntryEvent)): new Category(getCategory#3).id
    //#output(void blogEntryChanged(BlogEntryEvent)): new Category(getCategory#3).name
    //#output(void blogEntryChanged(BlogEntryEvent)): new Category(getCategory#3).parent
    //#output(void blogEntryChanged(BlogEntryEvent)): new Category(getCategory#3).subCategories
    //#output(void blogEntryChanged(BlogEntryEvent)): new Category(getCategory#3).tags
    //#output(void blogEntryChanged(BlogEntryEvent)): new Category(getCategory#3).tagsAsList
    //#new obj(void blogEntryChanged(BlogEntryEvent)): new ArrayList(Category#1)
    //#new obj(void blogEntryChanged(BlogEntryEvent)): new ArrayList(Category#2)
    //#new obj(void blogEntryChanged(BlogEntryEvent)): new ArrayList(Category#3)
    //#new obj(void blogEntryChanged(BlogEntryEvent)): new Category(getCategory#2)
    //#new obj(void blogEntryChanged(BlogEntryEvent)): new Category(getCategory#3)
    //#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)): (soft) event.propertyChangeEvents != null
    //#pre[4] (void blogEntryChanged(BlogEntryEvent)): (soft) net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#5).name != null
    //#presumption(void blogEntryChanged(BlogEntryEvent)): blogEntry.blog@45 != null
    //#presumption(void blogEntryChanged(BlogEntryEvent)): blogEntry.blog@54 != null
    //#presumption(void blogEntryChanged(BlogEntryEvent)): blogEntry.state.__Tag@43 == net/sourceforge/pebble/domain/State
    //#presumption(void blogEntryChanged(BlogEntryEvent)): blogEntry.state.__Tag@54 == net/sourceforge/pebble/domain/State
    //#presumption(void blogEntryChanged(BlogEntryEvent)): blogEntry.state@43 != null
    //#presumption(void blogEntryChanged(BlogEntryEvent)): blogEntry.state@54 != null
    //#presumption(void blogEntryChanged(BlogEntryEvent)): getBlog(...).__Tag@45 == net/sourceforge/pebble/domain/Blog
    //#presumption(void blogEntryChanged(BlogEntryEvent)): getBlog(...).__Tag@54 == net/sourceforge/pebble/domain/Blog
    //#presumption(void blogEntryChanged(BlogEntryEvent)): getBlog(...).categoryIndex@45 != null
    //#presumption(void blogEntryChanged(BlogEntryEvent)): getBlog(...).categoryIndex@54 != null
    //#presumption(void blogEntryChanged(BlogEntryEvent)): getCategoryIndex(...).__Tag@45 == net/sourceforge/pebble/index/CategoryIndex
    //#presumption(void blogEntryChanged(BlogEntryEvent)): getCategoryIndex(...).__Tag@45 == net/sourceforge/pebble/index/CategoryIndex
    //#presumption(void blogEntryChanged(BlogEntryEvent)): getCategoryIndex(...).blog.__Tag@45 == net/sourceforge/pebble/domain/Blog
    //#presumption(void blogEntryChanged(BlogEntryEvent)): getCategoryIndex(...).blog.__Tag@54 == net/sourceforge/pebble/domain/Blog
    //#presumption(void blogEntryChanged(BlogEntryEvent)): getCategoryIndex(...).blog@45 != null
    //#presumption(void blogEntryChanged(BlogEntryEvent)): getCategoryIndex(...).blog@54 != null
    //#presumption(void blogEntryChanged(BlogEntryEvent)): java.beans.PropertyChangeEvent:getPropertyName(...)@50 != null
    //#presumption(void blogEntryChanged(BlogEntryEvent)): java.util.Iterator:next(...)@49 != 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
    //#post(void blogEntryChanged(BlogEntryEvent)): init'ed(new ArrayList(Category#1) num objects)
    //#post(void blogEntryChanged(BlogEntryEvent)): init'ed(new ArrayList(Category#2) num objects)
    //#post(void blogEntryChanged(BlogEntryEvent)): init'ed(new ArrayList(Category#3) num objects)
    //#post(void blogEntryChanged(BlogEntryEvent)): init'ed(new Category(getCategory#2) num objects)
    //#post(void blogEntryChanged(BlogEntryEvent)): init'ed(new Category(getCategory#2).__Tag)
    //#post(void blogEntryChanged(BlogEntryEvent)): init'ed(new Category(getCategory#2).blog)
    //#post(void blogEntryChanged(BlogEntryEvent)): init'ed(new Category(getCategory#2).blogEntries)
    //#post(void blogEntryChanged(BlogEntryEvent)): init'ed(new Category(getCategory#2).id)
    //#post(void blogEntryChanged(BlogEntryEvent)): init'ed(new Category(getCategory#2).name)
    //#post(void blogEntryChanged(BlogEntryEvent)): init'ed(new Category(getCategory#2).parent)
    //#post(void blogEntryChanged(BlogEntryEvent)): init'ed(new Category(getCategory#2).subCategories)
    //#post(void blogEntryChanged(BlogEntryEvent)): init'ed(new Category(getCategory#2).tags)
    //#post(void blogEntryChanged(BlogEntryEvent)): init'ed(new Category(getCategory#2).tagsAsList)
    //#post(void blogEntryChanged(BlogEntryEvent)): init'ed(new Category(getCategory#3) num objects)
    //#post(void blogEntryChanged(BlogEntryEvent)): init'ed(new Category(getCategory#3).__Tag)
    //#post(void blogEntryChanged(BlogEntryEvent)): init'ed(new Category(getCategory#3).blog)
    //#post(void blogEntryChanged(BlogEntryEvent)): init'ed(new Category(getCategory#3).blogEntries)
    //#post(void blogEntryChanged(BlogEntryEvent)): init'ed(new Category(getCategory#3).id)
    //#post(void blogEntryChanged(BlogEntryEvent)): init'ed(new Category(getCategory#3).name)
    //#post(void blogEntryChanged(BlogEntryEvent)): init'ed(new Category(getCategory#3).parent)
    //#post(void blogEntryChanged(BlogEntryEvent)): init'ed(new Category(getCategory#3).subCategories)
    //#post(void blogEntryChanged(BlogEntryEvent)): init'ed(new Category(getCategory#3).tags)
    //#post(void blogEntryChanged(BlogEntryEvent)): init'ed(new Category(getCategory#3).tagsAsList)
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:isPublished
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent:getSource
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:getId
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:writeIndex
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:getCategories
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:removeBlogEntry
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:getBlogEntries
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:net.sourceforge.pebble.domain.Blog:getIndexesDirectory
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.io.File
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.io.FileWriter
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter:write
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter:newLine
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter:flush
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter:close
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:org.apache.commons.logging.Log:error
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.util.Set:iterator
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:addBlogEntry
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:getSubCategories
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:getCategory
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.lang.String:startsWith
    //#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:net.sourceforge.pebble.domain.Blog:getLocale
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:net.sourceforge.pebble.util.I18n:getMessage
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:net.sourceforge.pebble.domain.Category
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:addCategory
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.lang.String:indexOf
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.lang.String:substring
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.lang.String:lastIndexOf
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:setBlog
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:isRootCategory
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:addSubCategory
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.util.List:add
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.util.List:addAll
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.util.Collections:sort
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.util.List:remove
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.util.HashSet
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.util.List:contains
    //#unanalyzed(void blogEntryChanged(BlogEntryEvent)): Effects-of-calling:java.util.Collections:unmodifiableList
    //#test_vector(void blogEntryChanged(BlogEntryEvent)): java.lang.String:equals(...)@53: {0}, {1}
    //#test_vector(void blogEntryChanged(BlogEntryEvent)): java.util.Iterator:hasNext(...)@48: {1}, {0}

    if (blogEntry.isPublished()) {
      List propertyChangeEvents = event.getPropertyChangeEvents();
    //#categoryindexlistener.java:46: ?null dereference
    //#    net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent.__Descendant_Table[event.__Tag] != null
    //#    severity: SUPPRESSED
    //#    class: net.sourceforge.pebble.index.CategoryIndexListener
    //#    method: void blogEntryChanged(BlogEntryEvent)
    //#    basic block: bb_2
    //#    assertion: net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent.__Descendant_Table[event.__Tag] != null
    //#    VN: net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent.__Descendant_Table[event.__Tag]
    //#    Expected: Inverse{null}
    //#    Bad: Addr_Set{null}
    //#    Attribs:  Ptr  null in Bad
      Iterator it = propertyChangeEvents.iterator();
      while (it.hasNext()) {
        PropertyChangeEvent pce = (PropertyChangeEvent)it.next();
        String property = pce.getPropertyName();

        // only if the tags or categories change do we need to reindex the tags
        if (property.equals(BlogEntry.CATEGORIES_PROPERTY)) {
          blogEntry.getBlog().getCategoryIndex().unindex(blogEntry);
          blogEntry.getBlog().getCategoryIndex().index(blogEntry);
        }
      }
    }
  }
    //#categoryindexlistener.java:59: end of method: void net.sourceforge.pebble.index.CategoryIndexListener.blogEntryChanged(BlogEntryEvent)

  /**
   * Called when a blog entry has been published.
   *
   * @param event a BlogEntryEvent instance
   */
  public void blogEntryPublished(BlogEntryEvent event) {
    BlogEntry blogEntry = event.getBlogEntry();
    //#categoryindexlistener.java:67: method: void net.sourceforge.pebble.index.CategoryIndexListener.blogEntryPublished(BlogEntryEvent)
    //#input(void blogEntryPublished(BlogEntryEvent)): event
    //#input(void blogEntryPublished(BlogEntryEvent)): event.__Tag
    //#input(void blogEntryPublished(BlogEntryEvent)): net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#5).__Tag
    //#input(void blogEntryPublished(BlogEntryEvent)): net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#5).name
    //#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/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.getCategories()Ljava/util/List;
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.getCategoryIndex()Lnet/sourceforge/pebble/index/CategoryIndex;
    //#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.getCategories()Ljava/util/Set;
    //#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.getState()Lnet/sourceforge/pebble/domain/State;
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/BlogEntry.__Dispatch_Table.isPublished()Z
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Descendant_Table[net/sourceforge/pebble/domain/Category]
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Descendant_Table[others]
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.addBlogEntry(Ljava/lang/String;)V
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.addSubCategory(Lnet/sourceforge/pebble/domain/Category;)V
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.getBlogEntries()Ljava/util/List;
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.getId()Ljava/lang/String;
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.getParent()Lnet/sourceforge/pebble/domain/Category;
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.getSubCategories()Ljava/util/List;
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.isRootCategory()Z
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.setBlog(Lnet/sourceforge/pebble/domain/Blog;)V
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.setId(Ljava/lang/String;)V
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.setParent(Lnet/sourceforge/pebble/domain/Category;)V
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/CategoryBuilder.__Descendant_Table[net/sourceforge/pebble/domain/CategoryBuilder]
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/CategoryBuilder.__Descendant_Table[others]
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/CategoryBuilder.__Dispatch_Table.addCategory(Lnet/sourceforge/pebble/domain/Category;)V
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/CategoryBuilder.__Dispatch_Table.getCategories()Ljava/util/List;
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/CategoryBuilder.__Dispatch_Table.getCategories(Lnet/sourceforge/pebble/domain/Category;)Ljava/util/List;
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/CategoryBuilder.__Dispatch_Table.getRootCategory()Lnet/sourceforge/pebble/domain/Category;
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[net/sourceforge/pebble/domain/BlogEntry]
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[net/sourceforge/pebble/domain/PageBasedContent]
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[net/sourceforge/pebble/domain/StaticPage]
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/PageBasedContent.__Descendant_Table[others]
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/PageBasedContent.__Dispatch_Table.getState()Lnet/sourceforge/pebble/domain/State;
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/State.PUBLISHED
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/State.__Descendant_Table[net/sourceforge/pebble/domain/State]
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/State.__Descendant_Table[others]
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/State.__Dispatch_Table.equals(Ljava/lang/Object;)Z
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/State.__Dispatch_Table.getName()Ljava/lang/String;
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/domain/StaticPage.__Dispatch_Table.getState()Lnet/sourceforge/pebble/domain/State;
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/index/CategoryIndex.__Descendant_Table[net/sourceforge/pebble/index/CategoryIndex]
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/index/CategoryIndex.__Descendant_Table[others]
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/index/CategoryIndex.__Dispatch_Table.index(Lnet/sourceforge/pebble/domain/BlogEntry;)V
    //#input(void blogEntryPublished(BlogEntryEvent)): net/sourceforge/pebble/index/CategoryIndex.log
    //#output(void blogEntryPublished(BlogEntryEvent)): new ArrayList(Category#1) num objects
    //#output(void blogEntryPublished(BlogEntryEvent)): new ArrayList(Category#2) num objects
    //#output(void blogEntryPublished(BlogEntryEvent)): new ArrayList(Category#3) num objects
    //#output(void blogEntryPublished(BlogEntryEvent)): new Category(getCategory#2) num objects
    //#output(void blogEntryPublished(BlogEntryEvent)): new Category(getCategory#2).__Tag
    //#output(void blogEntryPublished(BlogEntryEvent)): new Category(getCategory#2).blog
    //#output(void blogEntryPublished(BlogEntryEvent)): new Category(getCategory#2).blogEntries
    //#output(void blogEntryPublished(BlogEntryEvent)): new Category(getCategory#2).id
    //#output(void blogEntryPublished(BlogEntryEvent)): new Category(getCategory#2).name
    //#output(void blogEntryPublished(BlogEntryEvent)): new Category(getCategory#2).parent
    //#output(void blogEntryPublished(BlogEntryEvent)): new Category(getCategory#2).subCategories
    //#output(void blogEntryPublished(BlogEntryEvent)): new Category(getCategory#2).tags
    //#output(void blogEntryPublished(BlogEntryEvent)): new Category(getCategory#2).tagsAsList
    //#output(void blogEntryPublished(BlogEntryEvent)): new Category(getCategory#3) num objects
    //#output(void blogEntryPublished(BlogEntryEvent)): new Category(getCategory#3).__Tag
    //#output(void blogEntryPublished(BlogEntryEvent)): new Category(getCategory#3).blog
    //#output(void blogEntryPublished(BlogEntryEvent)): new Category(getCategory#3).blogEntries
    //#output(void blogEntryPublished(BlogEntryEvent)): new Category(getCategory#3).id
    //#output(void blogEntryPublished(BlogEntryEvent)): new Category(getCategory#3).name
    //#output(void blogEntryPublished(BlogEntryEvent)): new Category(getCategory#3).parent
    //#output(void blogEntryPublished(BlogEntryEvent)): new Category(getCategory#3).subCategories
    //#output(void blogEntryPublished(BlogEntryEvent)): new Category(getCategory#3).tags
    //#output(void blogEntryPublished(BlogEntryEvent)): new Category(getCategory#3).tagsAsList
    //#new obj(void blogEntryPublished(BlogEntryEvent)): new ArrayList(Category#1)
    //#new obj(void blogEntryPublished(BlogEntryEvent)): new ArrayList(Category#2)
    //#new obj(void blogEntryPublished(BlogEntryEvent)): new ArrayList(Category#3)
    //#new obj(void blogEntryPublished(BlogEntryEvent)): new Category(getCategory#2)
    //#new obj(void blogEntryPublished(BlogEntryEvent)): new Category(getCategory#3)
    //#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)): (soft) net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#5).name != null
    //#presumption(void blogEntryPublished(BlogEntryEvent)): blogEntry.blog@67 != null
    //#presumption(void blogEntryPublished(BlogEntryEvent)): blogEntry.state.__Tag@67 == net/sourceforge/pebble/domain/State
    //#presumption(void blogEntryPublished(BlogEntryEvent)): blogEntry.state@67 != null
    //#presumption(void blogEntryPublished(BlogEntryEvent)): getBlog(...).__Tag@67 == net/sourceforge/pebble/domain/Blog
    //#presumption(void blogEntryPublished(BlogEntryEvent)): getBlog(...).categoryIndex@67 != null
    //#presumption(void blogEntryPublished(BlogEntryEvent)): getCategoryIndex(...).__Tag@67 == net/sourceforge/pebble/index/CategoryIndex
    //#presumption(void blogEntryPublished(BlogEntryEvent)): getCategoryIndex(...).blog.__Tag@67 == net/sourceforge/pebble/domain/Blog
    //#presumption(void blogEntryPublished(BlogEntryEvent)): getCategoryIndex(...).blog@67 != 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
    //#post(void blogEntryPublished(BlogEntryEvent)): init'ed(new ArrayList(Category#1) num objects)
    //#post(void blogEntryPublished(BlogEntryEvent)): init'ed(new ArrayList(Category#2) num objects)
    //#post(void blogEntryPublished(BlogEntryEvent)): init'ed(new ArrayList(Category#3) num objects)
    //#post(void blogEntryPublished(BlogEntryEvent)): init'ed(new Category(getCategory#2) num objects)
    //#post(void blogEntryPublished(BlogEntryEvent)): init'ed(new Category(getCategory#2).__Tag)
    //#post(void blogEntryPublished(BlogEntryEvent)): possibly_updated(new Category(getCategory#2).blog)
    //#post(void blogEntryPublished(BlogEntryEvent)): init'ed(new Category(getCategory#2).blogEntries)
    //#post(void blogEntryPublished(BlogEntryEvent)): possibly_updated(new Category(getCategory#2).id)
    //#post(void blogEntryPublished(BlogEntryEvent)): init'ed(new Category(getCategory#2).name)
    //#post(void blogEntryPublished(BlogEntryEvent)): possibly_updated(new Category(getCategory#2).parent)
    //#post(void blogEntryPublished(BlogEntryEvent)): init'ed(new Category(getCategory#2).subCategories)
    //#post(void blogEntryPublished(BlogEntryEvent)): init'ed(new Category(getCategory#2).tags)
    //#post(void blogEntryPublished(BlogEntryEvent)): init'ed(new Category(getCategory#2).tagsAsList)
    //#post(void blogEntryPublished(BlogEntryEvent)): init'ed(new Category(getCategory#3) num objects)
    //#post(void blogEntryPublished(BlogEntryEvent)): init'ed(new Category(getCategory#3).__Tag)
    //#post(void blogEntryPublished(BlogEntryEvent)): possibly_updated(new Category(getCategory#3).blog)
    //#post(void blogEntryPublished(BlogEntryEvent)): init'ed(new Category(getCategory#3).blogEntries)
    //#post(void blogEntryPublished(BlogEntryEvent)): possibly_updated(new Category(getCategory#3).id)
    //#post(void blogEntryPublished(BlogEntryEvent)): init'ed(new Category(getCategory#3).name)
    //#post(void blogEntryPublished(BlogEntryEvent)): possibly_updated(new Category(getCategory#3).parent)
    //#post(void blogEntryPublished(BlogEntryEvent)): init'ed(new Category(getCategory#3).subCategories)
    //#post(void blogEntryPublished(BlogEntryEvent)): init'ed(new Category(getCategory#3).tags)
    //#post(void blogEntryPublished(BlogEntryEvent)): init'ed(new Category(getCategory#3).tagsAsList)
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:isPublished
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent:getSource
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.lang.String:equals
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:getId
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:writeIndex
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:getCategories
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:getBlogEntries
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:net.sourceforge.pebble.domain.Blog:getIndexesDirectory
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.io.File
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.io.FileWriter
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter:write
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter:newLine
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter:flush
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter:close
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:org.apache.commons.logging.Log:error
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.util.Set:iterator
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:addBlogEntry
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:getSubCategories
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:getCategory
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.lang.String:startsWith
    //#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:net.sourceforge.pebble.domain.Blog:getLocale
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:net.sourceforge.pebble.util.I18n:getMessage
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:net.sourceforge.pebble.domain.Category
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:addCategory
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.lang.String:indexOf
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.lang.String:substring
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.lang.String:lastIndexOf
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:setBlog
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:isRootCategory
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:addSubCategory
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.util.List:add
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.util.List:addAll
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.util.Collections:sort
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.util.HashSet
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.util.List:contains
    //#unanalyzed(void blogEntryPublished(BlogEntryEvent)): Effects-of-calling:java.util.Collections:unmodifiableList
    blogEntry.getBlog().getCategoryIndex().index(blogEntry);
    //#categoryindexlistener.java:68: ?null dereference
    //#    net/sourceforge/pebble/domain/Blog.__Descendant_Table[getBlog(...).__Tag] != null
    //#    severity: SUPPRESSED
    //#    class: net.sourceforge.pebble.index.CategoryIndexListener
    //#    method: void blogEntryPublished(BlogEntryEvent)
    //#    basic block: Entry_BB_1
    //#    assertion: net/sourceforge/pebble/domain/Blog.__Descendant_Table[getBlog(...).__Tag] != null
    //#    VN: net/sourceforge/pebble/domain/Blog.__Descendant_Table[getBlog(...).__Tag]
    //#    Expected: Inverse{null}
    //#    Bad: Addr_Set{null}
    //#    Attribs:  Ptr  null in Bad
    //#categoryindexlistener.java:68: ?null dereference
    //#    net/sourceforge/pebble/index/CategoryIndex.__Descendant_Table[getCategoryIndex(...).__Tag] != null
    //#    severity: SUPPRESSED
    //#    class: net.sourceforge.pebble.index.CategoryIndexListener
    //#    method: void blogEntryPublished(BlogEntryEvent)
    //#    basic block: Entry_BB_1
    //#    assertion: net/sourceforge/pebble/index/CategoryIndex.__Descendant_Table[getCategoryIndex(...).__Tag] != null
    //#    VN: net/sourceforge/pebble/index/CategoryIndex.__Descendant_Table[getCategoryIndex(...).__Tag]
    //#    Expected: Inverse{null}
    //#    Bad: Addr_Set{null}
    //#    Attribs:  Ptr  null in Bad
  }
    //#categoryindexlistener.java:69: end of method: void net.sourceforge.pebble.index.CategoryIndexListener.blogEntryPublished(BlogEntryEvent)

  /**
   * Called when a blog entry has been unpublished.
   *
   * @param event a BlogEntryEvent instance
   */
  public void blogEntryUnpublished(BlogEntryEvent event) {
    BlogEntry blogEntry = event.getBlogEntry();
    //#categoryindexlistener.java:77: method: void net.sourceforge.pebble.index.CategoryIndexListener.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/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.getCategories()Ljava/util/List;
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Blog.__Dispatch_Table.getCategoryIndex()Lnet/sourceforge/pebble/index/CategoryIndex;
    //#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.getId()Ljava/lang/String;
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Descendant_Table[net/sourceforge/pebble/domain/Category]
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Descendant_Table[others]
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.addSubCategory(Lnet/sourceforge/pebble/domain/Category;)V
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.getBlogEntries()Ljava/util/List;
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.getId()Ljava/lang/String;
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.getParent()Lnet/sourceforge/pebble/domain/Category;
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.getSubCategories()Ljava/util/List;
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.isRootCategory()Z
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.removeBlogEntry(Ljava/lang/String;)V
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.setBlog(Lnet/sourceforge/pebble/domain/Blog;)V
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.setId(Ljava/lang/String;)V
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/domain/Category.__Dispatch_Table.setParent(Lnet/sourceforge/pebble/domain/Category;)V
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/domain/CategoryBuilder.__Descendant_Table[net/sourceforge/pebble/domain/CategoryBuilder]
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/domain/CategoryBuilder.__Descendant_Table[others]
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/domain/CategoryBuilder.__Dispatch_Table.addCategory(Lnet/sourceforge/pebble/domain/Category;)V
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/domain/CategoryBuilder.__Dispatch_Table.getCategories()Ljava/util/List;
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/domain/CategoryBuilder.__Dispatch_Table.getCategories(Lnet/sourceforge/pebble/domain/Category;)Ljava/util/List;
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/domain/CategoryBuilder.__Dispatch_Table.getRootCategory()Lnet/sourceforge/pebble/domain/Category;
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/index/CategoryIndex.__Descendant_Table[net/sourceforge/pebble/index/CategoryIndex]
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/index/CategoryIndex.__Descendant_Table[others]
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/index/CategoryIndex.__Dispatch_Table.unindex(Lnet/sourceforge/pebble/domain/BlogEntry;)V
    //#input(void blogEntryUnpublished(BlogEntryEvent)): net/sourceforge/pebble/index/CategoryIndex.log
    //#output(void blogEntryUnpublished(BlogEntryEvent)): new ArrayList(Category#1) num objects
    //#output(void blogEntryUnpublished(BlogEntryEvent)): new ArrayList(Category#2) num objects
    //#output(void blogEntryUnpublished(BlogEntryEvent)): new ArrayList(Category#3) num objects
    //#output(void blogEntryUnpublished(BlogEntryEvent)): new Category(getCategory#2) num objects
    //#output(void blogEntryUnpublished(BlogEntryEvent)): new Category(getCategory#2).__Tag
    //#output(void blogEntryUnpublished(BlogEntryEvent)): new Category(getCategory#2).blog
    //#output(void blogEntryUnpublished(BlogEntryEvent)): new Category(getCategory#2).blogEntries
    //#output(void blogEntryUnpublished(BlogEntryEvent)): new Category(getCategory#2).id
    //#output(void blogEntryUnpublished(BlogEntryEvent)): new Category(getCategory#2).name
    //#output(void blogEntryUnpublished(BlogEntryEvent)): new Category(getCategory#2).parent
    //#output(void blogEntryUnpublished(BlogEntryEvent)): new Category(getCategory#2).subCategories
    //#output(void blogEntryUnpublished(BlogEntryEvent)): new Category(getCategory#2).tags
    //#output(void blogEntryUnpublished(BlogEntryEvent)): new Category(getCategory#2).tagsAsList
    //#output(void blogEntryUnpublished(BlogEntryEvent)): new Category(getCategory#3) num objects
    //#output(void blogEntryUnpublished(BlogEntryEvent)): new Category(getCategory#3).__Tag
    //#output(void blogEntryUnpublished(BlogEntryEvent)): new Category(getCategory#3).blog
    //#output(void blogEntryUnpublished(BlogEntryEvent)): new Category(getCategory#3).blogEntries
    //#output(void blogEntryUnpublished(BlogEntryEvent)): new Category(getCategory#3).id
    //#output(void blogEntryUnpublished(BlogEntryEvent)): new Category(getCategory#3).name
    //#output(void blogEntryUnpublished(BlogEntryEvent)): new Category(getCategory#3).parent
    //#output(void blogEntryUnpublished(BlogEntryEvent)): new Category(getCategory#3).subCategories
    //#output(void blogEntryUnpublished(BlogEntryEvent)): new Category(getCategory#3).tags
    //#output(void blogEntryUnpublished(BlogEntryEvent)): new Category(getCategory#3).tagsAsList
    //#new obj(void blogEntryUnpublished(BlogEntryEvent)): new ArrayList(Category#1)
    //#new obj(void blogEntryUnpublished(BlogEntryEvent)): new ArrayList(Category#2)
    //#new obj(void blogEntryUnpublished(BlogEntryEvent)): new ArrayList(Category#3)
    //#new obj(void blogEntryUnpublished(BlogEntryEvent)): new Category(getCategory#2)
    //#new obj(void blogEntryUnpublished(BlogEntryEvent)): new Category(getCategory#3)
    //#pre[1] (void blogEntryUnpublished(BlogEntryEvent)): event != null
    //#pre[2] (void blogEntryUnpublished(BlogEntryEvent)): event.__Tag == net/sourceforge/pebble/api/event/blogentry/BlogEntryEvent
    //#presumption(void blogEntryUnpublished(BlogEntryEvent)): blogEntry.blog@77 != null
    //#presumption(void blogEntryUnpublished(BlogEntryEvent)): getBlog(...).categoryIndex@77 != null
    //#presumption(void blogEntryUnpublished(BlogEntryEvent)): getCategoryIndex(...).blog.__Tag@77 == net/sourceforge/pebble/domain/Blog
    //#presumption(void blogEntryUnpublished(BlogEntryEvent)): getCategoryIndex(...).blog@77 != 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 is init'ed
    //#post(void blogEntryUnpublished(BlogEntryEvent)): init'ed(new ArrayList(Category#1) num objects)
    //#post(void blogEntryUnpublished(BlogEntryEvent)): init'ed(new ArrayList(Category#2) num objects)
    //#post(void blogEntryUnpublished(BlogEntryEvent)): init'ed(new ArrayList(Category#3) num objects)
    //#post(void blogEntryUnpublished(BlogEntryEvent)): init'ed(new Category(getCategory#2) num objects)
    //#post(void blogEntryUnpublished(BlogEntryEvent)): init'ed(new Category(getCategory#2).__Tag)
    //#post(void blogEntryUnpublished(BlogEntryEvent)): possibly_updated(new Category(getCategory#2).blog)
    //#post(void blogEntryUnpublished(BlogEntryEvent)): init'ed(new Category(getCategory#2).blogEntries)
    //#post(void blogEntryUnpublished(BlogEntryEvent)): possibly_updated(new Category(getCategory#2).id)
    //#post(void blogEntryUnpublished(BlogEntryEvent)): init'ed(new Category(getCategory#2).name)
    //#post(void blogEntryUnpublished(BlogEntryEvent)): possibly_updated(new Category(getCategory#2).parent)
    //#post(void blogEntryUnpublished(BlogEntryEvent)): possibly_updated(new Category(getCategory#2).subCategories)
    //#post(void blogEntryUnpublished(BlogEntryEvent)): init'ed(new Category(getCategory#2).tags)
    //#post(void blogEntryUnpublished(BlogEntryEvent)): init'ed(new Category(getCategory#2).tagsAsList)
    //#post(void blogEntryUnpublished(BlogEntryEvent)): init'ed(new Category(getCategory#3) num objects)
    //#post(void blogEntryUnpublished(BlogEntryEvent)): init'ed(new Category(getCategory#3).__Tag)
    //#post(void blogEntryUnpublished(BlogEntryEvent)): possibly_updated(new Category(getCategory#3).blog)
    //#post(void blogEntryUnpublished(BlogEntryEvent)): init'ed(new Category(getCategory#3).blogEntries)
    //#post(void blogEntryUnpublished(BlogEntryEvent)): possibly_updated(new Category(getCategory#3).id)
    //#post(void blogEntryUnpublished(BlogEntryEvent)): init'ed(new Category(getCategory#3).name)
    //#post(void blogEntryUnpublished(BlogEntryEvent)): possibly_updated(new Category(getCategory#3).parent)
    //#post(void blogEntryUnpublished(BlogEntryEvent)): possibly_updated(new Category(getCategory#3).subCategories)
    //#post(void blogEntryUnpublished(BlogEntryEvent)): init'ed(new Category(getCategory#3).tags)
    //#post(void blogEntryUnpublished(BlogEntryEvent)): init'ed(new Category(getCategory#3).tagsAsList)
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent:getSource
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:getId
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:writeIndex
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:getCategories
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:removeBlogEntry
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:getBlogEntries
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:net.sourceforge.pebble.domain.Blog:getIndexesDirectory
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.io.File
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.io.FileWriter
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter:write
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter:newLine
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter:flush
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.io.BufferedWriter:close
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:org.apache.commons.logging.Log:error
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:getSubCategories
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:getCategory
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.lang.String:startsWith
    //#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:java.lang.String:equals
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:net.sourceforge.pebble.domain.Blog:getLocale
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:net.sourceforge.pebble.util.I18n:getMessage
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:net.sourceforge.pebble.domain.Category
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:addCategory
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.lang.String:indexOf
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.lang.String:substring
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.lang.String:lastIndexOf
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:setBlog
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:isRootCategory
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:addSubCategory
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.util.List:add
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.util.List:addAll
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.util.Collections:sort
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.util.List:remove
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.util.List:contains
    //#unanalyzed(void blogEntryUnpublished(BlogEntryEvent)): Effects-of-calling:java.util.Collections:unmodifiableList
    blogEntry.getBlog().getCategoryIndex().unindex(blogEntry);
    //#categoryindexlistener.java:78: ?null dereference
    //#    net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[blogEntry.__Tag] != null
    //#    severity: SUPPRESSED
    //#    class: net.sourceforge.pebble.index.CategoryIndexListener
    //#    method: void blogEntryUnpublished(BlogEntryEvent)
    //#    basic block: Entry_BB_1
    //#    assertion: net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[blogEntry.__Tag] != null
    //#    VN: net/sourceforge/pebble/domain/BlogEntry.__Descendant_Table[blogEntry.__Tag]
    //#    Expected: Inverse{null}
    //#    Bad: Addr_Set{null}
    //#    Attribs:  Ptr  null in Bad
    //#categoryindexlistener.java:78: ?null dereference
    //#    net/sourceforge/pebble/domain/Blog.__Descendant_Table[getBlog(...).__Tag] != null
    //#    severity: SUPPRESSED
    //#    class: net.sourceforge.pebble.index.CategoryIndexListener
    //#    method: void blogEntryUnpublished(BlogEntryEvent)
    //#    basic block: Entry_BB_1
    //#    assertion: net/sourceforge/pebble/domain/Blog.__Descendant_Table[getBlog(...).__Tag] != null
    //#    VN: net/sourceforge/pebble/domain/Blog.__Descendant_Table[getBlog(...).__Tag]
    //#    Expected: Inverse{null}
    //#    Bad: Addr_Set{null}
    //#    Attribs:  Ptr  null in Bad
    //#categoryindexlistener.java:78: ?null dereference
    //#    net/sourceforge/pebble/index/CategoryIndex.__Descendant_Table[getCategoryIndex(...).__Tag] != null
    //#    severity: SUPPRESSED
    //#    class: net.sourceforge.pebble.index.CategoryIndexListener
    //#    method: void blogEntryUnpublished(BlogEntryEvent)
    //#    basic block: Entry_BB_1
    //#    assertion: net/sourceforge/pebble/index/CategoryIndex.__Descendant_Table[getCategoryIndex(...).__Tag] != null
    //#    VN: net/sourceforge/pebble/index/CategoryIndex.__Descendant_Table[getCategoryIndex(...).__Tag]
    //#    Expected: Inverse{null}
    //#    Bad: Addr_Set{null}
    //#    Attribs:  Ptr  null in Bad
  }
    //#categoryindexlistener.java:79: end of method: void net.sourceforge.pebble.index.CategoryIndexListener.blogEntryUnpublished(BlogEntryEvent)

}
    //#output(net.sourceforge.pebble.index.CategoryIndexListener__static_init): __Descendant_Table[net/sourceforge/pebble/index/CategoryIndexListener]
    //#output(net.sourceforge.pebble.index.CategoryIndexListener__static_init): __Dispatch_Table.blogEntryAdded(Lnet/sourceforge/pebble/api/event/blogentry/BlogEntryEvent;)V
    //#output(net.sourceforge.pebble.index.CategoryIndexListener__static_init): __Dispatch_Table.blogEntryChanged(Lnet/sourceforge/pebble/api/event/blogentry/BlogEntryEvent;)V
    //#output(net.sourceforge.pebble.index.CategoryIndexListener__static_init): __Dispatch_Table.blogEntryPublished(Lnet/sourceforge/pebble/api/event/blogentry/BlogEntryEvent;)V
    //#output(net.sourceforge.pebble.index.CategoryIndexListener__static_init): __Dispatch_Table.blogEntryRemoved(Lnet/sourceforge/pebble/api/event/blogentry/BlogEntryEvent;)V
    //#output(net.sourceforge.pebble.index.CategoryIndexListener__static_init): __Dispatch_Table.blogEntryUnpublished(Lnet/sourceforge/pebble/api/event/blogentry/BlogEntryEvent;)V
    //#output(net.sourceforge.pebble.index.CategoryIndexListener__static_init): net/sourceforge/pebble/api/event/blogentry/BlogEntryListener.__Descendant_Table[net/sourceforge/pebble/index/CategoryIndexListener]
    //#post(net.sourceforge.pebble.index.CategoryIndexListener__static_init): __Descendant_Table[net/sourceforge/pebble/index/CategoryIndexListener] == &__Dispatch_Table
    //#post(net.sourceforge.pebble.index.CategoryIndexListener__static_init): net/sourceforge/pebble/api/event/blogentry/BlogEntryListener.__Descendant_Table[net/sourceforge/pebble/index/CategoryIndexListener] == &__Dispatch_Table
    //#post(net.sourceforge.pebble.index.CategoryIndexListener__static_init): __Dispatch_Table.blogEntryAdded(Lnet/sourceforge/pebble/api/event/blogentry/BlogEntryEvent;)V == &blogEntryAdded
    //#post(net.sourceforge.pebble.index.CategoryIndexListener__static_init): __Dispatch_Table.blogEntryChanged(Lnet/sourceforge/pebble/api/event/blogentry/BlogEntryEvent;)V == &blogEntryChanged
    //#post(net.sourceforge.pebble.index.CategoryIndexListener__static_init): __Dispatch_Table.blogEntryPublished(Lnet/sourceforge/pebble/api/event/blogentry/BlogEntryEvent;)V == &blogEntryPublished
    //#post(net.sourceforge.pebble.index.CategoryIndexListener__static_init): __Dispatch_Table.blogEntryRemoved(Lnet/sourceforge/pebble/api/event/blogentry/BlogEntryEvent;)V == &blogEntryRemoved
    //#post(net.sourceforge.pebble.index.CategoryIndexListener__static_init): __Dispatch_Table.blogEntryUnpublished(Lnet/sourceforge/pebble/api/event/blogentry/BlogEntryEvent;)V == &blogEntryUnpublished
    //#categoryindexlistener.java:: end of method: net.sourceforge.pebble.index.CategoryIndexListener.net.sourceforge.pebble.index.CategoryIndexListener__static_init
    //#categoryindexlistener.java:: end of class: net.sourceforge.pebble.index.CategoryIndexListener
