Interface Driver

All Superinterfaces:
Factory, OptionalFactory
All Known Subinterfaces:
FileDriver
All Known Implementing Classes:
DefaultDriver, DefaultFileDriver, NetCDFDriver

public interface Driver extends OptionalFactory, Factory
A driver adding the ability to work with a new coverage format or service.

Classes implementing this interface basically act as factory for creating connections to coverage sources like files, WCS services, WMS services, databases, etc...

This class also offers basic create / delete functionality (which can be useful for file based coverage formats).

Purpose of this class is to provide basic information about a certain coverage service/format as well as about the parameters needed in order to connect to a source which such a service/format is able to work against.

Notice that as part as the roll of a "factory" interface this class makes available an isAvailable() method which should check if all the needed dependencies which can be jars as well as native libs or configuration files.

Since:
2.5
Author:
Simone Giannecchini, GeoSolutions., Jody Garnett
  • Method Details

    • getName

      String getName()
      Unique name (non human readable) that can be used to refer to this implementation.

      While the Title and Description will change depending on the users local this name will be consistent. Please note that a given file may be readable by several Drivers (the description of each implementation should be provided to the user so they can make an intellegent choice in the matter).

      Returns:
      name of this Driver
    • getTitle

      Human readable title for this Driver.
      Returns:
      human readable title for presentation in user interfaces
    • getDescription

      InternationalString getDescription()
      Describe the nature of this Driver implementation.

      A description of this Driver type; the description should indicate the format or service being made available in human readable terms.

      Returns:
      A human readable description that is suitable for inclusion in a list of available Drivers.
    • isAvailable

      boolean isAvailable()
      Test to see if this Driver is available, if it has all the appropriate dependencies (jars or libraries).

      One may ask how this is different than #canConnect(Map), and basically available can be used by finder mechanisms to list available Drivers.

      Specified by:
      isAvailable in interface OptionalFactory
      Returns:
      true if and only if this factory has all the appropriate dependencies on the classpath to create DataStores.
    • canAccess

      boolean canAccess(Driver.DriverCapabilities operation, Map<String,Serializable> params)
    • getParameterInfo

      Map<String,Parameter<?>> getParameterInfo(Driver.DriverCapabilities operation)
    • getDriverCapabilities

      EnumSet<Driver.DriverCapabilities> getDriverCapabilities()
    • access

      CoverageAccess access(Driver.DriverCapabilities opreation, Map<String,Serializable> params, Hints hints, ProgressListener listener) throws IOException
      Simone: Return null in case the delete succeds. TODO think about a neater approach
      Throws:
      IOException