Interface CoverageAccess
-
- All Known Subinterfaces:
FileCoverageAccess
- All Known Implementing Classes:
DefaultCoverageAccess
,DefaultFileCoverageAccess
,NetCDFAccess
public interface CoverageAccess
Represents a Physical storage of coverage data (that we have a connection to).Please note that this service may be remote (or otherwise slow). You are doing IO here and should treat this class with respect - please do not access these methods from a display thread.
- Author:
- Simone Giannecchini, GeoSolutions, Jody Garnett
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static class
CoverageAccess.AccessType
Level of access supported.
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description CoverageSource
access(Name name, Map<String,Serializable> params, CoverageAccess.AccessType accessType, Hints hints, ProgressListener listener)
Retrieve aCoverageSource
to access a Named Coverage.boolean
canCreate(Name name, Map<String,Serializable> params, Hints hints, ProgressListener listener)
Test to see if this coverage access is suitable for creating aCoverageStore
referred by Name, with the specified set of parameters.boolean
canDelete(Name name, Map<String,Serializable> params, Hints hints)
Test to see if this coverage access is suitable for deleting aCoverageSource
referred by Name, with the specified set of parameters.CoverageStore
create(Name name, Map<String,Serializable> params, Hints hints, ProgressListener listener)
Create aCoverageStore
with the specified name.boolean
delete(Name name, Map<String,Serializable> params, Hints hints)
Asks thisCoverageAccess
to entirely remove a certain Coverage from the availableCoverageSource
s.void
dispose()
This will free any cached info object or header information.Map<String,Parameter<?>>
getAccessParameterInfo(CoverageAccess.AccessType accessType)
Describes the required (and optional) parameters that can be used to open aCoverageSource
.Map<String,Serializable>
getConnectParameters()
Retrieves the parameters used to connect to this live instance ofCoverageAccess
.int
getCoveragesNumber(ProgressListener listener)
The number of Coverages made available.Driver
getDriver()
Returns theDriver
which has been used to connect to this CoverageAccess.ServiceInfo
getInfo(ProgressListener listener)
Description of the CoverageAccess we are connected to here.List<Name>
getNames(ProgressListener listener)
Names of the available Coverages.MetadataNode
getStorageMetadata(String metadataDomain)
Set<String>
getStorageMetadataDomains()
Set<CoverageAccess.AccessType>
getSupportedAccessTypes()
boolean
isCreateSupported()
Tells me whether or not thisCoverageAccess
supports creation of a new coverage storage.boolean
isDeleteSupported()
Tells me whether or not thisCoverageAccess
supports removal of an existing coverage storage.
-
-
-
Method Detail
-
getDriver
Driver getDriver()
Returns theDriver
which has been used to connect to this CoverageAccess.- Returns:
Driver
used to connect
-
getInfo
ServiceInfo getInfo(ProgressListener listener)
Description of the CoverageAccess we are connected to here.- Returns:
- Description of the CoverageAccess we are connected to here.
-
getSupportedAccessTypes
Set<CoverageAccess.AccessType> getSupportedAccessTypes()
- Returns:
- the
Set
of supportedCoverageAccess.AccessType
s for thisCoverageAccess
instance.
-
getNames
List<Name> getNames(ProgressListener listener)
Names of the available Coverages.Each Coverage named here represents a unique data product that may be accessed via the CoverageSource
- Returns:
- Names of the available contents.
-
getCoveragesNumber
int getCoveragesNumber(ProgressListener listener)
The number of Coverages made available.- Returns:
- getNames( listener ).size()
-
getAccessParameterInfo
Map<String,Parameter<?>> getAccessParameterInfo(CoverageAccess.AccessType accessType)
Describes the required (and optional) parameters that can be used to open aCoverageSource
.
-
access
CoverageSource access(Name name, Map<String,Serializable> params, CoverageAccess.AccessType accessType, Hints hints, ProgressListener listener) throws IOException
Retrieve aCoverageSource
to access a Named Coverage.- Parameters:
name
- Indicate the coverage to accessparams
- Additional parameters as needed to indicate what part of the data set to accessaccessType
- Requested level of accesshints
- Implementation specific hints; please review the javadocs for your Driver for detailslistener
- used to report progress while obtianing access- Throws:
IOException
-
isCreateSupported
boolean isCreateSupported()
Tells me whether or not thisCoverageAccess
supports creation of a new coverage storage.This method will only return true if getSupportedAccessTypes() == READ_WRITE.
- Returns:
true
when removal of of a new coverage storage is supported,false
otherwise.
-
canCreate
boolean canCreate(Name name, Map<String,Serializable> params, Hints hints, ProgressListener listener) throws IOException
Test to see if this coverage access is suitable for creating aCoverageStore
referred by Name, with the specified set of parameters.This method will only return true if getSupportedAccessTypes() == READ_WRITE.
- Parameters:
name
- The name of the data set to createparams
- Indicate the content to be createdhints
- Implementations specific Hints, please check the javadocs for your driver for details- Returns:
- true if a coverage can be created
- Throws:
IOException
-
create
CoverageStore create(Name name, Map<String,Serializable> params, Hints hints, ProgressListener listener) throws IOException
Create aCoverageStore
with the specified name.You can check isCreateSupported() prior to calling this method. Implementing subclasses may throw an
UnsupportedOperationException
in case the related Driver won't allowCoverageStore
creation.- Parameters:
name
- The name of the data set to createparams
- Indicate the content to be createdhints
- Implementations specific Hints, please check the javadocs for your driver for details- Throws:
IllegalStateException
- if getSupportedAccessTypes() == READ_ONLYIOException
-
isDeleteSupported
boolean isDeleteSupported()
Tells me whether or not thisCoverageAccess
supports removal of an existing coverage storage.- Returns:
true
when removal of an existing coverage storage is supported,false
otherwise.
-
canDelete
boolean canDelete(Name name, Map<String,Serializable> params, Hints hints) throws IOException
Test to see if this coverage access is suitable for deleting aCoverageSource
referred by Name, with the specified set of parameters.- Parameters:
name
- Name of data set to remove fromparams
- Used to indicate what what of the data set to remove; ifnull
indicate the entire data set should be removedhints
- Implementation specific Hints; please consult the javadocs for the Driver you are working with.- Throws:
IOException
-
delete
boolean delete(Name name, Map<String,Serializable> params, Hints hints) throws IOException
Asks thisCoverageAccess
to entirely remove a certain Coverage from the availableCoverageSource
s.Many file based formats won't allow to perform such operation, but db based source should be quite happy with it.
- Returns:
true
in case of success.- Throws:
IOException
-
getConnectParameters
Map<String,Serializable> getConnectParameters()
Retrieves the parameters used to connect to this live instance ofCoverageAccess
.- Returns:
- the parameters used to connect to this live instance of
CoverageAccess
.
-
dispose
void dispose()
This will free any cached info object or header information.Often a
CoverageAccess
will keep a file channel open, this will clean that sort of thing up.Once a
CoverageAccess
has been disposed it can be seen as being in unspecified state, hence calling a method on it may have unpredictable results.
-
getStorageMetadata
MetadataNode getStorageMetadata(String metadataDomain)
-
-