ConfigurationFactory

public class ConfigurationFactory
extends Object implements IConfigurationFactory

java.lang.Object 中
   ↳ com.android.tradefed.config.ConfigurationFactory


用于创建 IConfiguration 的工厂。

摘要

嵌套类

class ConfigurationFactory.ConfigLoader

实现了 IConfigDefLoader,用于跟踪一个根配置中包含的配置,并在出现循环包含时抛出异常。 

class ConfigurationFactory.ExceptionLoader

 

受保护的构造函数

ConfigurationFactory()

公共方法

void clearMapConfig()

在特定情况下,我们需要清空地图。

IConfiguration createConfigurationFromArgs(String[] arrayArgs, unconsumedArgs)

通过命令行参数创建 IConfiguration

IConfiguration createConfigurationFromArgs(String[] arrayArgs, unconsumedArgs, IKeyStoreClient keyStoreClient)

使用密钥库从命令行参数创建 IConfiguration

IConfiguration createConfigurationFromArgs(String[] arrayArgs)

一种便捷方法,用于使用 null 作为第二个参数调用 ERROR(/#createConfigurationFromArgs(String[],List))

IGlobalConfiguration createGlobalConfigurationFromArgs(String[] arrayArgs, remainingArgs)

使用命令行参数创建 IGlobalConfiguration

IConfiguration createPartialConfigurationFromArgs(String[] arrayArgs, IKeyStoreClient keyStoreClient, allowedObjects, TradefedDelegator delegator)

创建一个仅包含一组所选对象的配置。

void dumpConfig(String configName, PrintStream out)

将配置内容转储到给定的 ERROR(/PrintStream)

getConfigList(String subPath, boolean loadFromEnv)

getConfigList() 的变体,可以指定是否也要加载 从环境中的配置

getConfigList()

返回在类路径上的 JAR 中找到的所有配置的名称列表。

static IConfigurationFactory getInstance()

获取单例 IConfigurationFactory 实例。

void loadAllConfigs(boolean discardExceptions)

加载在类路径和测试用例目录中找到的所有配置。

void loadAndPrintAllConfigs()

一种实用程序方法,用于检查是否能够加载、解析和 所有选项值设置。

void printHelp(PrintStream out)

输出此工厂的帮助输出。

void printHelpForConfig(String[] args, boolean importantOnly, PrintStream out)

输出命令行参数中指定的 IConfiguration 的帮助输出。

如果“args”引用已知配置,系统会根据 XML 创建 IConfiguration 对象,并输出该 IConfiguration 的帮助。

受保护的方法

InputStream getBundledConfigStream(String name)
String getConfigPrefix()

返回类路径上配置 xml 文件的路径前缀

公开,以便单元测试可以模拟。

BufferedInputStream getConfigStream(String name)

加载给定配置名称的 InputStream

ConfigurationDef getConfigurationDef(String name, boolean isGlobal, templateMap)

检索给定名称的 ConfigurationDef

getMapConfig()

可供测试。

boolean isDirectConfiguration(String configName)
String[] reorderArgs(String[] args)

重新排列参数,将 template:map 参数全部移至前面。

IRemoteFileResolver.ResolvedFile resolveRemoteFile(URI configURI, URI destDir)

受保护的构造函数

ConfigurationFactory

protected ConfigurationFactory ()

公共方法

clearMapConfig

public void clearMapConfig ()

在特定情况下,我们需要清空地图。

createConfigurationFromArgs

public IConfiguration createConfigurationFromArgs (String[] arrayArgs, 
                 unconsumedArgs)

通过命令行参数创建 IConfiguration

预期格式为“CONFIG [options]”,其中 CONFIG 是内置配置名称或配置 XML 文件的文件路径。

参数
arrayArgs String:命令行参数

unconsumedArgs :一个列表,用于填充非 与指定配置关联的对象所消耗的电量。如果此值为 null,则如果仍有未处理的参数,实现将抛出 ConfigurationException

返回
IConfiguration 加载的 IConfiguration。委托对象 Option 字段包含 已填充了 args 中的值。

抛出
ConfigurationException

createConfigurationFromArgs

public IConfiguration createConfigurationFromArgs (String[] arrayArgs, 
                 unconsumedArgs, 
                IKeyStoreClient keyStoreClient)

使用密钥库从命令行参数创建 IConfiguration

预期格式为“配置 [选项]”,其中 CONFIG 是内置配置名称或 指向配置 XML 文件的文件路径。

参数
arrayArgs String:命令行参数

unconsumedArgs :一个列表,用于填充非 与指定配置关联的对象所消耗的电量。如果 为 null,则实现将抛出 如果仍然存在任何未处理的参数,则返回 ConfigurationException

keyStoreClient IKeyStoreClient:一个 IKeyStoreClient,用于获取参数中的敏感信息。

返回
IConfiguration 已加载的 IConfiguration。代理对象 Option 字段已填充 args 中的值。

抛出
ConfigurationException

createConfigurationFromArgs

public IConfiguration createConfigurationFromArgs (String[] arrayArgs)

一种便捷方法,用于使用 null 作为第二个参数调用 ERROR(/#createConfigurationFromArgs(String[],List))。因此,如果仍有未使用的实参,它将抛出 ConfigurationException

参数
arrayArgs String

返回
IConfiguration

抛出
ConfigurationException

createGlobalConfigurationFromArgs

public IGlobalConfiguration createGlobalConfigurationFromArgs (String[] arrayArgs, 
                 remainingArgs)

通过命令行参数创建 IGlobalConfiguration

预期格式为“CONFIG [options]”,其中 CONFIG 是内置配置名称或配置 XML 文件的文件路径。

参数
arrayArgs String:命令行参数

remainingArgs :一个列表,用于填充 作为全局参数处理

返回
IGlobalConfiguration 已加载的 IGlobalConfiguration。委托对象 Option 字段 已填充了 args 中的值。

抛出
ConfigurationException

createPartialConfigurationFromArgs

public IConfiguration createPartialConfigurationFromArgs (String[] arrayArgs, 
                IKeyStoreClient keyStoreClient, 
                 allowedObjects, 
                TradefedDelegator delegator)

创建仅包含一组选定对象的配置。

参数
arrayArgs String:命令行参数

keyStoreClient IKeyStoreClient:一个 IKeyStoreClient,用于获取 参数

allowedObjects :允许创建的一组对象

delegator TradefedDelegator

返回
IConfiguration 已加载的 IConfiguration

抛出
ConfigurationException

dumpConfig

public void dumpConfig (String configName, 
                PrintStream out)

将配置内容转储到给定的 ERROR(/PrintStream)

参数
configName String:配置名称

out PrintStream:要将输出转储到的 ERROR(/PrintStream)

getConfigList

public  getConfigList (String subPath, 
                boolean loadFromEnv)

getConfigList() 的变体,用于指定我们是否还想从环境中加载配置。

参数
subPath String:要查找其配置的子目录的名称。如果为 null, 行为与 getConfigList() 相同。

loadFromEnv boolean:如果应在环境变量中加载配置,则为 true。

返回

getConfigList

public  getConfigList ()

返回在类路径的 JAR 中找到的所有配置的名称列表。 不会尝试加载任何配置,因此此列表中可能会包含无法正常运行的配置。

返回

getInstance

public static IConfigurationFactory getInstance ()

获取单例 IConfigurationFactory 实例。

返回
IConfigurationFactory

加载所有配置

public void loadAllConfigs (boolean discardExceptions)

加载类路径和测试用例目录中找到的所有配置。

参数
discardExceptions boolean:如果应忽略任何 ConfigurationException,则为 true。

抛出
com.android.tradefed.config.ConfigurationException
ConfigurationException

loadAndPrintAllConfigs

public void loadAndPrintAllConfigs ()

实用方法,用于检查是否可以加载、解析所有配置以及设置所有选项值。 仅在为了让所依赖的项目能够验证其配置时公开。 不应在控制台中公开。

抛出
ConfigurationException 如果一项或多项配置加载失败

打印帮助

public void printHelp (PrintStream out)

输出此工厂的帮助输出。

输出一般帮助信息,并列出所有可用配置。

参数
out PrintStream:要将输出转储到的 ERROR(/PrintStream)

printHelpForConfig

public void printHelpForConfig (String[] args, 
                boolean importantOnly, 
                PrintStream out)

输出命令行参数中指定的 IConfiguration 的帮助输出,

如果“args”引用已知配置,系统会根据 XML 创建 IConfiguration 对象,并输出该 IConfiguration 的帮助。请注意,所有其他“args”值都将被忽略(即帮助文本将描述从 XML 加载的 Option 的当前值,而不会反映命令行参数设置的选项值。

如果为“args”未引用已知的 IConfiguration,即通用 系统将显示printHelp(PrintStream)帮助。

参数
args String:命令行参数

importantOnly boolean:如果为 true,则输出简略帮助内容,其中仅列出 重要细节

out PrintStream:要将输出转储到的 ERROR(/PrintStream)

受保护的方法

getBundledConfigStream

protected InputStream getBundledConfigStream (String name)

参数
name String

返回
InputStream

getConfigPrefix

protected String getConfigPrefix ()

返回类路径中配置 XML 文件的路径前缀

公开,以便单元测试进行模拟。

返回
String 带尾随 / 的 String 路径

getConfigStream

protected BufferedInputStream getConfigStream (String name)

为给定配置名称加载 InputStream

参数
name String:要加载的配置名称

返回
BufferedInputStream 用于读取配置内容的 ERROR(/BufferedInputStream)

抛出
ConfigurationException 如果找不到配置

getConfigurationDef

protected ConfigurationDef getConfigurationDef (String name, 
                boolean isGlobal, 
                 templateMap)

检索给定名称的 ConfigurationDef

参数
name String:要加载的内置配置的名称或要加载的配置文件的文件路径

isGlobal boolean

templateMap

返回
ConfigurationDef ConfigurationDef

抛出
ConfigurationException 如果加载配置时出错

getMapConfig

protected  getMapConfig ()

公开以供测试。返回 Map 的副本。

返回

isDirectConfiguration

protected boolean isDirectConfiguration (String configName)

参数
configName String

返回
boolean

reorderArgs

protected String[] reorderArgs (String[] args)

重新排列参数,将 template:map 参数全部移到前面。

参数
args String

返回
String[]

resolveRemoteFile 类中的方法

protected IRemoteFileResolver.ResolvedFile resolveRemoteFile (URI configURI, 
                URI destDir)

参数
configURI URI

destDir URI

返回
IRemoteFileResolver.ResolvedFile

抛出
BuildRetrievalError