View Javadoc

1   /*
2    * Copyright 2004 Sun Microsystems, Inc.
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *     http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   *
16   */
17  package com.sun.syndication.feed.synd;
18  
19  import com.sun.syndication.common.ToString;
20  import com.sun.syndication.common.CopyFrom;
21  import com.sun.syndication.feed.module.Module;
22  
23  import java.util.Date;
24  import java.util.List;
25  
26  /***
27   * Bean interface for entries of SyndFeedImpl feeds.
28   * <p>
29   * @author Alejandro Abdelnur
30   *
31   */
32  public interface SyndEntry extends ToString,Cloneable,CopyFrom {
33  
34      /***
35       * Returns the entry URI.
36       * <p>
37       * How the entry URI maps to a concrete feed type (RSS or Atom) depends on
38       * the concrete feed type. This is explained in detail in Rome documentation,
39       * <a href="http://wiki.java.net/bin/edit/Javawsxml/Rome04URIMapping">Feed and entry URI mapping</a>.
40       * <p>
41       * The returned URI is a normalized URI as specified in RFC 2396bis.
42       * <p>
43       * @return the entry URI, <b>null</b> if none.
44       *
45       */
46      String getUri();
47  
48      /***
49       * Sets the entry URI.
50       * <p>
51       * How the entry URI maps to a concrete feed type (RSS or Atom) depends on
52       * the concrete feed type. This is explained in detail in Rome documentation,
53       * <a href="http://wiki.java.net/bin/edit/Javawsxml/Rome04URIMapping">Feed and entry URI mapping</a>.
54       * <p>
55       * @param uri the entry URI to set, <b>null</b> if none.
56       *
57       */
58      void setUri(String uri);
59  
60      /***
61       * Returns the entry title.
62       * <p>
63       * @return the entry title, <b>null</b> if none.
64       *
65       */
66      String getTitle();
67  
68      /***
69       * Sets the entry title.
70       * <p>
71       * @param title the entry title to set, <b>null</b> if none.
72       *
73       */
74      void setTitle(String title);
75  
76      /***
77       * Returns the entry link.
78       * <p>
79       * @return the entry link, <b>null</b> if none.
80       *
81       */
82      String getLink();
83  
84      /***
85       * Sets the entry link.
86       * <p>
87       * @param link the entry link to set, <b>null</b> if none.
88       *
89       */
90      void setLink(String link);
91  
92      /***
93       * Returns the entry description.
94       * <p>
95       * @return the entry description, <b>null</b> if none.
96       *
97       */
98      SyndContent getDescription();
99  
100     /***
101      * Sets the entry description.
102      * <p>
103      * @param description the entry description to set, <b>null</b> if none.
104      *
105      */
106     void setDescription(SyndContent description);
107 
108     /***
109      * Returns the entry contents.
110      * <p>
111      * @return a list of SyndContentImpl elements with the entry contents,
112      *         an empty list if none.
113      *
114      */
115     List getContents();
116 
117     /***
118      * Sets the entry contents.
119      * <p>
120      * @param contents the list of SyndContentImpl elements with the entry contents to set,
121      *        an empty list or <b>null</b> if none.
122      *
123      */
124     void setContents(List contents);
125 
126     /***
127      * Returns the entry published date.
128      * <p>
129      * This method is a convenience method, it maps to the Dublin Core module date.
130      * <p>
131      * @return the entry published date, <b>null</b> if none.
132      *
133      */
134     Date getPublishedDate();
135 
136     /***
137      * Sets the entry published date.
138      * <p>
139      * This method is a convenience method, it maps to the Dublin Core module date.
140      * <p>
141      * @param publishedDate the entry published date to set, <b>null</b> if none.
142      *
143      */
144     void setPublishedDate(Date publishedDate);
145 
146     /***
147      * Returns the entry author.
148      * <p>
149      * This method is a convenience method, it maps to the Dublin Core module creator.
150      * <p>
151      * @return the entry author, <b>null</b> if none.
152      *
153      */
154     String getAuthor();
155 
156     /***
157      * Sets the entry author.
158      * <p>
159      * This method is a convenience method, it maps to the Dublin Core module creator.
160      * <p>
161      * @param author the entry author to set, <b>null</b> if none.
162      *
163      */
164     void setAuthor(String author);
165 
166     /***
167      * Returns the entry categories.
168      * <p>
169      * This method is a convenience method, it maps to the Dublin Core module subjects.
170      * <p>
171      * @return a list of SyndCategoryImpl elements with the entry categories,
172      *         an empty list if none.
173      *
174      */
175     List getCategories();
176 
177     /***
178      * Sets the entry categories.
179      * <p>
180      * This method is a convenience method, it maps to the Dublin Core module subjects.
181      * <p>
182      * @param categories the list of SyndCategoryImpl elements with the entry categories to set,
183      *        an empty list or <b>null</b> if none.
184      *
185      */
186     void setCategories(List categories);
187 
188     /***
189      * Returns the module identified by a given URI.
190      * <p>
191      * @param uri the URI of the ModuleImpl.
192      * @return The module with the given URI, <b>null</b> if none.
193      */
194     public Module getModule(String uri);
195 
196     /***
197      * Returns the entry modules.
198      * <p>
199      * @return a list of ModuleImpl elements with the entry modules,
200      *         an empty list if none.
201      *
202      */
203     List getModules();
204 
205     /***
206      * Sets the entry modules.
207      * <p>
208      * @param modules the list of ModuleImpl elements with the entry modules to set,
209      *        an empty list or <b>null</b> if none.
210      *
211      */
212     void setModules(List modules);
213 
214     /***
215      * Creates a deep clone of the object.
216      * <p>
217      * @return a clone of the object.
218      * @throws CloneNotSupportedException thrown if an element of the object cannot be cloned.
219      *
220      */
221     public Object clone() throws CloneNotSupportedException;
222 
223 }