/** * Copyright (c) 2003-2005 , David A. Czarnecki * All rights reserved. * * Portions Copyright (c) 2003-2005 by Mark Lussier * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the "David A. Czarnecki" and "blojsom" nor the names of * its contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * Products derived from this software may not be called "blojsom", * nor may "blojsom" appear in their name, without prior written permission of * David A. Czarnecki. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO * EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ package org.blojsom.blog; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.Map; import java.io.Serializable; import org.blojsom.util.BlojsomUtils; /** * Trackback * * @author David Czarnecki * @version $Id: Trackback.java,v 1.2.2.2 2006/10/19 21:14:32 johnan Exp $ */ public class Trackback implements Serializable { protected String _title; protected String _excerpt; protected String _url; protected String _blogName; protected long _trackbackDateLong; protected String _id; protected Map _metaData; protected BlogEntry _blogEntry; /** * Default constructor */ public Trackback() { } /** * Trackback constructor to take a title, excerpt, url, and blog name * * @param title Title of the trackback * @param excerpt Excerpt from the trackback * @param url Url for the trackback * @param blogName Blog name of the trackback */ public Trackback(String title, String excerpt, String url, String blogName) { _title = title; _excerpt = excerpt; _url = url; _blogName = blogName; } /** * Get the title of the trackback * * @return Trackback title */ public String getTitle() { return _title; } /** * Get the HTML escaped title of the trackback * * @return Trackback title */ public String getEscapedTitle() { return BlojsomUtils.escapeString(_title); } /** * Set the title of the trackback * * @param title Trackback title */ public void setTitle(String title) { _title = title; } /** * Get the excerpt of the trackback * * @return Trackback excerpt */ public String getExcerpt() { return _excerpt; } /** * Get the HTML escaped excerpt of the trackback * * @return Trackback excerpt */ public String getEscapedExcerpt() { return BlojsomUtils.escapeString(_excerpt); } /** * Set the excerpt of the trackback * * @param excerpt Trackback excerpt */ public void setExcerpt(String excerpt) { _excerpt = excerpt; } /** * Get the url of the trackback * * @return Trackback url */ public String getUrl() { return _url; } /** * Set the url of the trackback * * @param url Trackback url */ public void setUrl(String url) { _url = url; } /** * Get the blog name of the trackback * * @return Trackback blog name */ public String getBlogName() { return _blogName; } /** * Returns the HTML escaped name of the blog * * @return Name of the blog that has been escaped * @since blojsom 1.9.6 */ public String getEscapedBlogName() { return BlojsomUtils.escapeString(_blogName); } /** * Get the trackback meta-data * * @return Meta-data as a {@link Map} * @since blojsom 2.14 */ public Map getMetaData() { if (_metaData == null) { return new HashMap(); } return _metaData; } /** * Set the blog name of the trackback * * @param blogName Trackback blog name */ public void setBlogName(String blogName) { _blogName = blogName; } /** * Set the date for the trackback * * @param trackbackDateLong Trackback date as a long value */ public void setTrackbackDateLong(long trackbackDateLong) { _trackbackDateLong = trackbackDateLong; } /** * Get the date of the trackback * * @return Date of the trackback as a long */ public long getTrackbackDateLong() { return _trackbackDateLong; } /** * Get the date of the trackback * * @return Date of the trackback as a java.util.Date */ public Date getTrackbackDate() { return new Date(_trackbackDateLong); } /** * Get the id of this blog comments * * @return Id * @since blojsom 2.07 */ public String getId() { return _id; } /** * Set the id of this blog comment. This method can only be called if the id has not been set. * * @param id New id * @since blojsom 2.07 */ public void setId(String id) { if (_id == null) { _id = id; } } /** * Set the trackback meta-data * * @param metaData {@link Map} containing meta-data for this trackback * @since blojsom 2.14 */ public void setMetaData(Map metaData) { _metaData = metaData; } /** * Return the trackback date formatted with a specified date format * * @param format Date format * @return null if the format is null, otherwise returns the trackback date formatted to * the specified format. If the format is invalid, returns trackbackDate.toString() * @since blojsom 2.19 */ public String getDateAsFormat(String format) { if (format == null) { return null; } SimpleDateFormat sdf = null; Date trackbackDate = new Date(_trackbackDateLong); try { sdf = new SimpleDateFormat(format); return sdf.format(trackbackDate); } catch (IllegalArgumentException e) { return trackbackDate.toString(); } } /** * Retrieve the {@link BlogEntry} associated with this trackback * * @return {@link BlogEntry} * @since blojsom 2.23 */ public BlogEntry getBlogEntry() { return _blogEntry; } /** * Set the {@link BlogEntry} associated with this trackback * * @param blogEntry {@link BlogEntry} * @since blojsom 2.23 */ public void setBlogEntry(BlogEntry blogEntry) { _blogEntry = blogEntry; } }