1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.jetspeed.services.urlmanager;
18
19 import org.apache.turbine.services.Service;
20 import java.util.List;
21
22 /***
23 * <p>This service provides a central repository for storing URL
24 * informations</p>
25 * <strong>It should be extended to also provide access to their contents</strong>
26 *
27 * @author <a href="mailto:raphael@apache.org">Raphaël Luta</a>
28 * @version $Id: URLManagerService.java,v 1.6 2004/02/23 03:30:47 jford Exp $
29 */
30 public interface URLManagerService extends Service {
31
32 /***
33 * The service name
34 */
35 public String SERVICE_NAME = "URLManager";
36
37 /***
38 * Matches any status in a list() operation
39 */
40 public int STATUS_ANY = -1;
41
42 /***
43 * Current status is unknown
44 */
45 public int STATUS_UNKNOWN = 0;
46
47 /***
48 * The URL can be fetched corretcly
49 */
50 public int STATUS_OK = 1;
51
52 /***
53 * The URL has permanent fatal errors
54 */
55 public int STATUS_UNREACHABLE = 2;
56
57 /***
58 * A possibly transient problem prevented the system to fetch this URL
59 */
60 public int STATUS_TEMPORARY_UNAVAILABLE = 4;
61
62 /***
63 * The content of this URL is corrupted or unparseable
64 */
65 public int STATUS_CONTENT_ERROR = 8;
66
67 /***
68 * This URL is not currently available for use
69 */
70 public int STATUS_BAD = STATUS_UNREACHABLE | STATUS_TEMPORARY_UNAVAILABLE | STATUS_CONTENT_ERROR;
71
72 /***
73 * Registers a new URL record
74 *
75 * @param url the url to register
76 */
77 public void register( String url );
78
79 /***
80 * Registers a new URL record. If the url is already registered in
81 * the system, updates the status of this URL info record
82 *
83 * @param url the url to register
84 * @param status the status of this url
85 */
86 public void register( String url, int status );
87
88 /***
89 * Registers a new URL record. If the url is already registered in
90 * the system, updates both the status and the message of this URL
91 * info record
92 *
93 * @param url the url to register
94 * @param status the status of this url
95 * @param message a descriptive message of the status
96 */
97 public void register( String url, int status, String message );
98
99 /***
100 * Register or replace an URL record. All records are keyed to
101 * the imutable URL of URLInfo.
102 *
103 * @param info the info record to store
104 */
105 public void register( URLInfo info );
106
107 /***
108 * Unregister an URL from the repository
109 *
110 * @param url the url to remove
111 */
112 public void unregister( String url );
113
114 /***
115 * Get the information record stored in the database about
116 * an URL.
117 *
118 * @param url the url whose record is sought
119 * @return the description record found in the repository or null.
120 */
121 public URLInfo getInfo( String url );
122
123 /***
124 * Test whether the URL is currently believed to be OK by this
125 * repository.
126 *
127 * @param url the url to be tested
128 * @return false is the url is known by this repository and has
129 * a status indicating an error, true otherwise.
130 */
131 public boolean isOK( String url );
132
133 /***
134 * List of the current known URLs in the repository
135 *
136 * @return a List of URL strings known to this repository
137 */
138 public List list();
139
140 /***
141 * List of the current known URLs in the repository which have
142 * the given status.
143 *
144 * @param status the status to be retrieved. May be
145 * {@link URLManagerService#STATUS_ANY} to indicate any status
146 * @return a List of URL strings known to this repository with this status
147 */
148 public List list( int status );
149
150 /***
151 * Return the proxy's port for a protocol.
152 *
153 * @param protocol The protocol that the proxy supports, e.g. 'http'
154 * @return The port of the proxy (1-65535), or -1 if no port was specified (= use default)
155 */
156 public int getProxyPort( String protocol );
157
158 /***
159 * Return the proxy's hostname for a protocol.
160 *
161 * @param protocol The protocol that the proxy supports, e.g. 'http'
162 * @return The hostname of the proxy, or <code>null</code> if no proxy is specified for this protocol
163 */
164 public String getProxyHost( String protocol );
165
166 }