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