5582 |
15 Mar 11 |
nicklas |
1 |
/** |
5582 |
15 Mar 11 |
nicklas |
$Id$ |
5582 |
15 Mar 11 |
nicklas |
3 |
|
5582 |
15 Mar 11 |
nicklas |
Copyright (C) 2011 Nicklas Nordborg |
5582 |
15 Mar 11 |
nicklas |
5 |
|
5582 |
15 Mar 11 |
nicklas |
This file is part of BASE - BioArray Software Environment. |
5582 |
15 Mar 11 |
nicklas |
Available at http://base.thep.lu.se/ |
5582 |
15 Mar 11 |
nicklas |
8 |
|
5582 |
15 Mar 11 |
nicklas |
BASE is free software; you can redistribute it and/or |
5582 |
15 Mar 11 |
nicklas |
modify it under the terms of the GNU General Public License |
5582 |
15 Mar 11 |
nicklas |
as published by the Free Software Foundation; either version 3 |
5582 |
15 Mar 11 |
nicklas |
of the License, or (at your option) any later version. |
5582 |
15 Mar 11 |
nicklas |
13 |
|
5582 |
15 Mar 11 |
nicklas |
BASE is distributed in the hope that it will be useful, |
5582 |
15 Mar 11 |
nicklas |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
5582 |
15 Mar 11 |
nicklas |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
5582 |
15 Mar 11 |
nicklas |
GNU General Public License for more details. |
5582 |
15 Mar 11 |
nicklas |
18 |
|
5582 |
15 Mar 11 |
nicklas |
You should have received a copy of the GNU General Public License |
5582 |
15 Mar 11 |
nicklas |
along with BASE. If not, see <http://www.gnu.org/licenses/>. |
5582 |
15 Mar 11 |
nicklas |
21 |
*/ |
5582 |
15 Mar 11 |
nicklas |
22 |
package net.sf.basedb.util.uri; |
5582 |
15 Mar 11 |
nicklas |
23 |
|
5582 |
15 Mar 11 |
nicklas |
24 |
import java.net.URI; |
5582 |
15 Mar 11 |
nicklas |
25 |
|
5599 |
31 Mar 11 |
nicklas |
26 |
import net.sf.basedb.util.extensions.Action; |
5599 |
31 Mar 11 |
nicklas |
27 |
|
5582 |
15 Mar 11 |
nicklas |
28 |
/** |
5582 |
15 Mar 11 |
nicklas |
A connection manager factory is responsible for creating connection |
5582 |
15 Mar 11 |
nicklas |
managers for some subset of URI:s that is supported. A factory implementation |
5582 |
15 Mar 11 |
nicklas |
must be thread-safe since it may be used by more than one thread at |
5582 |
15 Mar 11 |
nicklas |
a time. |
5582 |
15 Mar 11 |
nicklas |
33 |
|
5582 |
15 Mar 11 |
nicklas |
@author Nicklas |
5582 |
15 Mar 11 |
nicklas |
@since 3.0 |
5582 |
15 Mar 11 |
nicklas |
@base.modified $Date$ |
5582 |
15 Mar 11 |
nicklas |
37 |
*/ |
5582 |
15 Mar 11 |
nicklas |
38 |
public interface ConnectionManagerFactory |
5599 |
31 Mar 11 |
nicklas |
39 |
extends Action |
5582 |
15 Mar 11 |
nicklas |
40 |
{ |
5582 |
15 Mar 11 |
nicklas |
41 |
|
5582 |
15 Mar 11 |
nicklas |
42 |
/** |
5599 |
31 Mar 11 |
nicklas |
Get the ID of this connection manager factory. This should be |
5599 |
31 Mar 11 |
nicklas |
a unique string matching the id of extension that has been |
5599 |
31 Mar 11 |
nicklas |
registered with BASE. |
5582 |
15 Mar 11 |
nicklas |
46 |
*/ |
5582 |
15 Mar 11 |
nicklas |
47 |
public String getId(); |
5582 |
15 Mar 11 |
nicklas |
48 |
|
5582 |
15 Mar 11 |
nicklas |
49 |
/** |
5582 |
15 Mar 11 |
nicklas |
Get a short string that is suitable for use in selection lists, etc. |
5582 |
15 Mar 11 |
nicklas |
in client applications. |
5582 |
15 Mar 11 |
nicklas |
@return A string |
5582 |
15 Mar 11 |
nicklas |
53 |
*/ |
5582 |
15 Mar 11 |
nicklas |
54 |
public String getDisplayName(); |
5599 |
31 Mar 11 |
nicklas |
55 |
|
5582 |
15 Mar 11 |
nicklas |
56 |
/** |
5582 |
15 Mar 11 |
nicklas |
Get a longer description that can be used by client applications to |
5582 |
15 Mar 11 |
nicklas |
show more information about the capabilities of the factory to |
5582 |
15 Mar 11 |
nicklas |
the users. |
5582 |
15 Mar 11 |
nicklas |
@return A string or null if no more information is available |
5582 |
15 Mar 11 |
nicklas |
61 |
*/ |
5582 |
15 Mar 11 |
nicklas |
62 |
public String getDescription(); |
5599 |
31 Mar 11 |
nicklas |
63 |
|
5582 |
15 Mar 11 |
nicklas |
64 |
/** |
5582 |
15 Mar 11 |
nicklas |
Does this factory support auto-detection if an URI is |
5582 |
15 Mar 11 |
nicklas |
supported or not? |
5582 |
15 Mar 11 |
nicklas |
67 |
*/ |
5582 |
15 Mar 11 |
nicklas |
68 |
public boolean useAutoDetection(); |
5582 |
15 Mar 11 |
nicklas |
69 |
|
5582 |
15 Mar 11 |
nicklas |
70 |
/** |
5582 |
15 Mar 11 |
nicklas |
Check if the given factory knows how to create a handler |
5582 |
15 Mar 11 |
nicklas |
for the given URI. |
5582 |
15 Mar 11 |
nicklas |
@param uri The URI to check |
5582 |
15 Mar 11 |
nicklas |
74 |
*/ |
5582 |
15 Mar 11 |
nicklas |
75 |
public boolean supports(URI uri); |
5582 |
15 Mar 11 |
nicklas |
76 |
|
5582 |
15 Mar 11 |
nicklas |
77 |
/** |
5582 |
15 Mar 11 |
nicklas |
Create a new handler for accessing the resource at |
5582 |
15 Mar 11 |
nicklas |
the given URI. Unless otherwise noted it is expected that |
5582 |
15 Mar 11 |
nicklas |
this method create a new connection manager for each call. |
6497 |
26 Jun 14 |
nicklas |
<p> |
6497 |
26 Jun 14 |
nicklas |
NOTE! Also consider if it is possible for the connection manager |
6497 |
26 Jun 14 |
nicklas |
to implement the {@link ResumableConnectionManager} interface. |
6497 |
26 Jun 14 |
nicklas |
This will improve support for resuming downloads at a specified |
6497 |
26 Jun 14 |
nicklas |
location. |
5582 |
15 Mar 11 |
nicklas |
86 |
|
5582 |
15 Mar 11 |
nicklas |
@param uri The URI to access (required) |
5582 |
15 Mar 11 |
nicklas |
@param parameters Connection parameters, such as user login/password, etc. |
5582 |
15 Mar 11 |
nicklas |
Optional, unless otherwise is noted by the implementation. |
5582 |
15 Mar 11 |
nicklas |
@return An URI handler |
5582 |
15 Mar 11 |
nicklas |
91 |
*/ |
5582 |
15 Mar 11 |
nicklas |
92 |
public ConnectionManager createConnectionManager(URI uri, ConnectionParameters parameters); |
5582 |
15 Mar 11 |
nicklas |
93 |
|
5582 |
15 Mar 11 |
nicklas |
94 |
} |