com.sun.syndication.feed.synd

## Interface SyndFeed

All Superinterfaces:
  java.lang.Cloneable, CopyFrom, Extendable

All Known Implementing Classes:
  SyndFeedImpl

    public interface SyndFeed
    extends java.lang.Cloneable, CopyFrom, Extendable

Bean interface for all types of feeds.

It handles all RSS versions and Atom 0.3, it normalizes all info, it may lose information.

### Method Summary

All Methods Instance Methods Abstract Methods
`java.lang.Object` `clone()` Creates a deep clone of the object.
`WireFeed` `createWireFeed()` Creates a real feed containing the information of the SyndFeedImpl.
`WireFeed` `createWireFeed(java.lang.String feedType)` Creates a real feed containing the information of the SyndFeedImpl.
`java.lang.String` `getAuthor()` Returns the name of the first feed author in the collection of authors.
`java.util.List` `getAuthors()` Returns the feed authors.
`java.util.List` `getCategories()` Returns the feed categories.
`java.util.List` `getContributors()` Returns the feed author.
`java.lang.String` `getCopyright()` Returns the feed copyright.
`java.lang.String` `getDescription()` Returns the feed description.
`SyndContent` `getDescriptionEx()` Returns the feed description as a text construct.
`java.lang.String` `getEncoding()` Returns the charset encoding of a the feed.
`java.util.List` `getEntries()` Returns the feed entries.
`java.lang.String` `getFeedType()` Returns the wire feed type the feed had/will-have when converted from/to a WireFeed.
`java.lang.Object` `getForeignMarkup()` Returns foreign markup found at channel level.
`SyndImage` `getImage()` Returns the feed image.
`java.lang.String` `getLanguage()` Returns the feed language.
`java.lang.String` `getLink()` Returns the feed link.
`java.util.List` `getLinks()` Returns the entry links
`Module` `getModule(java.lang.String uri)` Returns the module identified by a given URI.
`java.util.List` `getModules()` Returns the feed modules.
`java.util.Date` `getPublishedDate()` Returns the feed published date.
`java.util.List` `getSupportedFeedTypes()` Returns the real feed types the SyndFeedImpl supports when converting from and to.
`java.lang.String` `getTitle()` Returns the feed title.
`SyndContent` `getTitleEx()` Returns the feed title.
`java.lang.String` `getUri()` Returns the feed URI.
`boolean` `isPreservingWireFeed()`
`WireFeed` `originalWireFeed()` Returns the WireFeed this SyndFeed was created from.
`void` `setAuthor(java.lang.String author)` Sets the feed author.
`void` `setAuthors(java.util.List authors)` Sets the feed authors.
`void` `setCategories(java.util.List categories)` Sets the feed categories.
`void` `setContributors(java.util.List contributors)` Sets the feed author.
`void` `setCopyright(java.lang.String copyright)` Sets the feed copyright.
`void` `setDescription(java.lang.String description)` Sets the feed description.
`void` `setDescriptionEx(SyndContent description)` Sets the feed description as a text construct.
`void` `setEncoding(java.lang.String encoding)` Sets the charset encoding of a the feed.
`void` `setEntries(java.util.List entries)` Sets the feed entries.
`void` `setFeedType(java.lang.String feedType)` Sets the wire feed type the feed will-have when coverted to a WireFeed.
`void` `setForeignMarkup(java.lang.Object foreignMarkup)` Sets foreign markup found at channel level.
`void` `setImage(SyndImage image)` Sets the feed image.
`void` `setLanguage(java.lang.String language)` Sets the feed language.
`void` `setLink(java.lang.String link)` Sets the feed link.
`void` `setLinks(java.util.List links)` Sets the entry links.
`void` `setModules(java.util.List modules)` Sets the feed modules.
`void` `setPublishedDate(java.util.Date publishedDate)` Sets the feed published date.
`void` `setTitle(java.lang.String title)` Sets the feed title.
`void` `setTitleEx(SyndContent title)` Sets the feed title.
`void` `setUri(java.lang.String uri)` Sets the feed URI.

### Methods inherited from interface com.sun.syndication.feed.CopyFrom

`copyFrom, getInterface`

### Method Detail

#### getSupportedFeedTypes

    java.util.List getSupportedFeedTypes()

Returns the real feed types the SyndFeedImpl supports when converting from and to.

Returns:
  the real feed type supported.

#### createWireFeed

    WireFeed createWireFeed()

Creates a real feed containing the information of the SyndFeedImpl.

The feed type of the created WireFeed is taken from the SyndFeedImpl feedType property.

Returns:
  the real feed.

#### createWireFeed

    WireFeed createWireFeed(java.lang.String feedType)

Creates a real feed containing the information of the SyndFeedImpl.

Parameters:
  `feedType` - the feed type for the WireFeed to be created.
Returns:
  the real feed.

#### originalWireFeed

    WireFeed originalWireFeed()

Returns the WireFeed this SyndFeed was created from. Will return null if the original feed is not stored or if this SyndFeed was not created from a WireFeed

Returns:
  The WireFeed this was created from, or null

#### isPreservingWireFeed

    boolean isPreservingWireFeed()

Returns:
  true if this SyndFeed preserves the WireFeed it was created from

#### getFeedType

    java.lang.String getFeedType()

Returns the wire feed type the feed had/will-have when converted from/to a WireFeed.

Returns:
  the feed type, null if none.

#### setFeedType

    void setFeedType(java.lang.String feedType)

Sets the wire feed type the feed will-have when coverted to a WireFeed.

Parameters:
  `feedType` - the feed type to set, null if none.

#### getEncoding

    java.lang.String getEncoding()

Returns the charset encoding of a the feed. This is not set by Rome parsers.

Returns:
  the charset encoding of the feed.

#### setEncoding

    void setEncoding(java.lang.String encoding)

Sets the charset encoding of a the feed. This is not set by Rome parsers.

Parameters:
  `encoding` - the charset encoding of the feed.

#### getUri

    java.lang.String getUri()

Returns the feed URI.

How the feed URI maps to a concrete feed type (RSS or Atom) depends on the concrete feed type. This is explained in detail in Rome documentation, Feed and entry URI mapping.

The returned URI is a normalized URI as specified in RFC 2396bis.

Note: The URI is the unique identifier, in the RSS 2.0/atom case this is the GUID, for RSS 1.0 this is the URI attribute of the item. The Link is the URL that the item is accessible under, the URI is the permanent identifier which the aggregator should use to reference this item. Often the URI will use some standardized identifier scheme such as DOI's so that items can be identified even if they appear in multiple feeds with different "links" (they might be on different hosting platforms but be the same item). Also, though rare, there could be multiple items with the same link but a different URI and associated metadata which need to be treated as distinct entities. In the RSS 1.0 case the URI must be a valid RDF URI reference.

Returns:
  the feed URI, null if none.

#### setUri

    void setUri(java.lang.String uri)

Sets the feed URI.

How the feed URI maps to a concrete feed type (RSS or Atom) depends on the concrete feed type. This is explained in detail in Rome documentation, Feed and entry URI mapping.

Note: The URI is the unique identifier, in the RSS 2.0/atom case this is the GUID, for RSS 1.0 this is the URI attribute of the item. The Link is the URL that the item is accessible under, the URI is the permanent identifier which the aggregator should use to reference this item. Often the URI will use some standardized identifier scheme such as DOI's so that items can be identified even if they appear in multiple feeds with different "links" (they might be on different hosting platforms but be the same item). Also, though rare, there could be multiple items with the same link but a different URI and associated metadata which need to be treated as distinct entities. In the RSS 1.0 case the URI must be a valid RDF URI reference.

Parameters:
  `uri` - the feed URI to set, null if none.

#### getTitle

    java.lang.String getTitle()

Returns the feed title.

Returns:
  the feed title, null if none.

#### setTitle

    void setTitle(java.lang.String title)

Sets the feed title.

Parameters:
  `title` - the feed title to set, null if none.

#### getTitleEx

    SyndContent getTitleEx()

Returns the feed title.

Returns:
  the feed title, null if none.

#### setTitleEx

    void setTitleEx(SyndContent title)

Sets the feed title.

Parameters:
  `title` - the feed title to set, null if none.

#### getLink

    java.lang.String getLink()

Returns the feed link.

Note: The URI is the unique identifier, in the RSS 2.0/atom case this is the GUID, for RSS 1.0 this is the URI attribute of the item. The Link is the URL that the item is accessible under, the URI is the permanent identifier which the aggregator should use to reference this item. Often the URI will use some standardized identifier scheme such as DOI's so that items can be identified even if they appear in multiple feeds with different "links" (they might be on different hosting platforms but be the same item). Also, though rare, there could be multiple items with the same link but a different URI and associated metadata which need to be treated as distinct entities. In the RSS 1.0 case the URI must be a valid RDF URI reference.

Returns:
  the feed link, null if none.

#### setLink

    void setLink(java.lang.String link)

Sets the feed link.

Note: The URI is the unique identifier, in the RSS 2.0/atom case this is the GUID, for RSS 1.0 this is the URI attribute of the item. The Link is the URL that the item is accessible under, the URI is the permanent identifier which the aggregator should use to reference this item. Often the URI will use some standardized identifier scheme such as DOI's so that items can be identified even if they appear in multiple feeds with different "links" (they might be on different hosting platforms but be the same item). Also, though rare, there could be multiple items with the same link but a different URI and associated metadata which need to be treated as distinct entities. In the RSS 1.0 case the URI must be a valid RDF URI reference.

Parameters:
  `link` - the feed link to set, null if none.

#### getLinks

    java.util.List getLinks()

Returns the entry links

Returns:
  the entry links, null if none.

#### setLinks

    void setLinks(java.util.List links)

Sets the entry links.

Parameters:
  `links` - the entry links to set, null if none.

#### getDescription

    java.lang.String getDescription()

Returns the feed description.

Returns:
  the feed description, null if none.

#### setDescription

    void setDescription(java.lang.String description)

Sets the feed description.

Parameters:
  `description` - the feed description to set, null if none.

#### getDescriptionEx

    SyndContent getDescriptionEx()

Returns the feed description as a text construct.

Returns:
  the feed description, null if none.

#### setDescriptionEx

    void setDescriptionEx(SyndContent description)

Sets the feed description as a text construct.

Parameters:
  `description` - the feed description to set, null if none.

#### getPublishedDate

    java.util.Date getPublishedDate()

Returns the feed published date.

This method is a convenience method, it maps to the Dublin Core module date.

Returns:
  the feed published date, null if none.

#### setPublishedDate

    void setPublishedDate(java.util.Date publishedDate)

Sets the feed published date.

This method is a convenience method, it maps to the Dublin Core module date.

Parameters:
  `publishedDate` - the feed published date to set, null if none.

#### getAuthors

    java.util.List getAuthors()

Returns the feed authors.

For Atom feeds, this returns the authors as a list of SyndPerson objects, for RSS feeds this method is a convenience method, it maps to the Dublin Core module creator.

Returns:
  the feed authors, null if none.

#### setAuthors

    void setAuthors(java.util.List authors)

Sets the feed authors.

For Atom feeds, this sets the authors as a list of SyndPerson objects, for RSS feeds this method is a convenience method, it maps to the Dublin Core module creator.

Parameters:
  `authors` - the feed authors to set, null if none.

#### getAuthor

    java.lang.String getAuthor()

Returns the name of the first feed author in the collection of authors.

For Atom feeds, this returns the authors as a list of SyndPerson objects, for RSS feeds this method is a convenience method, it maps to the Dublin Core module creator.

Returns:
  the feed author, null if none.

#### setAuthor

    void setAuthor(java.lang.String author)

Sets the feed author.

For Atom feeds, this sets the feed author's name, for RSS feeds this method is a convenience method, it maps to the Dublin Core module creator.

Parameters:
  `author` - the feed author to set, null if none.

#### getContributors

    java.util.List getContributors()

Returns the feed author.

For Atom feeds, this returns the contributors as a list of SyndPerson objects

Returns:
  the feed author, null if none.

#### setContributors

    void setContributors(java.util.List contributors)

Sets the feed author.

Returns contributors as a list of SyndPerson objects.

Parameters:
  `contributors` - the feed contributors to set, null if none.

#### getCopyright

    java.lang.String getCopyright()

Returns the feed copyright.

This method is a convenience method, it maps to the Dublin Core module rights.

Returns:
  the feed copyright, null if none.

#### setCopyright

    void setCopyright(java.lang.String copyright)

Sets the feed copyright.

This method is a convenience method, it maps to the Dublin Core module rights.

Parameters:
  `copyright` - the feed copyright to set, null if none.

#### getImage

    SyndImage getImage()

Returns the feed image.

Returns:
  the feed image, null if none.

#### setImage

    void setImage(SyndImage image)

Sets the feed image.

Parameters:
  `image` - the feed image to set, null if none.

#### getCategories

    java.util.List getCategories()

Returns the feed categories.

This method is a convenience method, it maps to the Dublin Core module subjects.

Returns:
  a list of SyndCategoryImpl elements with the feed categories, an empty list if none.

#### setCategories

    void setCategories(java.util.List categories)

Sets the feed categories.

This method is a convenience method, it maps to the Dublin Core module subjects.

Parameters:
  `categories` - the list of SyndCategoryImpl elements with the feed categories to set, an empty list or null if none.

#### getEntries

    java.util.List getEntries()

Returns the feed entries.

Returns:
  a list of SyndEntryImpl elements with the feed entries, an empty list if none.

#### setEntries

    void setEntries(java.util.List entries)

Sets the feed entries.

Parameters:
  `entries` - the list of SyndEntryImpl elements with the feed entries to set, an empty list or null if none.

#### getLanguage

    java.lang.String getLanguage()

Returns the feed language.

This method is a convenience method, it maps to the Dublin Core module language.

Returns:
  the feed language, null if none.

#### setLanguage

    void setLanguage(java.lang.String language)

Sets the feed language.

This method is a convenience method, it maps to the Dublin Core module language.

Parameters:
  `language` - the feed language to set, null if none.

#### getModule

    Module getModule(java.lang.String uri)

Returns the module identified by a given URI.

Specified by:
  `getModule` in interface `Extendable`
Parameters:
  `uri` - the URI of the ModuleImpl.
Returns:
  The module with the given URI, null if none.

#### getModules

    java.util.List getModules()

Returns the feed modules.

Specified by:
  `getModules` in interface `Extendable`
Returns:
  a list of ModuleImpl elements with the feed modules, an empty list if none.

#### setModules

    void setModules(java.util.List modules)

Sets the feed modules.

Specified by:
  `setModules` in interface `Extendable`
Parameters:
  `modules` - the list of ModuleImpl elements with the feed modules to set, an empty list or null if none.

#### getForeignMarkup

    java.lang.Object getForeignMarkup()

Returns foreign markup found at channel level.

Returns:
  Opaque object to discourage use

#### setForeignMarkup

    void setForeignMarkup(java.lang.Object foreignMarkup)

Sets foreign markup found at channel level.

Parameters:
  `foreignMarkup` - Opaque object to discourage use

#### clone

    java.lang.Object clone()
                    throws java.lang.CloneNotSupportedException

Creates a deep clone of the object.

Returns:
  a clone of the object.
Throws:
  `java.lang.CloneNotSupportedException` - thrown if an element of the object cannot be cloned.