File Source: searchindexlistener.java

         /* 
    P/P   *  Method: net.sourceforge.pebble.index.SearchIndexListener__static_init
          */
     1  /*
     2   * Copyright (c) 2003-2006, Simon Brown
     3   * All rights reserved.
     4   *
     5   * Redistribution and use in source and binary forms, with or without
     6   * modification, are permitted provided that the following conditions are met:
     7   *
     8   *   - Redistributions of source code must retain the above copyright
     9   *     notice, this list of conditions and the following disclaimer.
    10   *
    11   *   - Redistributions in binary form must reproduce the above copyright
    12   *     notice, this list of conditions and the following disclaimer in
    13   *     the documentation and/or other materials provided with the
    14   *     distribution.
    15   *
    16   *   - Neither the name of Pebble nor the names of its contributors may
    17   *     be used to endorse or promote products derived from this software
    18   *     without specific prior written permission.
    19   *
    20   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    21   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    22   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    23   * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
    24   * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    25   * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    26   * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    27   * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    28   * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    29   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
    30   * POSSIBILITY OF SUCH DAMAGE.
    31   */
    32  package net.sourceforge.pebble.index;
    33  
    34  import net.sourceforge.pebble.domain.BlogEntry;
    35  import net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent;
    36  import net.sourceforge.pebble.api.event.blogentry.BlogEntryListener;
    37  
    38  /**
    39   * Listens to blog entry events and keeps the search index up to date.
    40   *
    41   * @author    Simon Brown
    42   */
         /* 
    P/P   *  Method: void net.sourceforge.pebble.index.SearchIndexListener()
          */
    43  public class SearchIndexListener implements BlogEntryListener {
    44  
    45    /**
    46     * Called when a blog entry has been added.
    47     *
    48     * @param event a BlogEntryEvent instance
    49     */
    50    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@53 != null
              *    blogEntry.state@51 != null
              *    net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent:getSource(...)@91 != null
              * 
              *  Preconditions:
              *    (soft) net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#1).name != null
              *    (soft) net/sourceforge/pebble/domain/BlogManager.instance != null
              *    (soft) init'ed(net/sourceforge/pebble/domain/BlogManager.instance.multiBlog)
              * 
              *  Presumptions:
              *    blogEntry.blog...properties@53 != null
              *    blogEntry.blog.rootCategory@53 != null
              *    blogEntry.blog.searchIndex.blog@53 != null
              *    blogEntry.blog.searchIndex@53 != null
              *    blogEntry.comments@53 != null
              *    ...
              */
    51      BlogEntry blogEntry = event.getBlogEntry();
    52  
    53      if (blogEntry.isPublished()) {
    54        updateSearchIndex(blogEntry);
    55      }
    56    }
    57  
    58    /**
    59     * Called when a blog entry has been removed.
    60     *
    61     * @param event a BlogEntryEvent instance
    62     */
    63    public void blogEntryRemoved(BlogEntryEvent event) {
             /* 
    P/P       *  Method: void blogEntryRemoved(BlogEntryEvent)
              * 
              *  Preconditions:
              *    event != null
              * 
              *  Presumptions:
              *    blogEntry.blog@64 != null
              *    net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent:getSource(...)@91 != null
              *    getBlog(...).searchIndex@64 != null
              *    getSearchIndex(...).blog@64 != null
              */
    64      BlogEntry blogEntry = event.getBlogEntry();
    65  
    66      blogEntry.getBlog().getSearchIndex().unindex(blogEntry);
    67    }
    68  
    69    /**
    70     * Called when a blog entry has been changed.
    71     *
    72     * @param event a BlogEntryEvent instance
    73     */
    74    public void blogEntryChanged(BlogEntryEvent event) {
             /* 
    P/P       *  Method: void blogEntryChanged(BlogEntryEvent)
              * 
              *  Preconditions:
              *    event != null
              *    (soft) net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#5).name != null
              * 
              *  Presumptions:
              *    blogEntry.blog@77 != null
              *    blogEntry.state@75 != null
              *    net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent:getSource(...)@91 != null
              * 
              *  Preconditions:
              *    (soft) net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#1).name != null
              *    (soft) net/sourceforge/pebble/domain/BlogManager.instance != null
              *    (soft) init'ed(net/sourceforge/pebble/domain/BlogManager.instance.multiBlog)
              * 
              *  Presumptions:
              *    blogEntry.blog...properties@77 != null
              *    blogEntry.blog.rootCategory@77 != null
              *    blogEntry.blog.searchIndex.blog@77 != null
              *    blogEntry.blog.searchIndex@77 != null
              *    blogEntry.comments@77 != null
              *    ...
              */
    75      BlogEntry blogEntry = event.getBlogEntry();
    76  
    77      if (blogEntry.isPublished()) {
    78        updateSearchIndex(blogEntry);
    79      }
    80    }
    81  
    82    /**
    83     * Called when a blog entry has been published.
    84     *
    85     * @param event a BlogEntryEvent instance
    86     */
    87    public void blogEntryPublished(BlogEntryEvent event) {
             /* 
    P/P       *  Method: void blogEntryPublished(BlogEntryEvent)
              * 
              *  Preconditions:
              *    event != null
              * 
              *  Presumptions:
              *    blogEntry.blog@88 != null
              *    net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent:getSource(...)@91 != null
              * 
              *  Preconditions:
              *    (soft) net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#1).name != null
              *    (soft) net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#5).name != null
              *    (soft) net/sourceforge/pebble/domain/BlogManager.instance != null
              *    (soft) init'ed(net/sourceforge/pebble/domain/BlogManager.instance.multiBlog)
              * 
              *  Presumptions:
              *    blogEntry.blog...properties@88 != null
              *    blogEntry.blog.rootCategory@88 != null
              *    blogEntry.blog.searchIndex.blog@88 != null
              *    blogEntry.blog.searchIndex@88 != null
              *    blogEntry.comments@88 != null
              *    ...
              */
    88      BlogEntry blogEntry = event.getBlogEntry();
    89      updateSearchIndex(blogEntry);
    90    }
    91  
    92    /**
    93     * Called when a blog entry has been unpublished.
    94     *
    95     * @param event a BlogEntryEvent instance
    96     */
    97    public void blogEntryUnpublished(BlogEntryEvent event) {
             /* 
    P/P       *  Method: void blogEntryUnpublished(BlogEntryEvent)
              * 
              *  Preconditions:
              *    event != null
              * 
              *  Presumptions:
              *    blogEntry.blog@98 != null
              *    net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent:getSource(...)@91 != null
              *    getBlog(...).searchIndex@98 != null
              *    getSearchIndex(...).blog@98 != null
              */
    98      BlogEntry blogEntry = event.getBlogEntry();
    99  
   100      blogEntry.getBlog().getSearchIndex().unindex(blogEntry);
   101    }
   102  
   103    /**
   104     * Updates the search index to reflect the new/changed/removed blog entry.
   105     */
   106    private void updateSearchIndex(BlogEntry blogEntry) {
             /* 
    P/P       *  Method: void updateSearchIndex(BlogEntry)
              * 
              *  Preconditions:
              *    blogEntry != null
              *    blogEntry.blog != null
              *    blogEntry.blog.searchIndex != null
              *    (soft) init'ed(blogEntry.author)
              *    (soft) blogEntry.blog...properties != null
              *    (soft) init'ed(blogEntry.blog.id)
              *    (soft) blogEntry.blog.rootCategory != null
              *    (soft) init'ed(blogEntry.blog.rootCategory...parent)
              *    (soft) init'ed(blogEntry.blog.rootCategory...tagsAsList)
              *    (soft) init'ed(blogEntry.blog.rootCategory.parent)
              *    ...
              * 
              *  Postconditions:
              *    possibly_updated(blogEntry.permalink)
              */
   107      blogEntry.getBlog().getSearchIndex().index(blogEntry);
   108    }
   109  
   110  }








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