package org.jboss.resteasy.plugins.providers.atom;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElementRef;
import javax.xml.bind.annotation.XmlRootElement;
import java.util.ArrayList;
import java.util.List;
/**
* <p>Per RFC4287:</p>
* <p/>
* <pre>
* The "atom:feed" element is the document (i.e., top-level) element of
* an Atom Feed Document, acting as a container for metadata and data
* associated with the feed. Its element children consist of metadata
* elements followed by zero or more atom:entry child elements.
* <p/>
* atomFeed =
* element atom:feed {
* atomCommonAttributes,
* (atomAuthor*
* & atomCategory*
* & atomContributor*
* & atomGenerator?
* & atomIcon?
* & atomId
* & atomLink*
* & atomLogo?
* & atomRights?
* & atomSubtitle?
* & atomTitle
* & atomUpdated
* & extensionElement*),
* atomEntry*
* }
* <p/>
* This specification assigns no significance to the order of atom:entry
* elements within the feed.
* <p/>
* The following child elements are defined by this specification (note
* that the presence of some of these elements is required):
* <p/>
* o atom:feed elements MUST contain one or more atom:author elements,
* unless all of the atom:feed element's child atom:entry elements
* contain at least one atom:author element.
* o atom:feed elements MAY contain any number of atom:category
* elements.
* o atom:feed elements MAY contain any number of atom:contributor
* elements.
* o atom:feed elements MUST NOT contain more than one atom:generator
* element.
* o atom:feed elements MUST NOT contain more than one atom:icon
* element.
* o atom:feed elements MUST NOT contain more than one atom:logo
* element.
* o atom:feed elements MUST contain exactly one atom:id element.
* o atom:feed elements SHOULD contain one atom:link element with a rel
* attribute value of "self". This is the preferred URI for
* retrieving Atom Feed Documents representing this Atom feed.
* o atom:feed elements MUST NOT contain more than one atom:link
* element with a rel attribute value of "alternate" that has the
* same combination of type and hreflang attribute values.
* o atom:feed elements MAY contain additional atom:link elements
* beyond those described above.
* o atom:feed elements MUST NOT contain more than one atom:rights
* element.
* o atom:feed elements MUST NOT contain more than one atom:subtitle
* element.
* o atom:feed elements MUST contain exactly one atom:title element.
* o atom:feed elements MUST contain exactly one atom:updated element.
* <p/>
* If multiple atom:entry elements with the same atom:id value appear in
* an Atom Feed Document, they represent the same entry. Their
* atom:updated timestamps SHOULD be different. If an Atom Feed
* Document contains multiple entries with the same atom:id, Atom
* Processors MAY choose to display all of them or some subset of them.
* One typical behavior would be to display only the entry with the
* latest atom:updated timestamp.
* </pre>
*
* @author <a href="mailto:bill@burkecentral.com">Bill Burke</a>
* @version $Revision: 1 $
*/
@XmlRootElement(name = "feed")
@XmlAccessorType(XmlAccessType.PROPERTY)
public class Feed extends Source
{
private List<Entry> entries = new ArrayList<Entry>();
@XmlElementRef
public List<Entry> getEntries()
{
return entries;
}
}