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, List<String> unconsumedArgs, IKeyStoreClient keyStoreClient)

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

IConfiguration createConfigurationFromArgs(String[] arrayArgs, List<String> unconsumedArgs)

根据命令行实参创建 IConfiguration

IConfiguration createConfigurationFromArgs(String[] arrayArgs)

一种便捷方法,用于使用 null 实参调用 createConfigurationFromArgs(String[],List)

IGlobalConfiguration createGlobalConfigurationFromArgs(String[] arrayArgs, List<String> remainingArgs)

根据命令行实参创建 IGlobalConfiguration

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

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

void dumpConfig(String configName, PrintStream out)

将配置的内容转储到给定的 PrintStream

List<String> getConfigList(String subPath, boolean loadFromEnv)

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

List<String> 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()

返回 classpath 上配置 XML 文件的路径前缀

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

BufferedInputStream getConfigStream(String name)

加载给定配置名称的 InputStream

ConfigurationDef getConfigurationDef(String name, boolean isGlobal, Map<String, String> templateMap)

检索指定名称的 ConfigurationDef

Map<ConfigurationFactory.ConfigId, 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, 
                List<String> unconsumedArgs, 
                IKeyStoreClient keyStoreClient)

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

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

参数
arrayArgs String:命令行实参

unconsumedArgs List:一个列表,其中将填充与指定配置关联的对象未使用的实参。如果此值为 null,则如果仍有未处理的实参,实现将抛出 ConfigurationException

keyStoreClient IKeyStoreClient:用于获取实参中的敏感信息的 IKeyStoreClient

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

抛出
ConfigurationException

createConfigurationFromArgs

public IConfiguration createConfigurationFromArgs (String[] arrayArgs, 
                List<String> unconsumedArgs)

根据命令行实参创建 IConfiguration

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

参数
arrayArgs String:命令行实参

unconsumedArgs List:一个列表,其中将填充与指定配置关联的对象未使用的实参。如果此值为 null,则如果仍有未处理的实参,实现将抛出 ConfigurationException

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

抛出
ConfigurationException

createConfigurationFromArgs

public IConfiguration createConfigurationFromArgs (String[] arrayArgs)

一种便捷方法,用于使用 null 实参调用 createConfigurationFromArgs(String[],List)。因此,如果仍有未使用的实参,它会抛出 ConfigurationException

参数
arrayArgs String

返回
IConfiguration

抛出
ConfigurationException

createGlobalConfigurationFromArgs

public IGlobalConfiguration createGlobalConfigurationFromArgs (String[] arrayArgs, 
                List<String> remainingArgs)

根据命令行实参创建 IGlobalConfiguration

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

参数
arrayArgs String:命令行实参

remainingArgs List:一个列表,其中将填充未作为全局实参处理的实参

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

抛出
ConfigurationException

createPartialConfigurationFromArgs

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

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

参数
arrayArgs String:命令行实参

keyStoreClient IKeyStoreClient:用于获取实参中的敏感信息的 IKeyStoreClient

allowedObjects Set:允许创建的对象集

delegator TradefedDelegator

返回
IConfiguration 已加载的 IConfiguration

抛出
ConfigurationException

dumpConfig

public void dumpConfig (String configName, 
                PrintStream out)

将配置的内容转储到给定的 PrintStream

参数
configName String:配置名称

out PrintStream:要将输出转储到的 PrintStream

getConfigList

public List<String> getConfigList (String subPath, 
                boolean loadFromEnv)

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

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

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

返回
List<String>

getConfigList

public List<String> getConfigList ()

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

返回
List<String>

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:要将输出转储到的 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:要将输出转储到的 PrintStream

受保护的方法

getBundledConfigStream

protected InputStream getBundledConfigStream (String name)

参数
name String

返回
InputStream

getConfigPrefix

protected String getConfigPrefix ()

返回 classpath 上配置 XML 文件的路径前缀

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

返回
String String带有尾随 / 的路径

getConfigStream

protected BufferedInputStream getConfigStream (String name)

加载给定配置名称的 InputStream

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

返回
BufferedInputStream 用于读取配置内容的 BufferedInputStream

抛出
ConfigurationException 如果找不到配置

getConfigurationDef

protected ConfigurationDef getConfigurationDef (String name, 
                boolean isGlobal, 
                Map<String, String> templateMap)

检索指定名称的 ConfigurationDef

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

isGlobal boolean

templateMap Map

返回
ConfigurationDef ConfigurationDef

抛出
ConfigurationException 如果在加载配置时发生错误

getMapConfig

protected Map<ConfigurationFactory.ConfigId, ConfigurationDef> getMapConfig ()

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

返回
Map<ConfigurationFactory.ConfigId, ConfigurationDef>

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