OptionSetter

public class OptionSetter
extends Object

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


填入 Option 欄位。

支援設定位元組、short、int、long、float 和 double 欄位等數值欄位。 包括未裝箱和已裝箱的版本 (例如 int 與 Integer)。如果設定引數來配合所需型別時發生問題,系統會擲回 ConfigurationException

只要將字串引數包裝在 File 物件中,即可支援檔案選項欄位,不必測試檔案是否存在。

只要參數類型受到選項設定器支援,系統就會支援參數化集合欄位,例如 List<File> 和 Set<String>。集合欄位應使用適當的集合例項初始化。

系統會處理所有欄位,包括公開、受保護、預設 (套件) 存取權、私有和繼承欄位。

從 dalvik.runner.OptionParser 移植

另請參閱:

摘要

巢狀類別

class OptionSetter.Handler<T>

 

class OptionSetter.MapHandler

Handler,用於處理地圖欄位的值。 

class OptionSetter.OptionFieldsForName

選項欄位清單的容器,並提供名稱。 

常數

char NAMESPACE_SEPARATOR

公用建構函式

OptionSetter(Object... optionSources)

Constructs a new OptionParser for setting the @Option fields of 'optionSources'.

OptionSetter(Collection<Object> optionSources)

Constructs a new OptionParser for setting the @Option fields of 'optionSources'.

公用方法

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)

為設定「optionSources」的 @Option 欄位建構新的 OptionParser。

參數
optionSources Object

擲回
com.android.tradefed.config.ConfigurationException
ConfigurationException

OptionSetter

public OptionSetter (Collection<Object> optionSources)

為設定「optionSources」的 @Option 欄位建構新的 OptionParser。

參數
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 String:在 Option 中指定的名稱

optionSource Object:要設定的 Object

field FieldField

key ObjectMapMultiMap 欄位中項目的鍵,或空值。

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 如果找不到選項或 valueText 的類型錯誤

setOptionValue

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

設定選項的值。

參數
optionName String:要設定的選項名稱

keyText String:地圖選項的鍵,或空值。

valueText String:值

傳回
List<OptionSetter.FieldDef> 與每個已修改物件欄位對應的 ERROR(FieldDef/com.android.tradefed.config.OptionSetter.FieldDef FieldDef) 清單。

擲回
ConfigurationException 如果找不到選項或 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> A Collection of Strings containing the (unqualified) names of unset mandatory options.

擲回
ConfigurationException 要檢查的欄位無法存取