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

傳回類別路徑上設定 XML 檔案的路徑前置字元

公開,以便單元測試可以模擬。

BufferedInputStream getConfigStream(String name)

Loads an InputStream for given config name

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:用於在 args 中取得私密資訊的 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:用於在 args 中取得機密資訊的 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:要搜尋設定的子目錄名稱。如果為空值,則行為與 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 ()

傳回類別路徑上設定 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)

重新排序 args,將 template:map args 全數移至前端。

參數
args String

傳回
String[]

resolveRemoteFile

protected IRemoteFileResolver.ResolvedFile resolveRemoteFile (URI configURI, 
                URI destDir)

參數
configURI URI

destDir URI

傳回
IRemoteFileResolver.ResolvedFile

擲回
BuildRetrievalError