File Source: trackback.java

         /* 
    P/P   *  Method: net.sourceforge.pebble.domain.TrackBack__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.domain;
    33  
    34  import net.sourceforge.pebble.api.event.trackback.TrackBackEvent;
    35  
    36  import java.util.Date;
    37  
    38  /**
    39   * Represents a MovableType TrackBack - see
    40   * http://www.movabletype.org/docs/mttrackback.html for more information.
    41   *
    42   * @author    Simon Brown
    43   */
    44  public class TrackBack extends Response {
    45  
    46    /** the excerpt */
    47    private String excerpt;
    48  
    49    /** the url */
    50    private String url;
    51  
    52    /** the blog name */
    53    private String blogName;
    54  
    55    /**
    56     * Creates a new TrackBack with the specified properties.
    57     *
    58     * @param title       the title of the entry
    59     * @param excerpt     the excerpt of the entry
    60     * @param url         the url (permalink) of the entry
    61     * @param blogName    the name of the blog
    62     * @param ipAddress   the IP address of the author
    63     * @param date        the date that this TrackBack was left
    64     * @param state       the stats of this TrackBack
    65     * @param blogEntry   the owning blog entry
    66     */
    67    TrackBack(String title, String excerpt, String url, String blogName, String ipAddress, Date date, State state, BlogEntry blogEntry) {
             /* 
    P/P       *  Method: void net.sourceforge.pebble.domain.TrackBack(String, String, String, String, String, Date, State, BlogEntry)
              * 
              *  Preconditions:
              *    (soft) blogEntry != null
              * 
              *  Postconditions:
              *    this.blogEntry == blogEntry
              *    (soft) this.blogEntry != null
              *    this.blogName == One-of{blogName, &""}
              *    this.blogName != null
              *    init'ed(this.date)
              *    this.events == &new ArrayList(Content#1)
              *    init'ed(this.eventsEnabled)
              *    this.excerpt == One-of{excerpt, &""}
              *    this.excerpt != null
              *    this.ipAddress == One-of{null, ipAddress}
              *    ...
              */
    68      super(title, ipAddress, date, state, blogEntry);
    69  
    70      setExcerpt(excerpt);
    71      setUrl(url);
    72      setBlogName(blogName);
    73    }
    74  
    75    /**
    76     * Gets the title of the blog entry for this trackback.
    77     *
    78     * @return  the title as a String
    79     */
    80    public String getTitle() {
             /* 
    P/P       *  Method: String getTitle()
              * 
              *  Preconditions:
              *    init'ed(this.title)
              *    (soft) init'ed(this.url)
              * 
              *  Postconditions:
              *    return_value == One-of{this.title, this.url}
              *    (soft) init'ed(return_value)
              * 
              *  Test Vectors:
              *    this.title: Addr_Set{null}, Inverse{null}
              *    java.lang.String:length(...)@81: {0}, {1..232-1}
              */
    81      if (title != null && title.length() > 0) {
    82        return title;
    83      } else {
    84        return url;
    85      }
    86    }
    87  
    88    /**
    89     * Gets the excerpt of the blog entry for this trackback.
    90     *
    91     * @return  return the excerpt as a String
    92     */
    93    public String getExcerpt() {
             /* 
    P/P       *  Method: String getExcerpt()
              * 
              *  Preconditions:
              *    init'ed(this.excerpt)
              * 
              *  Postconditions:
              *    return_value == this.excerpt
              *    init'ed(return_value)
              */
    94      return excerpt;
    95    }
    96  
    97    /**
    98     * Sets the excerpt of the blog entry for this trackback.
    99     *
   100     * @param   excerpt   the excerpt as a String
   101     */
   102    public void setExcerpt(String excerpt) {
             /* 
    P/P       *  Method: void setExcerpt(String)
              * 
              *  Postconditions:
              *    this.excerpt == One-of{excerpt, &""}
              *    this.excerpt != null
              * 
              *  Test Vectors:
              *    excerpt: Addr_Set{null}, Inverse{null}
              */
   103      if (excerpt != null) {
   104        this.excerpt = excerpt;
   105      } else {
   106        this.excerpt = "";
   107      }
   108    }
   109  
   110    /**
   111     * Gets the content of this response.
   112     *
   113     * @return a String
   114     */
   115    public String getContent() {
             /* 
    P/P       *  Method: String getContent()
              * 
              *  Preconditions:
              *    init'ed(this.excerpt)
              * 
              *  Postconditions:
              *    return_value == this.excerpt
              *    init'ed(return_value)
              */
   116      return getExcerpt();
   117    }
   118  
   119    /**
   120     * Gets the url (permalink) of the blog entry for this trackback.
   121     *
   122     * @return  return the url as a String
   123     */
   124    public String getUrl() {
             /* 
    P/P       *  Method: String getUrl()
              * 
              *  Preconditions:
              *    init'ed(this.url)
              * 
              *  Postconditions:
              *    return_value == this.url
              *    init'ed(return_value)
              */
   125      return url;
   126    }
   127  
   128    /**
   129     * Gets the link to the source of this response.
   130     *
   131     * @return a String
   132     */
   133    public String getSourceLink() {
             /* 
    P/P       *  Method: String getSourceLink()
              * 
              *  Preconditions:
              *    init'ed(this.url)
              * 
              *  Postconditions:
              *    return_value == this.url
              *    init'ed(return_value)
              */
   134      return getUrl();
   135    }
   136  
   137    /**
   138     * Sets the url (permalink) of the blog entry for this trackback.
   139     *
   140     * @param url   the url as a String
   141     */
   142    public void setUrl(String url) {
             /* 
    P/P       *  Method: void setUrl(String)
              * 
              *  Postconditions:
              *    this.url == url
              *    init'ed(this.url)
              */
   143      this.url = url;
   144    }
   145  
   146    /**
   147     * Gets the name of the blog for this trackback.
   148     *
   149     * @return  return the name as a String
   150     */
   151    public String getBlogName() {
             /* 
    P/P       *  Method: String getBlogName()
              * 
              *  Preconditions:
              *    init'ed(this.blogName)
              * 
              *  Postconditions:
              *    return_value == this.blogName
              *    init'ed(return_value)
              */
   152      return blogName;
   153    }
   154  
   155    /**
   156     * Gets the name of the source of this response.
   157     *
   158     * @return a String
   159     */
   160    public String getSourceName() {
             /* 
    P/P       *  Method: String getSourceName()
              * 
              *  Preconditions:
              *    init'ed(this.blogName)
              * 
              *  Postconditions:
              *    return_value == this.blogName
              *    init'ed(return_value)
              */
   161      return getBlogName();
   162    }
   163  
   164    /**
   165     * Sets the name of the blog for this trackback.
   166     *
   167     * @param   blogName    the name as a String
   168     */
   169    public void setBlogName(String blogName) {
             /* 
    P/P       *  Method: void setBlogName(String)
              * 
              *  Postconditions:
              *    this.blogName == One-of{blogName, &""}
              *    this.blogName != null
              * 
              *  Test Vectors:
              *    blogName: Addr_Set{null}, Inverse{null}
              */
   170      if (blogName != null) {
   171        this.blogName = blogName;
   172      } else {
   173        this.blogName = "";
   174      }
   175    }
   176  
   177    /**
   178     * Gets the permalink for this TrackBack.
   179     *
   180     * @return  a URL as a String
   181     */
   182    public String getPermalink() {
             /* 
    P/P       *  Method: String getPermalink()
              * 
              *  Preconditions:
              *    init'ed(this.blogEntry)
              *    (soft) init'ed(this.blogEntry.permalink)
              *    (soft) this.blogEntry.blog != null
              *    (soft) this.date != null
              * 
              *  Postconditions:
              *    return_value != null
              * 
              *  Preconditions:
              *    (soft) net/sourceforge/pebble/domain/BlogManager.instance != null
              * 
              *  Postconditions:
              *    init'ed(this.blogEntry.permalink)
              * 
              *  Preconditions:
              *    (soft) init'ed(net/sourceforge/pebble/domain/BlogManager.instance.multiBlog)
              *    (soft) init'ed(this.blogEntry.blog.id)
              *    (soft) this.blogEntry.blog.permalinkProvider != null
              * 
              *  Test Vectors:
              *    this.blogEntry: Addr_Set{null}, Inverse{null}
              */
   183      if (blogEntry != null) {
   184        return blogEntry.getLocalPermalink() + "#trackback" + getId();
   185      } else {
   186        return "";
   187      }
   188    }
   189  
   190    /**
   191     * Creates and returns a copy of this object.
   192     *
   193     * @return a clone of this instance.
   194     * @see Cloneable
   195     */
   196    public Object clone() {
             /* 
    P/P       *  Method: Object clone()
              * 
              *  Preconditions:
              *    (soft) this.blogEntry != null
              * 
              *  Postconditions:
              *    (soft) return_value.blogEntry != null
              * 
              *  Preconditions:
              *    init'ed(this.blogName)
              *    init'ed(this.date)
              *    init'ed(this.excerpt)
              *    init'ed(this.ipAddress)
              *    init'ed(this.state)
              *    init'ed(this.title)
              *    init'ed(this.url)
              * 
              *  Postconditions:
              *    return_value == &new TrackBack(clone#1)
              *    new ArrayList(Content#1) num objects == 1
              *    new ArrayList(Content#3) num objects == 1
              *    new PropertyChangeSupport(Content#2) num objects == 1
              *    new TrackBack(clone#1) num objects == 1
              *    return_value.blogEntry == this.blogEntry
              *    return_value.blogName == One-of{this.blogName, &""}
              *    return_value.blogName != null
              *    init'ed(return_value.date)
              *    return_value.events == &new ArrayList(Content#1)
              *    ...
              */
   197      TrackBack trackBack = new TrackBack(title, excerpt, url, blogName, ipAddress, date, getState(), blogEntry);
   198      return trackBack;
   199    }
   200  
   201    /**
   202     * Sets the state of this TrackBack.
   203     */
   204    void setState(State state) {
             /* 
    P/P       *  Method: void setState(State)
              * 
              *  Preconditions:
              *    init'ed(this.eventsEnabled)
              *    (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#2).name != null
              *    (soft) this.blogEntry != null
              *    (soft) this.state != null
              *    (soft) init'ed(this.state.name)
              * 
              *  Test Vectors:
              *    this.eventsEnabled: {0}, {1}
              */
   205      State previousState = getState();
   206      super.setState(state);
   207  
   208      if (areEventsEnabled()) {
   209        if (isApproved() && previousState != State.APPROVED) {
   210          blogEntry.addEvent(new TrackBackEvent(this, TrackBackEvent.TRACKBACK_APPROVED));
   211        } else if (isRejected() && previousState != State.REJECTED) {
   212          blogEntry.addEvent(new TrackBackEvent(this, TrackBackEvent.TRACKBACK_REJECTED));
   213        }
   214      }
   215    }
   216  
   217  }








SofCheck Inspector Build Version : 2.22510
trackback.java 2010-Jun-25 19:40:32
trackback.class 2010-Jul-19 20:23:40