001: /**********************************************************************************
002: * $URL: https://source.sakaiproject.org/svn/web/tags/sakai_2-4-1/news-api/api/src/java/org/sakaiproject/news/api/NewsChannel.java $
003: * $Id: NewsChannel.java 8312 2006-04-26 02:55:39Z ggolden@umich.edu $
004: ***********************************************************************************
005: *
006: * Copyright (c) 2003, 2004, 2005, 2006 The Sakai Foundation.
007: *
008: * Licensed under the Educational Community License, Version 1.0 (the "License");
009: * you may not use this file except in compliance with the License.
010: * You may obtain a copy of the License at
011: *
012: * http://www.opensource.org/licenses/ecl1.php
013: *
014: * Unless required by applicable law or agreed to in writing, software
015: * distributed under the License is distributed on an "AS IS" BASIS,
016: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
017: * See the License for the specific language governing permissions and
018: * limitations under the License.
019: *
020: **********************************************************************************/package org.sakaiproject.news.api;
021:
022: import java.util.List;
023:
024: import org.sakaiproject.javax.Filter;
025:
026: /**
027: * <p>
028: * NewsChannel is the interface for a Sakai News service News channel. Messages in the NewsChannel are NewsItems.
029: * </p>
030: */
031: public interface NewsChannel {
032: /**
033: * Accesses a list of all news items from this rss news feed.
034: *
035: * @return a list of NewsItem objects (may be empty).
036: */
037: public List getNewsitems();
038:
039: /**
040: * Accesses a filtered list of news items from this rss news feed.
041: *
042: * @param filter
043: * A filtering object to accept messages, or null if no filtering is desired.
044: * @return a list of NewsItem objects (may be empty).
045: */
046: public List getNewsitems(Filter filter);
047:
048: /**
049: *
050: */
051: public String getLink();
052:
053: /**
054: *
055: */
056: public String getSource();
057:
058: /**
059: *
060: */
061: public String getTitle();
062:
063: /**
064: *
065: */
066: public String getDescription();
067:
068: /**
069: *
070: */
071: public String getLanguage();
072:
073: /**
074: *
075: */
076: public String getCopyright();
077:
078: /**
079: *
080: */
081: public String getPubdate();
082:
083: /**
084: *
085: */
086: public String getLastbuilddate();
087:
088: /**
089: *
090: */
091: public void setNewsitems(List items);
092:
093: /**
094: *
095: */
096: public void addNewsitem(NewsItem item);
097:
098: /**
099: *
100: */
101: public void setLink(String link);
102:
103: /**
104: *
105: */
106: public void setSource(String source)
107: throws NewsConnectionException, NewsFormatException;
108:
109: /**
110: *
111: */
112: public void setTitle(String set);
113:
114: /**
115: *
116: */
117: public void setDescription(String description);
118:
119: /**
120: *
121: */
122: public void setLanguage(String language);
123:
124: /**
125: *
126: */
127: public void setCopyright(String copyright);
128:
129: /**
130: *
131: */
132: public void setPubdate(String pubdate);
133:
134: /**
135: *
136: */
137: public void setLastbuilddate(String builddate);
138:
139: /**
140: * Checks whether an update is available for the rss news feed.
141: *
142: * @return true if update is available, false otherwise
143: */
144: public boolean isUpdateAvailable();
145:
146: /**
147: * Checks the relative ordering of the String url's of two Channels. Same response pattern as compareTo method for Strings--negative if "this" object is greater than parameter, zero if the objects are equal, and positive if "this" object is less than
148: * the parameter. The parameter can be a String reference or a MessageChannel object (otherwise method throws ClassCastException).
149: *
150: * @return A negative integer if "this" object is greater than parameter, zero if the objects are equal, and a positive integer if "this" object is less than the parameter
151: */
152: public int compareTo(Object obj) throws ClassCastException;
153:
154: /**
155: * Checks whether the parameter obj refers to the same channel as "this" channel. The parameter can be a String URL or a NewsChannel object (otherwise method throws ClassCastException).
156: *
157: * @return true if the channels are the same, false otherwise
158: */
159: public boolean equals(Object obj) throws ClassCastException;
160:
161: /**
162: * Calculates a hash code for the channel object's URL.
163: *
164: * @return The hash-code for the String URL to the channel.
165: */
166: public int hashCode();
167: }
|