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 the GreyMatter 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 GreyMatter 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 boolean results = false;
57
58 results = hasGenerator(content, "greymatter");
59
60 return results;
61 }
62
63 /**
64 * Returns an array of FeedReferences that contains information on the
65 * usual locations this blog service contains its feed. The feeds should
66 * be ordered by quality, so that higher quality feeds come before lower
67 * quality ones (i.e. you would want to have an Atom FeedReference
68 * object come before an RSS 0.91 FeedReference object in this list).
69 * @param resource A URL to the given weblog that might be used to build
70 * up where feeds are usually located.
71 * @param content The full content of the resource URL, which might
72 * be useful to determine where feeds are usually located. This can be
73 * null.
74 * @throws FeedParserException Thrown if an error occurs while trying
75 * to determine the usual locations of feeds for this service.
76 */
77 public FeedReference[] getFeedLocations(String resource,
78 String content)
79 throws FeedParserException {
80 // FIXME: Implement
81 return new FeedReference[0];
82 }
83 }