/*==========================================================================*\
| $Id: RssEntity.java,v 1.2 2010/02/23 17:06:36 stedwar2 Exp $
|*-------------------------------------------------------------------------*|
| Copyright (C) 2007-2010 Virginia Tech
|
| This file is part of the Student-Library.
|
| The Student-Library is free software; you can redistribute it and/or
| modify it under the terms of the GNU Lesser General Public License as
| published by the Free Software Foundation; either version 3 of the
| License, or (at your option) any later version.
|
| The Student-Library is distributed in the hope that it will be useful,
| but WITHOUT ANY WARRANTY; without even the implied warranty of
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
| GNU Lesser General Public License for more details.
|
| You should have received a copy of the GNU Lesser General Public License
| along with the Student-Library; if not, see <http://www.gnu.org/licenses/>.
\*==========================================================================*/
package student.web;
import java.io.Serializable;
import java.net.URL;
import java.util.Date;
import java.util.List;
//-------------------------------------------------------------------------
/**
* This interface defines the common features of RSS entities like
* {@link RssEntry} objects and {@link RssFeed} objects.
*
* @version 2007.09.01
* @author Stephen Edwards
*/
public interface RssEntity
extends Serializable, Cloneable
{
//~ Methods ...............................................................
// ----------------------------------------------------------
/**
* Get this entity's author. If there are multiple authors,
* this method returns the first one.
* @return This entity's author
*/
String getAuthor();
// ----------------------------------------------------------
/**
* Set this entity's author.
* @param author This entity's author
*/
void setAuthor(String author);
// ----------------------------------------------------------
/**
* Get this entity's authors.
* @return This entity's authors
*/
List<String> getAuthors();
// ----------------------------------------------------------
/**
* Set this entity's authors.
* @param authors A list of this entity's authors
*/
void setAuthors(List<String> authors);
// ----------------------------------------------------------
/**
* Get this entity's publication date.
* @return This entity's date
*/
Date getDate();
// ----------------------------------------------------------
/**
* Set this entity's publication date.
* @param date This entity's date
*/
void setDate(Date date);
// ----------------------------------------------------------
/**
* Get this entity's description.
* @return This entity's description
*/
String getDescription();
// ----------------------------------------------------------
/**
* Set this entity's description.
* @param description The new description
*/
void setDescription(String description);
// ----------------------------------------------------------
/**
* Get this entity's link as a URL.
* @return The link's URL, or null if there is none
*/
URL getLink();
// ----------------------------------------------------------
/**
* Set this entity's link.
* @param link The new URL to use
*/
void setLink(URL link);
// ----------------------------------------------------------
/**
* Get this entity's title.
* @return The entity's title
*/
String getTitle();
// ----------------------------------------------------------
/**
* Set this entity's title.
* @param title The entity's title
*/
void setTitle(String title);
}