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

傳回 classpath 中 JAR 所找到的所有設定名稱清單。

static IConfigurationFactory getInstance()

取得單例模式 IConfigurationFactory 例項。

void loadAllConfigs(boolean discardExceptions)

載入 classpath 和測試案例目錄中找到的所有設定。

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 [選項]」,其中 CONFIG 是內建設定名稱或設定 XML 檔案的檔案路徑。

參數
arrayArgs String:指令列引數

unconsumedArgs :清單,會填入與指定設定相關聯的物件未使用到的引數。如果是 null,則如果有任何未處理的引數,實作會擲回 ConfigurationException

傳回
IConfiguration 已載入的 IConfiguration。委派物件 Option 欄位已填入 args 中的值。

擲回
ConfigurationException

createConfigurationFromArgs

public IConfiguration createConfigurationFromArgs (String[] arrayArgs, 
                 unconsumedArgs, 
                IKeyStoreClient keyStoreClient)

使用金鑰庫,從指令列引數建立 IConfiguration

預期格式為「CONFIG [選項]」,其中 CONFIG 是內建設定名稱或設定 XML 檔案的檔案路徑。

參數
arrayArgs String:指令列引數

unconsumedArgs :清單,會填入與指定設定相關聯的物件未使用到的引數。如果是 null,則如果有任何未處理的引數,實作會擲回 ConfigurationException

keyStoreClient IKeyStoreClient:用於在 args 中取得機密資訊的 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 [選項]」,其中 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:用於在 args 中取得機密資訊的 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:要查詢設定的子目錄名稱。如果為空值,則會與 getConfigList() 的行為相同。

loadFromEnv boolean:如果應在環境變數中載入設定,則為 True。

傳回

getConfigList

public  getConfigList ()

傳回 classpath 中 JAR 檔案中找到的所有設定名稱清單。不會嘗試載入任何設定,因此清單中可能會有無法運作的設定。

傳回

getInstance

public static IConfigurationFactory getInstance ()

取得單例模式 IConfigurationFactory 例項。

傳回
IConfigurationFactory

loadAllConfigs

public void loadAllConfigs (boolean discardExceptions)

載入 classpath 和測試案例目錄中找到的所有設定。

參數
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 設定的選項值)。

如果「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 ()

已公開供測試。傳回地圖的副本。

傳回

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