public class DataProvidersManager extends Object
数据提供者
。
这个类是所有数据加载功能的主要访问点。例如,用于加载IERS框架使用的地球定向参数,加载时间尺度使用的UTC闰秒,加载行星星历等。
它是可定制的:用户可以随意添加自己的数据提供者。这使他们可以例如使用数据库或现有的数据加载库,以便将一个启用了Orekit的应用程序嵌入到具有自己数据处理机制的全局系统中。对提供者的数量没有上限,但通常每个应用程序只会使用几个。
如果在尝试feed
文件加载器时提供者列表为空,则会自动调用addDefaultProviders()
方法来设置默认配置。此默认配置包含由java属性orekit.data.path
指定的路径列表的每个组件的一个数据提供者
。有关详细信息,请参阅feed
方法的文档。如果列表不为空,则不会设置默认提供者配置。如果用户想同时拥有默认提供者和额外提供者,则必须显式调用addDefaultProviders()
方法。
默认配置使用预定义的一组数据过滤器
,已经处理了gzip压缩文件(通过.gz
后缀识别)、Unix压缩文件(通过.Z
后缀识别)和Hatanaka压缩的RINEX文件。用户可以访问filters manager
来设置用于处理特定类型过滤器(解压缩、解密等)的自定义过滤器。
DirectoryCrawler
, ClasspathCrawler
Modifier and Type | Field and Description |
---|---|
static String |
OREKIT_DATA_PATH
默认配置的根目录或zip/jar文件路径的属性名称。
|
Constructor and Description |
---|
DataProvidersManager()
使用默认配置构建一个实例。
|
Modifier and Type | Method and Description |
---|---|
void |
addDefaultProviders()
添加默认提供者配置。
|
void |
addProvider(DataProvider provider)
将数据提供者添加到支持列表中。
|
void |
clearLoadedDataNames()
清除已加载的数据文件名集合。
|
void |
clearProviders()
移除所有数据提供者。
|
boolean |
feed(String supportedNames, DataLoader loader)
通过浏览所有数据提供者为数据文件加载器提供数据。
|
FiltersManager |
getFiltersManager()
获取过滤器管理器。
|
Set<String> |
getLoadedDataNames()
获取已加载的数据文件名集合的不可修改视图。
|
List<DataProvider> |
getProviders()
获取支持的提供者列表的不可修改视图。
|
boolean |
isSupported(DataProvider provider)
检查是否支持某个提供者。
|
DataProvider |
removeProvider(DataProvider provider)
移除一个提供者。
|
void |
resetFiltersToDefault()
将所有过滤器重置为默认值。
|
public FiltersManager getFiltersManager()
public void resetFiltersToDefault()
此方法清除
过滤器管理器
,然后添加
回默认过滤器
public void addDefaultProviders()
默认配置包含由java属性orekit.data.path
指定的路径列表的每个组件的一个数据提供者
。
如果未设置或为null,则库将无法使用任何数据(例如不会应用极点校正,只会考虑预定义的UTC步长)。在这种情况下不会触发任何错误。
如果设置了该属性,则必须包含一系列现有目录或zip/jar存档。将为每个目录设置一个DirectoryCrawler
实例,并为每个zip/jar存档设置一个ZipJarCrawler
实例(配置为在文件系统中查找存档)。java属性中的列表元素使用System.getProperty("path.separator")
返回的操作系统的标准路径分隔符进行分隔。这个标准路径分隔符在Linux和Unix类型系统上是“:”,在Windows类型系统上是“;”。
public void addProvider(DataProvider provider)
provider
- 要添加的数据提供者
removeProvider(DataProvider)
, clearProviders()
, isSupported(DataProvider)
, getProviders()
public DataProvider removeProvider(DataProvider provider)
provider
- 要移除的提供者实例
addProvider(DataProvider)
, clearProviders()
, isSupported(DataProvider)
, getProviders()
public void clearProviders()
public boolean isSupported(DataProvider provider)
provider
- 要检查的提供者
addProvider(DataProvider)
, removeProvider(DataProvider)
, clearProviders()
, getProviders()
public List<DataProvider> getProviders()
addProvider(DataProvider)
, removeProvider(DataProvider)
, clearProviders()
, isSupported(DataProvider)
public Set<String> getLoadedDataNames()
返回的名称正是传递给DataLoader.loadData
方法的名称。
feed(String, DataLoader)
, clearLoadedDataNames()
public void clearLoadedDataNames()
getLoadedDataNames()
public boolean feed(String supportedNames, DataLoader loader)
如果使用空的提供程序列表调用此方法,则会设置默认提供程序配置。此默认配置仅包含一个数据提供程序
:一个从目录层次结构中的某个位置加载数据的DirectoryCrawler
实例。如果列表不为空,则不会添加此默认提供程序。如果用户希望同时拥有默认提供程序和其他提供程序,则必须显式添加它。
提供程序按照它们被添加
的顺序使用。一旦一个提供程序能够为数据加载器提供数据,循环就会停止。如果没有提供程序能够为数据加载器提供数据,则会抛出最后触发的错误。
supportedNames
- 访问者支持的文件名的正则表达式
loader
- 要使用的数据加载器
Copyright © 2002-2023 CS GROUP. All rights reserved.