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 字段值的 |
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)
返回给定 |
static
OptionSetter.Handler<T>
|
getHandler(Type type)
|
IKeyStoreClient
|
getKeyStore()
|
static
List<Field>
|
getOptionFieldsForClass(Class<?> optionClass)
获取指定类的所有 |
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)
设置指定 |
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)
遍历所有 |
受保护的方法 | |
|---|---|
Collection<String>
|
getUnsetMandatoryOptions()
返回所有标记为 |
常量
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 |
Field:Field |
optionObject |
Object:要从中获取字段值的 Object。 |
| 返回 | |
|---|---|
Object |
字段的值(以 Object 或 null 形式表示) |
getHandler
public static OptionSetter.Handler<T> getHandler (Type type)
| 参数 | |
|---|---|
type |
Type |
| 返回 | |
|---|---|
OptionSetter.Handler<T> |
|
| 抛出 | |
|---|---|
ConfigurationException |
|
getOptionFieldsForClass
public static List<Field> getOptionFieldsForClass (Class<?> optionClass)
获取给定类的所有 Option 字段(包括已声明和继承的字段)的列表。
| 参数 | |
|---|---|
optionClass |
Class:要搜索的 Class |
| 返回 | |
|---|---|
List<Field> |
带有 Option 注释的字段的 Collection |
getTypeForOption
public String getTypeForOption (String name)
返回一个字符串,用于描述具有给定名称的字段的类型。
| 参数 | |
|---|---|
name |
String:Option 字段名称 |
| 返回 | |
|---|---|
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 |
String:Option 中指定的名称 |
optionSource |
Object:要设置的 Object |
field |
Field:Field |
key |
Object:Map 或 MultiMap 字段中条目的键,或 null。 |
value |
Object:要设置的值 |
checkOption |
boolean |
| 返回 | |
|---|---|
boolean |
相应字段是否已设置。 |
| 抛出 | |
|---|---|
|
com.android.tradefed.config.ConfigurationException |
ConfigurationException |
|
另见:
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> |
一个 Collection 的 String,包含未设置的必需选项的(非限定)名称。 |
| 抛出 | |
|---|---|
ConfigurationException |
如果待检查的字段无法访问 |