src/core/net/sf/basedb/util/uri/ConnectionManagerFactory.java

Code
Comments
Other
Rev Date Author Line
5582 15 Mar 11 nicklas 1 /**
5582 15 Mar 11 nicklas 2   $Id$
5582 15 Mar 11 nicklas 3
5582 15 Mar 11 nicklas 4   Copyright (C) 2011 Nicklas Nordborg
5582 15 Mar 11 nicklas 5
5582 15 Mar 11 nicklas 6   This file is part of BASE - BioArray Software Environment.
5582 15 Mar 11 nicklas 7   Available at http://base.thep.lu.se/
5582 15 Mar 11 nicklas 8
5582 15 Mar 11 nicklas 9   BASE is free software; you can redistribute it and/or
5582 15 Mar 11 nicklas 10   modify it under the terms of the GNU General Public License
5582 15 Mar 11 nicklas 11   as published by the Free Software Foundation; either version 3
5582 15 Mar 11 nicklas 12   of the License, or (at your option) any later version.
5582 15 Mar 11 nicklas 13
5582 15 Mar 11 nicklas 14   BASE is distributed in the hope that it will be useful,
5582 15 Mar 11 nicklas 15   but WITHOUT ANY WARRANTY; without even the implied warranty of
5582 15 Mar 11 nicklas 16   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
5582 15 Mar 11 nicklas 17   GNU General Public License for more details.
5582 15 Mar 11 nicklas 18
5582 15 Mar 11 nicklas 19   You should have received a copy of the GNU General Public License
5582 15 Mar 11 nicklas 20   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 29   A connection manager factory is responsible for creating connection
5582 15 Mar 11 nicklas 30   managers for some subset of URI:s that is supported. A factory implementation
5582 15 Mar 11 nicklas 31   must be thread-safe since it may be used by more than one thread at
5582 15 Mar 11 nicklas 32   a time. 
5582 15 Mar 11 nicklas 33
5582 15 Mar 11 nicklas 34   @author Nicklas
5582 15 Mar 11 nicklas 35   @since 3.0
5582 15 Mar 11 nicklas 36   @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 43     Get the ID of this connection manager factory. This should be
5599 31 Mar 11 nicklas 44     a unique string matching the id of extension that has been 
5599 31 Mar 11 nicklas 45     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 50     Get a short string that is suitable for use in selection lists, etc.
5582 15 Mar 11 nicklas 51     in client applications.
5582 15 Mar 11 nicklas 52     @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 57     Get a longer description that can be used by client applications to
5582 15 Mar 11 nicklas 58     show more information about the capabilities of the factory to
5582 15 Mar 11 nicklas 59     the users.
5582 15 Mar 11 nicklas 60     @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 65     Does this factory support auto-detection if an URI is
5582 15 Mar 11 nicklas 66     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 71     Check if the given factory knows how to create a handler 
5582 15 Mar 11 nicklas 72     for the given URI.
5582 15 Mar 11 nicklas 73     @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 78     Create a new handler for accessing the resource at
5582 15 Mar 11 nicklas 79     the given URI. Unless otherwise noted it is expected that
5582 15 Mar 11 nicklas 80     this method create a new connection manager for each call.
6497 26 Jun 14 nicklas 81     <p>
6497 26 Jun 14 nicklas 82     NOTE! Also consider if it is possible for the connection manager
6497 26 Jun 14 nicklas 83     to implement the {@link ResumableConnectionManager} interface.
6497 26 Jun 14 nicklas 84     This will improve support for resuming downloads at a specified
6497 26 Jun 14 nicklas 85     location.
5582 15 Mar 11 nicklas 86     
5582 15 Mar 11 nicklas 87     @param uri The URI to access (required)
5582 15 Mar 11 nicklas 88     @param parameters Connection parameters, such as user login/password, etc. 
5582 15 Mar 11 nicklas 89       Optional, unless otherwise is noted by the implementation.
5582 15 Mar 11 nicklas 90     @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 }