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 [options]”,其中 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

loadAllConfigs

public void loadAllConfigs (boolean discardExceptions)

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

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

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

loadAndPrintAllConfigs

public void loadAndPrintAllConfigs ()

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

抛出
ConfigurationException 如果一个或多个配置未能加载

printHelp

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