/** * 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 org.blojsom.util.BlojsomUtils; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.Map; import java.io.Serializable; /** * BlogComment * * @author David Czarnecki * @version $Id: BlogComment.java,v 1.2.2.1 2005/07/21 14:11:02 johnan Exp $ */ public class BlogComment implements Serializable{ protected String _author; protected String _authorEmail; protected String _authorURL; protected String _comment; protected Date _commentDate; protected long _commentDateLong; protected String _id; protected Map _metaData; protected BlogEntry _blogEntry; /** * Default constructor */ public BlogComment() { } /** * Get the author of the comment * * @return Comment author */ public String getAuthor() { return _author; } /** * Set the author of the comment * * @param author Comment's new author */ public void setAuthor(String author) { _author = author; } /** * Get the e-mail of the author of the comment * * @return Author's e-mail */ public String getAuthorEmail() { return _authorEmail; } /** * Set the e-mail of the author of the comment * * @param authorEmail Author's new e-mail */ public void setAuthorEmail(String authorEmail) { _authorEmail = authorEmail; } /** * Get the URL of the author * * @return Author's URL */ public String getAuthorURL() { return _authorURL; } /** * Set the URL for the author * * @param authorURL New URL for the author */ public void setAuthorURL(String authorURL) { _authorURL = authorURL; } /** * Get the comment as a escaped string * @return Escaped Comment */ public String getEscapedComment() { return BlojsomUtils.escapeString(_comment); } /** * Get the comment * * @return Comment */ public String getComment() { return _comment; } /** * Set the new comment * * @param comment New comment */ public void setComment(String comment) { _comment = comment; } /** * Get the date the comment was entered * * @return Comment date */ public Date getCommentDate() { return _commentDate; } /** * Return an ISO 8601 style date * http://www.w3.org/TR/NOTE-datetime * * @return Date formatted in ISO 8601 format */ public String getISO8601Date() { return BlojsomUtils.getISO8601Date(_commentDate); } /** * Return an RFC 822 style date * * @return Date formatted in RFC 822 format */ public String getRFC822Date() { return BlojsomUtils.getRFC822Date(_commentDate); } /** * 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 date for the comment * * @param commentDate Comment date */ public void setCommentDate(Date commentDate) { _commentDate = commentDate; } /** * Get the date of this comment as a Long. * Used for Last-Modified * * @return the comment date as a Long */ public long getCommentDateLong() { return _commentDateLong; } /** * Set the Comment Date as a Long * * @param commentDateLong the comment file's lastModified() */ public void setCommentDateLong(long commentDateLong) { _commentDateLong = commentDateLong; } /** * 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 comment * @since blojsom 2.14 */ public void setMetaData(Map metaData) { _metaData = metaData; } /** * Return the comment date formatted with a specified date format * * @param format Date format * @return null if the comment date or format is null, otherwise returns the comment date * formatted to the specified format. If the format is invalid, returns commentDate.toString() * @since blojsom 2.19 */ public String getDateAsFormat(String format) { if (_commentDate == null || format == null) { return null; } SimpleDateFormat sdf = null; try { sdf = new SimpleDateFormat(format); return sdf.format(_commentDate); } catch (IllegalArgumentException e) { return _commentDate.toString(); } } /** * Retrieve the {@link BlogEntry} associated with this comment * * @return {@link BlogEntry} * @since blojsom 2.23 */ public BlogEntry getBlogEntry() { return _blogEntry; } /** * Set the {@link BlogEntry} associated with this comment * * @param blogEntry {@link BlogEntry} * @since blojsom 2.23 */ public void setBlogEntry(BlogEntry blogEntry) { _blogEntry = blogEntry; } }