001 /*
002 * Copyright 1999,2004 The Apache Software Foundation.
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016
017 package org.apache.commons.feedparser.impl;
018
019 import java.io.PrintStream;
020 import java.util.Date;
021 import java.util.Locale;
022
023 import org.apache.commons.feedparser.DefaultFeedParserListener;
024 import org.apache.commons.feedparser.FeedDirectoryParserListener;
025 import org.apache.commons.feedparser.FeedParserException;
026 import org.apache.commons.feedparser.FeedParserListener;
027 import org.apache.commons.feedparser.FeedParserState;
028 import org.apache.commons.feedparser.FeedVersion;
029 import org.apache.commons.feedparser.LinkFeedParserListener;
030 import org.apache.commons.feedparser.MetaFeedParserListener;
031 import org.apache.commons.feedparser.ModContentFeedParserListener;
032 import org.apache.commons.feedparser.TagFeedParserListener;
033 import org.jdom.Element;
034
035 /**
036 *
037 * @author <a href="mailto:burton@apache.org">Kevin A. Burton (burtonator)</a>
038 * @version $Id: DebugFeedParserListener.java 373622 2006-01-30 22:53:00Z mvdb $
039 */
040 public class DebugFeedParserListener
041 extends DefaultFeedParserListener
042 implements FeedParserListener,
043 FeedDirectoryParserListener,
044 MetaFeedParserListener,
045 LinkFeedParserListener,
046 TagFeedParserListener,
047 ModContentFeedParserListener {
048
049 PrintStream out = System.out;
050
051 public DebugFeedParserListener() { }
052
053 public DebugFeedParserListener( PrintStream out ) {
054 this.out = out;
055 }
056
057 /**
058 * Called prior to event parsing to signal the parsing of a new feed.
059 *
060 *
061 */
062 public void init() {
063 out.println( "init()" );
064 }
065
066 public void onFeedVersion( FeedVersion version ) throws FeedParserException {
067 out.println( "onFeedVersion: " + version );
068 }
069
070 public void setContext( Object context ) {}
071
072 /**
073 * Called when a channel item is found.
074 *
075 *
076 */
077 public void onChannel( FeedParserState state,
078 String title,
079 String link,
080 String description ) {
081
082 out.println( "onChannel" );
083 out.println( "\ttitle : " + title );
084 out.println( "\tlink : '" + link + "'" );
085 out.println( "\tdescription : " + description );
086
087 }
088
089 public void onChannelEnd() {
090
091 out.println( "onChannelEnd" );
092
093 }
094
095 /**
096 * Called when an RSS image is found.
097 *
098 *
099 */
100 public void onImage( FeedParserState state,
101 String title,
102 String link,
103 String url ) {
104
105 out.println( "onImage" );
106
107 }
108
109 public void onImageEnd() {
110 out.println( "onImageEnd" );
111 }
112
113 /**
114 * Called when an RSS item or Atom entry is found.
115 *
116 *
117 */
118 public void onItem( FeedParserState state,
119 String title,
120 String link,
121 String description,
122 String permalink ) {
123
124 out.println( "onItem" );
125
126 out.println( "\ttitle : " + title );
127 out.println( "\tlink : '" + link + "'" );
128 out.println( "\tdescription : " + description );
129
130 }
131
132 public void onItemEnd() {
133 out.println( "onItemEnd" );
134 }
135
136 /**
137 * Called when the feed has finished parsing.
138 *
139 *
140 */
141 public void finished() {
142 out.println( "finished" );
143 }
144
145 /**
146 * Called when a new Folder is found. If feeds are in the default root
147 * folder this method is not called.
148 *
149 *
150 */
151 public void onFolder( FeedParserState state,
152 String name ) throws FeedParserException {
153
154 out.println( "onFolder: " + name );
155
156 }
157
158 public void onFolderEnd() throws FeedParserException {
159
160 }
161
162 public void onContent( FeedParserState state,
163 String type,
164 String format,
165 String encoding,
166 String mode,
167 String value,
168 boolean isSummary ) throws FeedParserException {
169
170 out.println( "onContent: " );
171 out.println( value );
172
173 }
174
175 public void onCreated( FeedParserState state, Date date ) throws FeedParserException {
176
177 out.println( "onCreated: " + date.toString() );
178
179 }
180
181 public void onGUID( FeedParserState state,
182 String value,
183 boolean isPermalink ) throws FeedParserException {
184
185 out.println( "onGUID: " + value );
186 out.println( " isPermalink: " + isPermalink );
187
188 }
189
190 public void onAuthor( FeedParserState state,
191 String name,
192 String email,
193 String resource ) throws FeedParserException {
194
195 out.println( "onAuthor: name:" + name );
196 out.println( " email: " + email );
197 out.println( " resource: " + resource );
198
199 }
200
201 public void onComments( FeedParserState state,
202 String resource ) throws FeedParserException {
203
204 out.println( "onComments: " + resource );
205
206 }
207
208 public void onCommentsFeed( FeedParserState state,
209 String resource ) throws FeedParserException {
210
211 out.println( "onCommentsFeed: " + resource );
212
213 }
214
215 // **** LinkFeedParserListener **********************************************
216
217 /**
218 *
219 *
220 * @param length The length of the content or -1 if not specified.
221 */
222 public void onLink( FeedParserState state,
223 String rel,
224 String type,
225 String href,
226 String title,
227 long length ) throws FeedParserException {
228
229 out.println( "onLink: " );
230 out.println( "\trel: " + rel );
231 out.println( "\thref: " + href );
232 out.println( "\ttype: " + type );
233
234 }
235
236 public void onLocale( FeedParserState state, Locale locale ) throws FeedParserException {
237
238 out.println( "onLocale: " + locale );
239
240 }
241
242 public void onLocaleEnd() throws FeedParserException {
243
244 out.println( "onLocaleEnd" );
245
246 }
247
248 public void onRelation( FeedParserState state,
249 String value ) {
250
251 out.println( "onRelation: " + value );
252
253 }
254
255 public void onRelationEnd() {
256 out.println( "onRelationEnd" );
257 }
258
259 // **** TagFeedParserListener ***********************************************
260
261 public void onTag( FeedParserState state,
262 String tag,
263 String tagspace ) throws FeedParserException {
264
265 out.println( "onTag: tag: " + tag + " tagspace: " + tagspace );
266
267 }
268
269 public void onTagEnd() throws FeedParserException {
270 out.println( "onTagEnd" );
271 }
272
273 // **** ModContentFeedParserListener ****************************************
274
275 public void onContentEncoded( FeedParserState state,
276 String value ) throws FeedParserException {
277
278 out.println( "onContentEncoded: " );
279 out.println( value );
280
281 }
282
283 public void onContentItem( FeedParserState state,
284 String format,
285 String encoding,
286 Element value ) throws FeedParserException {
287
288 out.println( "onContentItem: " );
289 out.println( value );
290
291 }
292
293 }