abstractemailnotificationlistener.java

### 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