1 /*
2 * Copyright 1999,2004 The Apache Software Foundation.
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 org.apache.commons.feedparser.locate.blogservice;
18
19 import org.apache.commons.feedparser.FeedParserException;
20 import org.apache.commons.feedparser.locate.*;
21
22 /**
23 * Models an unknown blog service, encapsulating whether a given weblog
24 * is this type of service and where it usually keeps its feeds.
25 *
26 * @author Brad Neuberg, bkn3@columbia.edu
27 */
28 public class Unknown extends BlogService {
29
30 /** Returns whether we can trust the results of this blog service's
31 * autodiscovery links. For example, TextAmerica returns invalid
32 * autodiscovery results.
33 */
34 public boolean hasValidAutoDiscovery() {
35 return true;
36 }
37
38 /** Returns whether we should follow HTTP redirects for this blog service.
39 * Some services don't implement HTTP redirects correctly, while others,
40 * like Xanga, require it.
41 */
42 public boolean followRedirects() {
43 return false;
44 }
45
46 /** Determines if the weblog at the given resource and with the given
47 * content is this blog service.
48 * @param resource A full URI to this resource, such as
49 * "http://www.codinginparadise.org".
50 * @param content The full HTML content at the resource's URL.
51 * @throws FeedParserException Thrown if an error occurs while
52 * determining the type of this weblog.
53 */
54 public boolean isThisService(String resource, String content)
55 throws FeedParserException {
56 return false;
57 }
58
59 /**
60 * Returns an array of FeedReferences that contains information on the
61 * usual locations this blog service contains its feed. The feeds should
62 * be ordered by quality, so that higher quality feeds come before lower
63 * quality ones (i.e. you would want to have an Atom FeedReference
64 * object come before an RSS 0.91 FeedReference object in this list).
65 * @param resource A URL to the given weblog that might be used to build
66 * up where feeds are usually located.
67 * @param content The full content of the resource URL, which might
68 * be useful to determine where feeds are usually located. This can be
69 * null.
70 * @throws FeedParserException Thrown if an error occurs while trying
71 * to determine the usual locations of feeds for this service.
72 */
73 public FeedReference[] getFeedLocations(String resource,
74 String content)
75 throws FeedParserException {
76 FeedReference unknownLocations[] =
77 { new FeedReference("atom.xml",FeedReference.ATOM_MEDIA_TYPE),
78 new FeedReference("index.rss", FeedReference.RSS_MEDIA_TYPE),
79 new FeedReference("rss.xml", FeedReference.RSS_MEDIA_TYPE),
80 new FeedReference("index.rdf", FeedReference.RSS_MEDIA_TYPE),
81 new FeedReference("index.xml", FeedReference.RSS_MEDIA_TYPE),
82 new FeedReference("xml/rss.xml", FeedReference.RSS_MEDIA_TYPE) };
83
84 return unknownLocations;
85 }
86 }