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.feed.AbstractFeed;
20  import com.sun.syndication.common.ToString;
21  
22  import java.util.Date;
23  import java.util.List;
24  
25  /***
26   * Bean interface for all types of feeds.
27   * <p>
28   * It handles all RSS versions and Atom 0.3, it normalizes all info, it may lose information.
29   * <p>
30   * @author Alejandro Abdelnur
31   *
32   */
33  public interface SyndFeedI extends ToString,Cloneable {
34  
35      /***
36       * Returns the real feed types the SyndFeed supports when converting from and to.
37       * <p>
38       * @return the real feed type supported.
39       */
40      List getSupportedFeedTypes();
41  
42  
43      /***
44       * Creates a real feed of the given type containing the information of the SyndFeed.
45       * <p>
46       * @param type type of the real feed to create.
47       * @return the real feed.
48       *
49       */
50      AbstractFeed createRealFeed(String type);
51  
52      /***
53       * Returns the feed title.
54       * <p>
55       * @return the feed title, <b>null</b> if none.
56       *
57       */
58      String getTitle();
59  
60      /***
61       * Sets the feed title.
62       * <p>
63       * @param title the feed title to set, <b>null</b> if none.
64       *
65       */
66      void setTitle(String title);
67  
68      /***
69       * Returns the feed link.
70       * <p>
71       * @return the feed link, <b>null</b> if none.
72       *
73       */
74      String getLink();
75  
76      /***
77       * Sets the feed link.
78       * <p>
79       * @param link the feed link to set, <b>null</b> if none.
80       *
81       */
82      void setLink(String link);
83  
84      /***
85       * Returns the feed description.
86       * <p>
87       * @return the feed description, <b>null</b> if none.
88       *
89       */
90      String getDescription();
91  
92      /***
93       * Sets the feed description.
94       * <p>
95       * @param description the feed description to set, <b>null</b> if none.
96       *
97       */
98      void setDescription(String description);
99  
100     /***
101      * Returns the feed published date.
102      * <p>
103      * This method is a convenience method, it maps to the Dublin Core module date.
104      * <p>
105      * @return the feed published date, <b>null</b> if none.
106      *
107      */
108     Date getPublishedDate();
109 
110     /***
111      * Sets the feed published date.
112      * <p>
113      * This method is a convenience method, it maps to the Dublin Core module date.
114      * <p>
115      * @param publishedDate the feed published date to set, <b>null</b> if none.
116      *
117      */
118     void setPublishedDate(Date publishedDate);
119 
120     /***
121      * Returns the feed author.
122      * <p>
123      * This method is a convenience method, it maps to the Dublin Core module creator.
124      * <p>
125      * @return the feed author, <b>null</b> if none.
126      *
127      */
128     String getAuthor();
129 
130     /***
131      * Sets the feed author.
132      * <p>
133      * This method is a convenience method, it maps to the Dublin Core module creator.
134      * <p>
135      * @param author the feed author to set, <b>null</b> if none.
136      *
137      */
138     void setAuthor(String author);
139 
140     /***
141      * Returns the feed copyright.
142      * <p>
143      * This method is a convenience method, it maps to the Dublin Core module rights.
144      * <p>
145      * @return the feed copyright, <b>null</b> if none.
146      *
147      */
148     String getCopyright();
149 
150     /***
151      * Sets the feed copyright.
152      * <p>
153      * This method is a convenience method, it maps to the Dublin Core module rights.
154      * <p>
155      * @param copyright the feed copyright to set, <b>null</b> if none.
156      *
157      */
158     void setCopyright(String copyright);
159 
160     /***
161      * Returns the feed image.
162      * <p>
163      * @return the feed image, <b>null</b> if none.
164      *
165      */
166     SyndImageI getImage();
167 
168     /***
169      * Sets the feed image.
170      * <p>
171      * @param image the feed image to set, <b>null</b> if none.
172      *
173      */
174     void setImage(SyndImageI image);
175 
176     /***
177      * Returns the feed categories.
178      * <p>
179      * This method is a convenience method, it maps to the Dublin Core module subjects.
180      * <p>
181      * @return a list of SyndCategory elements with the feed categories,
182      *         an empty list if none.
183      *
184      */
185     List getCategories();
186 
187     /***
188      * Sets the feed categories.
189      * <p>
190      * This method is a convenience method, it maps to the Dublin Core module subjects.
191      * <p>
192      * @param categories the list of SyndCategory elements with the feed categories to set,
193      *        an empty list or <b>null</b> if none.
194      *
195      */
196     void setCategories(List categories);
197 
198     /***
199      * Returns the feed entries.
200      * <p>
201      * @return a list of SyndEntry elements with the feed entries,
202      *         an empty list if none.
203      *
204      */
205     List getEntries();
206 
207     /***
208      * Sets the feed entries.
209      * <p>
210      * @param entries the list of SyndEntry elements with the feed entries to set,
211      *        an empty list or <b>null</b> if none.
212      *
213      */
214     void setEntries(List entries);
215 
216     /***
217      * Returns the feed language.
218      * <p>
219      * This method is a convenience method, it maps to the Dublin Core module language.
220      * <p>
221      * @return the feed language, <b>null</b> if none.
222      *
223      */
224     String getLanguage();
225 
226     /***
227      * Sets the feed language.
228      * <p>
229      * This method is a convenience method, it maps to the Dublin Core module language.
230      * <p>
231      * @param language the feed language to set, <b>null</b> if none.
232      *
233      */
234     void setLanguage(String language);
235 
236     /***
237      * Returns the feed modules.
238      * <p>
239      * @return a list of Module elements with the feed modules,
240      *         an empty list if none.
241      *
242      */
243     List getModules();
244 
245     /***
246      * Sets the feed modules.
247      * <p>
248      * @param modules the list of Module elements with the feed modules to set,
249      *        an empty list or <b>null</b> if none.
250      *
251      */
252     void setModules(List modules);
253 
254     /***
255      * Creates a deep clone of the object.
256      * <p>
257      * @return a clone of the object.
258      * @throws CloneNotSupportedException thrown if an element of the object cannot be cloned.
259      *
260      */
261     public Object clone() throws CloneNotSupportedException;
262 
263 }