File Source: abstractemailnotificationlistener.java

         /* 
    P/P   *  Method: net.sourceforge.pebble.event.trackback.AbstractEmailNotificationListener__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.trackback;
    33  
    34  import net.sourceforge.pebble.domain.Blog;
    35  import net.sourceforge.pebble.domain.TrackBack;
    36  import net.sourceforge.pebble.util.MailUtils;
    37  import net.sourceforge.pebble.api.event.trackback.TrackBackEvent;
    38  
    39  import java.text.SimpleDateFormat;
    40  import java.util.Collection;
    41  
    42  /**
    43   * Base class for listeners that send an e-mail notification when new
    44   * TrackBacks are added.
    45   *
    46   * @author Simon Brown
    47   */
         /* 
    P/P   *  Method: void net.sourceforge.pebble.event.trackback.AbstractEmailNotificationListener()
          */
    48  public abstract class AbstractEmailNotificationListener extends TrackBackListenerSupport {
    49  
    50    /**
    51     * Called when a TrackBack has been added.
    52     *
    53     * @param event a TrackBackEvent instance
    54     */
    55    public void trackBackAdded(TrackBackEvent event) {
             /* 
    P/P       *  Method: void trackBackAdded(TrackBackEvent)
              * 
              *  Preconditions:
              *    event != null
              *    (soft) net.sourceforge.pebble.domain.State__static_init.new State(State__static_init#3).name != null
              *    (soft) net/sourceforge/pebble/domain/BlogManager.instance != null
              *    (soft) init'ed(net/sourceforge/pebble/domain/BlogManager.instance.multiBlog)
              * 
              *  Presumptions:
              *    getTrackBack(...).blogEntry.blog.permalinkProvider@56 != null
              *    getTrackBack(...).blogEntry.blog.properties@56 != null
              *    getTrackBack(...).blogEntry.blog@56 != null
              *    getTrackBack(...).blogEntry@56 != null
              *    getTrackBack(...).date@56 != null
              *    ...
              */
    56      sendNotification(event.getTrackBack());
    57    }
    58  
    59    private void sendNotification(TrackBack trackBack) {
             /* 
    P/P       *  Method: void sendNotification(TrackBack)
              * 
              *  Preconditions:
              *    trackBack != null
              *    trackBack.blogEntry != null
              *    trackBack.blogEntry.blog != null
              *    trackBack.blogEntry.blog.properties != null
              *    init'ed(trackBack.blogEntry.title)
              *    init'ed(trackBack.blogName)
              *    init'ed(trackBack.excerpt)
              *    trackBack.state != null
              *    init'ed(trackBack.state.name)
              *    init'ed(trackBack.title)
              *    ...
              * 
              *  Postconditions:
              *    init'ed(trackBack.blogEntry.permalink)
              *    possibly_updated(trackBack.blogEntry.user)
              */
    60      Blog blog = trackBack.getBlogEntry().getBlog();
    61  
    62      SimpleDateFormat sdf = new SimpleDateFormat("dd MMM yyyy HH:mm:ss z");
    63      sdf.setTimeZone(blog.getTimeZone());
    64  
    65      String subject = "[TrackBack-" + trackBack.getState().getName() + "] " + trackBack.getTitle();
    66  
    67      String message = "TrackBack from <a href=\"" + trackBack.getUrl() + "\">" + trackBack.getBlogName() + "</a> on " + sdf.format(trackBack.getDate());
    68      message += " in response to " + trackBack.getBlogEntry().getTitle();
    69      message += "\n\n<br><br>";
    70      message += trackBack.getExcerpt();
    71      message += "\n\n<br><br>";
    72      message += "<a href=\"" + trackBack.getPermalink() + "\">Permalink</a>";
    73  
    74      if (trackBack.isPending()) {
    75        message += " | ";
    76        message += "<a href=\"" + blog.getUrl() + "manageResponses.secureaction?response=" + trackBack.getGuid() + "&submit=Approve" + "\">Approve</a>";
    77        message += " | ";
    78        message += "<a href=\"" + blog.getUrl() + "manageResponses.secureaction?response=" + trackBack.getGuid() + "&submit=Reject" + "\">Reject</a>";
    79      }
    80  
    81      message += " | ";
    82      message += "<a href=\"" + blog.getUrl() + "manageResponses.secureaction?response=" + trackBack.getGuid() + "&submit=Remove" + "\">Remove</a>";
    83  
    84      Collection to = getEmailAddresses(trackBack);
    85  
    86      try {
    87        MailUtils.sendMail(MailUtils.createSession(), blog, to, subject, message);
    88      } catch (Exception e) {
    89        e.printStackTrace();
    90      }
    91    }
    92  
    93    /**
    94     * Returns the collection of recipients.
    95     *
    96     * @param trackBack   the TrackBack from the event
    97     * @return  a Collection of e-mail addresses (Strings)
    98     */
    99    protected abstract Collection getEmailAddresses(TrackBack trackBack);
   100  
   101  }








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