tagindexlistener.java

### File Source: tagindexlistener.java

         1  package net.sourceforge.pebble.index;
         2
         3  import net.sourceforge.pebble.api.event.blogentry.BlogEntryListener;
         4  import net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent;
         5  import net.sourceforge.pebble.domain.BlogEntry;
         6
         7  import java.util.Iterator;
         8  import java.util.List;
         9  import java.beans.PropertyChangeEvent;
        10
        11  public class TagIndexListener implements BlogEntryListener {
        12
        13    /**
        14     * Called when a blog entry has been added.
        15     *
        16     * @param event a BlogEntryEvent instance
        17     */
        18    public void blogEntryAdded(BlogEntryEvent event) {
                 /*
        P/P       *  Method: void blogEntryAdded(BlogEntryEvent)
                  *
                  *  Preconditions:
                  *    event != null
                  *    (soft) net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#5).name != null
                  *
                  *  Presumptions:
                  *    blogEntry.blog@20 != null
                  *    blogEntry.blog.rootCategory@20 != null
                  *    blogEntry.state@19 != null
                  *    blogEntry.state@20 != null
                  *    blogEntry.tagsAsList@20 != null
                  *    ...
                  */
        19      BlogEntry blogEntry = event.getBlogEntry();
        20      if (blogEntry.isPublished()) {
        21        blogEntry.getBlog().getTagIndex().index(blogEntry);
        22      }
        23    }
        24
        25    /**
        26     * Called when a blog entry has been removed.
        27     *
        28     * @param event a BlogEntryEvent instance
        29     */
        30    public void blogEntryRemoved(BlogEntryEvent event) {
                 /*
        P/P       *  Method: void blogEntryRemoved(BlogEntryEvent)
                  *
                  *  Preconditions:
                  *    event != null
                  *
                  *  Presumptions:
                  *    blogEntry.blog@31 != null
                  *    net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent:getSource(...)@91 != null
                  *    getBlog(...).tagIndex@31 != null
                  *    getTagIndex(...).blog@31 != null
                  *    getTagIndex(...).tags@31 != null
                  */
        31      BlogEntry blogEntry = event.getBlogEntry();
        32      blogEntry.getBlog().getTagIndex().unindex(blogEntry);
        33    }
        34
        35    /**
        36     * Called when a blog entry has been changed.
        37     *
        38     * @param event a BlogEntryEvent instance
        39     */
        40    public void blogEntryChanged(BlogEntryEvent event) {
                 /*
        P/P       *  Method: void blogEntryChanged(BlogEntryEvent)
                  *
                  *  Preconditions:
                  *    event != null
                  *    (soft) event.propertyChangeEvents != null
                  *    (soft) net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#5).name != null
                  *
                  *  Presumptions:
                  *    blogEntry.blog@43 != null
                  *    blogEntry.blog@52 != null
                  *    blogEntry.state@41 != null
                  *    blogEntry.state@52 != null
                  *    blogEntry.tagsAsList@52 != null
                  *    ...
                  *
                  *  Test Vectors:
                  *    java.lang.String:equals(...)@51: {1}, {0}
                  *    java.lang.String:equals(...)@51: {0}, {1}
                  *    java.util.Iterator:hasNext(...)@46: {1}, {0}
                  */
        41      BlogEntry blogEntry = event.getBlogEntry();
        42
        43      if (blogEntry.isPublished()) {
        44        List propertyChangeEvents = event.getPropertyChangeEvents();
        45        Iterator it = propertyChangeEvents.iterator();
        46        while (it.hasNext()) {
        47          PropertyChangeEvent pce = (PropertyChangeEvent)it.next();
        48          String property = pce.getPropertyName();
        49
        50          // only if the tags or categories change do we need to reindex the tags
        51          if (property.equals(BlogEntry.TAGS_PROPERTY) || property.equals(BlogEntry.CATEGORIES_PROPERTY)) {
        52            blogEntry.getBlog().getTagIndex().unindex(blogEntry);
        53            blogEntry.getBlog().getTagIndex().index(blogEntry);
        54          }
        55        }
        56      }
        57    }
        58
        59    /**
        60     * Called when a blog entry has been published.
        61     *
        62     * @param event a BlogEntryEvent instance
        63     */
        64    public void blogEntryPublished(BlogEntryEvent event) {
                 /*
        P/P       *  Method: void blogEntryPublished(BlogEntryEvent)
                  *
                  *  Preconditions:
                  *    event != null
                  *    (soft) net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#5).name != null
                  *
                  *  Presumptions:
                  *    blogEntry.blog@65 != null
                  *    blogEntry.state@65 != null
                  *    blogEntry.tagsAsList@65 != null
                  *    net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent:getSource(...)@91 != null
                  *    blogEntry.blog.rootCategory@65 != null
                  *    ...
                  */
        65      BlogEntry blogEntry = event.getBlogEntry();
        66      blogEntry.getBlog().getTagIndex().index(blogEntry);
        67    }
        68
        69    /**
        70     * Called when a blog entry has been unpublished.
        71     *
        72     * @param event a BlogEntryEvent instance
        73     */
        74    public void blogEntryUnpublished(BlogEntryEvent event) {
                 /*
        P/P       *  Method: void blogEntryUnpublished(BlogEntryEvent)
                  *
                  *  Preconditions:
                  *    event != null
                  *
                  *  Presumptions:
                  *    blogEntry.blog@75 != null
                  *    net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent:getSource(...)@91 != null
                  *    getBlog(...).tagIndex@75 != null
                  *    getTagIndex(...).blog@75 != null
                  *    getTagIndex(...).tags@75 != null
                  */
        75      BlogEntry blogEntry = event.getBlogEntry();
        76      blogEntry.getBlog().getTagIndex().unindex(blogEntry);
        77    }
        78
        79  }

SofCheck Inspector Build Version : 2.22510

tagindexlistener.java | 2010-Jun-25 19:40:32
tagindexlistener.class | 2010-Jul-19 20:23:38