File Source: xmlrpcnotificationlistener.java
/*
P/P * Method: net.sourceforge.pebble.event.blogentry.XmlRpcNotificationListener__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.event.blogentry;
33
34 import net.sourceforge.pebble.domain.BlogEntry;
35 import net.sourceforge.pebble.domain.Blog;
36 import net.sourceforge.pebble.webservice.UpdateNotificationPingsClient;
37 import net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent;
38
39 /**
40 * Sends XML-RPC pings to websites when a blog entry is added.
41 *
42 * @author Simon Brown
43 */
/*
P/P * Method: void net.sourceforge.pebble.event.blogentry.XmlRpcNotificationListener()
*/
44 public class XmlRpcNotificationListener extends BlogEntryListenerSupport {
45
46 /** the name of the URL list property */
47 public static final String URL_LIST_KEY = "XmlRpcNotificationListener.urlList";
48
49 /**
50 * Called when a blog entry has been added.
51 *
52 * @param event a BlogEntryEvent instance
53 */
54 public void blogEntryAdded(BlogEntryEvent event) {
/*
P/P * Method: void blogEntryAdded(BlogEntryEvent)
*
* Preconditions:
* event != null
*
* Presumptions:
* blogEntry.blog.pluginProperties@57 != null
*
* Preconditions:
* (soft) net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#5).name != null
*
* Presumptions:
* blogEntry.blog@57 != null
* blogEntry.state@55 != null
* net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent:getSource(...)@91 != null
*/
55 BlogEntry blogEntry = event.getBlogEntry();
56
57 if (blogEntry.isPublished()) {
58 sendNotification(blogEntry);
59 }
60 }
61
62 /**
63 * Called when a blog entry has been published.
64 *
65 * @param event a BlogEntryEvent instance
66 */
67 public void blogEntryPublished(BlogEntryEvent event) {
/*
P/P * Method: void blogEntryPublished(BlogEntryEvent)
*
* Preconditions:
* event != null
*
* Presumptions:
* getBlogEntry(...).blog.pluginProperties@68 != null
* getBlogEntry(...).blog@68 != null
* net.sourceforge.pebble.api.event.blogentry.BlogEntryEvent:getSource(...)@91 != null
*/
68 sendNotification(event.getBlogEntry());
69 }
70
71 /**
72 * Sends the notification.
73 *
74 * @param blogEntry the BlogEntry instance
75 */
76 private void sendNotification(BlogEntry blogEntry) {
/*
P/P * Method: void sendNotification(BlogEntry)
*
* Preconditions:
* blogEntry != null
* blogEntry.blog.pluginProperties != null
*
* Test Vectors:
* net.sourceforge.pebble.PluginProperties:getProperty(...)@78: Addr_Set{null}, Inverse{null}
*
* Preconditions:
* blogEntry.blog != null
*/
77 Blog blog = blogEntry.getBlog();
78 String urlList = blog.getPluginProperties().getProperty(URL_LIST_KEY);
79 String urls[] = new String[0];
80 if (urlList != null) {
81 urls = urlList.split(",");
82 }
83 UpdateNotificationPingsClient client = new UpdateNotificationPingsClient();
84 client.sendUpdateNotificationPing(blog, urls);
85 }
86 }
SofCheck Inspector Build Version : 2.22510
| xmlrpcnotificationlistener.java |
2010-Jun-25 19:40:32 |
| xmlrpcnotificationlistener.class |
2010-Jul-19 20:23:38 |