OptionSetter

public class OptionSetter
extends Object

java.lang.Object
   ↳ com.android.tradefed.config.OptionSetter


填充 Option 字段。

支持设置字节、short、int、long、float 和 double 等数字字段。这包括已装箱和未装箱的版本(例如 int 与 Integer)。如果将实参设置为与所需类型匹配时出现问题,则会抛出 ConfigurationException

只需将字符串实参封装在 File 对象中即可支持文件选项字段,而无需测试文件是否存在。

只要参数类型受选项 setter 支持,系统就支持参数化集合字段(例如 List<File> 和 Set<String>)。集合字段应使用适当的集合实例进行初始化。

系统将处理所有字段,包括公共字段、受保护字段、默认(软件包)访问字段、私有字段和继承字段。

从 dalvik.runner.OptionParser 移植

另见:

摘要

嵌套类

class OptionSetter.Handler<T>

 

class OptionSetter.MapHandler

用于处理 Map 字段值的 Handler。 

class OptionSetter.OptionFieldsForName

用于存储具有指定名称的选项字段列表的容器。 

常量

char NAMESPACE_SEPARATOR

公共构造函数

OptionSetter(Object... optionSources)

构造一个新的 OptionParser,用于设置“optionSources”的 @Option 字段。

OptionSetter(Collection<Object> optionSources)

构造一个新的 OptionParser,用于设置“optionSources”的 @Option 字段。

公共方法

static Object getFieldValue(Field field, Object optionObject)

返回给定 Field 的值,并处理所有异常。

static OptionSetter.Handler<T> getHandler(Type type)
IKeyStoreClient getKeyStore()
static List<Field> getOptionFieldsForClass(Class<?> optionClass)

获取指定类的所有 Option 字段(包括声明的字段和继承的字段)的列表。

String getTypeForOption(String name)

返回一个字符串,用于描述具有给定名称的字段的类型。

boolean isBooleanOption(String name)
boolean isMapOption(String name)
static boolean setFieldValue(String optionName, Object optionSource, Field field, Object key, Object value, boolean checkOption)

设置指定 Option 字段的值。

void setKeyStore(IKeyStoreClient keyStore)
List<OptionSetter.FieldDef> setOptionValue(String optionName, String valueText)

为非映射选项设置值。

List<OptionSetter.FieldDef> setOptionValue(String optionName, String keyText, String valueText)

为选项设置值。

final Set<File> validateRemoteFilePath(DynamicRemoteFileResolver resolver)

遍历所有 File 选项类型,并检查其路径是否应解析。

受保护的方法

Collection<String> getUnsetMandatoryOptions()

返回所有标记为 mandatory 但仍未设置的 Option 的名称。

常量

NAMESPACE_SEPARATOR

public static final char NAMESPACE_SEPARATOR

常量值: 58 (0x0000003a)

公共构造函数

OptionSetter

public OptionSetter (Object... optionSources)

构造一个新的 OptionParser,用于设置“optionSources”的 @Option 字段。

参数
optionSources Object

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

OptionSetter

public OptionSetter (Collection<Object> optionSources)

构造一个新的 OptionParser,用于设置“optionSources”的 @Option 字段。

参数
optionSources Collection

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

公共方法

getFieldValue

public static Object getFieldValue (Field field, 
                Object optionObject)

返回给定 Field 的值,并处理所有异常。

参数
field FieldField

optionObject Object:要从中获取字段值的 Object

返回
Object 字段的值(以 Objectnull 形式表示)

getHandler

public static OptionSetter.Handler<T> getHandler (Type type)

参数
type Type

返回
OptionSetter.Handler<T>

抛出
ConfigurationException

getKeyStore

public IKeyStoreClient getKeyStore ()

返回
IKeyStoreClient

getOptionFieldsForClass

public static List<Field> getOptionFieldsForClass (Class<?> optionClass)

获取给定类的所有 Option 字段(包括已声明和继承的字段)的列表。

参数
optionClass Class:要搜索的 Class

返回
List<Field> 带有 Option 注释的字段的 Collection

getTypeForOption

public String getTypeForOption (String name)

返回一个字符串,用于描述具有给定名称的字段的类型。

参数
name StringOption 字段名称

返回
String 一个 String,用于描述字段的类型

抛出
ConfigurationException 如果找不到相应字段

isBooleanOption

public boolean isBooleanOption (String name)

参数
name String

返回
boolean

抛出
ConfigurationException

isMapOption

public boolean isMapOption (String name)

参数
name String

返回
boolean

抛出
ConfigurationException

setFieldValue

public static boolean setFieldValue (String optionName, 
                Object optionSource, 
                Field field, 
                Object key, 
                Object value, 
                boolean checkOption)

设置指定 Option 字段的值。

参数
optionName StringOption 中指定的名称

optionSource Object:要设置的 Object

field FieldField

key ObjectMapMultiMap 字段中条目的键,或 null。

value Object:要设置的值

checkOption boolean

返回
boolean 相应字段是否已设置。

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

另见:

setKeyStore

public void setKeyStore (IKeyStoreClient keyStore)

参数
keyStore IKeyStoreClient

setOptionValue

public List<OptionSetter.FieldDef> setOptionValue (String optionName, 
                String valueText)

为非地图选项设置值。

参数
optionName String:要设置的选项的名称

valueText String:值

返回
List<OptionSetter.FieldDef> 一个 ERROR(FieldDef/com.android.tradefed.config.OptionSetter.FieldDef FieldDef) 列表,对应于每个已修改的对象字段。

抛出
ConfigurationException 如果找不到 Option 或 valueText 的类型错误

setOptionValue

public List<OptionSetter.FieldDef> setOptionValue (String optionName, 
                String keyText, 
                String valueText)

设置选项的值。

参数
optionName String:要设置的选项的名称

keyText String:地图选项的键,或 null。

valueText String:值

返回
List<OptionSetter.FieldDef> 一个 ERROR(FieldDef/com.android.tradefed.config.OptionSetter.FieldDef FieldDef) 列表,对应于每个已修改的对象字段。

抛出
ConfigurationException 如果找不到 Option 或 valueText 的类型错误

validateRemoteFilePath

public final Set<File> validateRemoteFilePath (DynamicRemoteFileResolver resolver)

遍历所有 File 选项类型,并检查是否应解析其路径。

参数
resolver DynamicRemoteFileResolver:用于解析文件的 DynamicRemoteFileResolver

返回
Set<File> 以这种方式解决的 File 列表。

抛出
com.android.tradefed.build.BuildRetrievalError
BuildRetrievalError

受保护的方法

getUnsetMandatoryOptions

protected Collection<String> getUnsetMandatoryOptions ()

返回所有标记为 mandatory 但仍未设置的 Option 的名称。

返回
Collection<String> 一个 CollectionString,包含未设置的必需选项的(非限定)名称。

抛出
ConfigurationException 如果待检查的字段无法访问