public class DataProvidersManager extends Object
data providers
.
This class is the primary point of access for all data loading features. It is used for example to load Earth Orientation Parameters used by IERS frames, to load UTC leap seconds used by time scales, to load planetary ephemerides...
It is user-customizable: users can add their own data providers at will. This allows them for example to use a database or an existing data loading library in order to embed an Orekit enabled application in a global system with its own data handling mechanisms. There is no upper limitation on the number of providers, but often each application will use only a few.
If the list of providers is empty when attempting to feed
a file loader, the addDefaultProviders()
method is called
automatically to set up a default configuration. This default configuration
contains one data provider
for each component of the
path-like list specified by the java property orekit.data.path
.
See the feed
method documentation for further
details. The default providers configuration is not set up if the list
is not empty. If users want to have both the default providers and additional
providers, they must call explicitly the addDefaultProviders()
method.
The default configuration uses a predefined set of data filters
that already handled gzip-compressed files (recognized by the .gz
suffix),
Unix-compressed files (recognized by the .Z
suffix) and Hatanaka compressed
RINEX files. Users can access the filters manager
to
set up custom filters for handling specific types of filters (decompression,
deciphering...).
DirectoryCrawler
,
ClasspathCrawler
Modifier and Type | Field and Description |
---|---|
static String |
OREKIT_DATA_PATH
Name of the property defining the root directories or zip/jar files path for default configuration.
|
Constructor and Description |
---|
DataProvidersManager()
Build an instance with default configuration.
|
Modifier and Type | Method and Description |
---|---|
void |
addDefaultProviders()
Add the default providers configuration.
|
void |
addProvider(DataProvider provider)
Add a data provider to the supported list.
|
void |
clearLoadedDataNames()
Clear the set of data file names that have been loaded.
|
void |
clearProviders()
Remove all data providers.
|
boolean |
feed(String supportedNames,
DataLoader loader)
Feed a data file loader by browsing all data providers.
|
FiltersManager |
getFiltersManager()
Get the manager for filters.
|
Set<String> |
getLoadedDataNames()
Get an unmodifiable view of the set of data file names that have been loaded.
|
List<DataProvider> |
getProviders()
Get an unmodifiable view of the list of supported providers.
|
boolean |
isSupported(DataProvider provider)
Check if some provider is supported.
|
DataProvider |
removeProvider(DataProvider provider)
Remove one provider.
|
void |
resetFiltersToDefault()
Reset all filters to default.
|
public static final String OREKIT_DATA_PATH
public DataProvidersManager()
public FiltersManager getFiltersManager()
public void resetFiltersToDefault()
This method clears
the
filter manager
and then
adds
back the
default filters
public void addDefaultProviders()
The default configuration contains one data provider
for each component of the path-like list specified by the java property
orekit.data.path
.
If the property is not set or is null, no data will be available to the library (for example no pole corrections will be applied and only predefined UTC steps will be taken into account). No errors will be triggered in this case.
If the property is set, it must contains a list of existing directories or zip/jar
archives. One DirectoryCrawler
instance will be set up for each
directory and one ZipJarCrawler
instance (configured to look for the
archive in the filesystem) will be set up for each zip/jar archive. The list
elements in the java property are separated using the standard path separator for
the operating system as returned by System.getProperty("path.separator")
. This standard path separator is ":" on
Linux and Unix type systems and ";" on Windows types systems.
public void addProvider(DataProvider provider)
provider
- data provider to addremoveProvider(DataProvider)
,
clearProviders()
,
isSupported(DataProvider)
,
getProviders()
public DataProvider removeProvider(DataProvider provider)
provider
- provider instance to removeaddProvider(DataProvider)
,
clearProviders()
,
isSupported(DataProvider)
,
getProviders()
public void clearProviders()
public boolean isSupported(DataProvider provider)
provider
- provider to checkaddProvider(DataProvider)
,
removeProvider(DataProvider)
,
clearProviders()
,
getProviders()
public List<DataProvider> getProviders()
addProvider(DataProvider)
,
removeProvider(DataProvider)
,
clearProviders()
,
isSupported(DataProvider)
public Set<String> getLoadedDataNames()
The names returned are exactly the ones that were given to the DataLoader.loadData
method.
feed(String, DataLoader)
,
clearLoadedDataNames()
public void clearLoadedDataNames()
getLoadedDataNames()
public boolean feed(String supportedNames, DataLoader loader)
If this method is called with an empty list of providers, a default
providers configuration is set up. This default configuration contains
only one data provider
: a DirectoryCrawler
instance that loads data from files located somewhere in a directory hierarchy.
This default provider is not added if the list is not empty. If users
want to have both the default provider and other providers, they must add it
explicitly.
The providers are used in the order in which they were added
. As soon as one provider is able to feed the data loader, the loop is
stopped. If no provider is able to feed the data loader, then the last error
triggered is thrown.
supportedNames
- regular expression for file names supported by the visitorloader
- data loader to useCopyright © 2002-2022 CS GROUP. All rights reserved.