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 |