ConfigurationFactory

public class ConfigurationFactory
extends Object implements IConfigurationFactory

java.lang.Object
   ↳ com.android.tradefed.config.ConfigurationFactory
Known Direct Subclasses
SandboxConfigurationFactory Special Configuration factory to handle creation of configurations for Sandboxing purpose. 


Factory for creating IConfiguration.

Summary

Nested classes

class ConfigurationFactory.ConfigId

A simple struct-like class that stores a configuration's name alongside the arguments for any <template-include> tags it may contain. 

class ConfigurationFactory.ConfigLoader

Implementation of IConfigDefLoader that tracks the included configurations from one root config, and throws an exception on circular includes. 

Public methods

void clearMapConfig()

In some particular case, we need to clear the map.

IConfiguration createConfigurationFromArgs(String[] arrayArgs, List<String> unconsumedArgs, IKeyStoreClient keyStoreClient)

Create the IConfiguration from command line arguments with a key store.

IConfiguration createConfigurationFromArgs(String[] arrayArgs, List<String> unconsumedArgs)

Create the IConfiguration from command line arguments.

IConfiguration createConfigurationFromArgs(String[] arrayArgs)

A convenience method which calls createConfigurationFromArgs(String[], List) with a null second argument.

IGlobalConfiguration createGlobalConfigurationFromArgs(String[] arrayArgs, List<String> remainingArgs)

Create a IGlobalConfiguration from command line arguments.

void dumpConfig(String configName, PrintStream out)

Dumps the contents of the configuration to the given PrintStream

List<String> getConfigList(String subPath)

Variation of getConfigList() where we want to reduce the listing to only a subdirectory of the configuration path (res/config/).

List<String> getConfigList(String subPath, boolean loadFromEnv)

Variation of getConfigList(String) where can specify whether or not we also want to load the configuration from the environment.

List<String> getConfigList()

Return the list of names of all the configs found in the JARs on the classpath.

static IConfigurationFactory getInstance()

Get the singleton IConfigurationFactory instance.

void loadAllConfigs(boolean discardExceptions)

Loads all configurations found in classpath and test cases directories.

void loadAndPrintAllConfigs()

Utility method that checks that all configs can be loaded, parsed, and all option values set.

void printHelp(PrintStream out)

Prints help output for this factory.

void printHelpForConfig(String[] args, boolean importantOnly, PrintStream out)

Prints help output for the IConfiguration specified in command line arguments,

If 'args' refers to a known configuration, a IConfiguration object will be created from XML, and help for that IConfiguration will be outputted.

Protected methods

Map<ConfigurationFactory.ConfigIdConfigurationDef> getMapConfig()

Exposed for testing.

String[] reorderArgs(String[] args)

Reorder the args so that template:map args are all moved to the front.

Public methods

clearMapConfig

void clearMapConfig ()

In some particular case, we need to clear the map.

createConfigurationFromArgs

IConfiguration createConfigurationFromArgs (String[] arrayArgs, 
                List<String> unconsumedArgs, 
                IKeyStoreClient keyStoreClient)

Create the IConfiguration from command line arguments with a key store.

Expected format is "CONFIG [options]", where CONFIG is the built-in configuration name or a file path to a configuration xml file.

Parameters
arrayArgs String: the command line arguments

unconsumedArgs List: a List which will be populated with the arguments that were not consumed by the Objects associated with the specified config. If this is null, then the implementation will throw ConfigurationException if any unprocessed args remain.

keyStoreClient IKeyStoreClient: a IKeyStoreClient which is used to obtain sensitive info in the args.

Returns
IConfiguration the loaded IConfiguration. The delegate object Option fields have been populated with values in args.

Throws
ConfigurationException

createConfigurationFromArgs

IConfiguration createConfigurationFromArgs (String[] arrayArgs, 
                List<String> unconsumedArgs)

Create the IConfiguration from command line arguments.

Expected format is "CONFIG [options]", where CONFIG is the built-in configuration name or a file path to a configuration xml file.

Parameters
arrayArgs String: the command line arguments

unconsumedArgs List: a List which will be populated with the arguments that were not consumed by the Objects associated with the specified config. If this is null, then the implementation will throw ConfigurationException if any unprocessed args remain.

Returns
IConfiguration the loaded IConfiguration. The delegate object Option fields have been populated with values in args.

Throws
ConfigurationException

createConfigurationFromArgs

IConfiguration createConfigurationFromArgs (String[] arrayArgs)

A convenience method which calls createConfigurationFromArgs(String[], List) with a null second argument. Thus, it will throw ConfigurationException if any unconsumed arguments remain.

Parameters
arrayArgs String

Returns
IConfiguration

Throws
ConfigurationException

createGlobalConfigurationFromArgs

IGlobalConfiguration createGlobalConfigurationFromArgs (String[] arrayArgs, 
                List<String> remainingArgs)

Create a IGlobalConfiguration from command line arguments.

Expected format is "CONFIG [options]", where CONFIG is the built-in configuration name or a file path to a configuration xml file.

Parameters
arrayArgs String: the command line arguments

remainingArgs List: a list which will be populated with the arguments that weren't processed as global arguments

Returns
IGlobalConfiguration the loaded IGlobalConfiguration. The delegate object Option fields have been populated with values in args.

Throws
ConfigurationException

dumpConfig

void dumpConfig (String configName, 
                PrintStream out)

Dumps the contents of the configuration to the given PrintStream

Parameters
configName String: the configuration name

out PrintStream: the PrintStream to dump output to

getConfigList

List<String> getConfigList (String subPath)

Variation of getConfigList() where we want to reduce the listing to only a subdirectory of the configuration path (res/config/).

Parameters
subPath String: name of the sub-directories to look in for configuration. If null, will have the same behavior as getConfigList().

Returns
List<String>

getConfigList

List<String> getConfigList (String subPath, 
                boolean loadFromEnv)

Variation of getConfigList(String) where can specify whether or not we also want to load the configuration from the environment.

Parameters
subPath String: name of the sub-directories to look in for configuration. If null, will have the same behavior as getConfigList().

loadFromEnv boolean: True if we should load the configuration in the environment variable.

Returns
List<String>

getConfigList

List<String> getConfigList ()

Return the list of names of all the configs found in the JARs on the classpath. Does not attempt to load any of the configs, so it is possible to have non working config in this list.

Returns
List<String>

getInstance

IConfigurationFactory getInstance ()

Get the singleton IConfigurationFactory instance.

Returns
IConfigurationFactory

loadAllConfigs

void loadAllConfigs (boolean discardExceptions)

Loads all configurations found in classpath and test cases directories.

Parameters
discardExceptions boolean: true if any ConfigurationException should be ignored.

Throws
ConfigurationException

loadAndPrintAllConfigs

void loadAndPrintAllConfigs ()

Utility method that checks that all configs can be loaded, parsed, and all option values set. Only exposed so that depending project can validate their configs. Should not be exposed in the console.

Throws
ConfigurationException if one or more configs failed to load

printHelp

void printHelp (PrintStream out)

Prints help output for this factory.

Prints a generic help info, and lists all available configurations.

Parameters
out PrintStream: the PrintStream to dump output to

printHelpForConfig

void printHelpForConfig (String[] args, 
                boolean importantOnly, 
                PrintStream out)

Prints help output for the IConfiguration specified in command line arguments,

If 'args' refers to a known configuration, a IConfiguration object will be created from XML, and help for that IConfiguration will be outputted. Note all other 'args' values will be ignored (ie the help text will describe the current values of Options as loaded from XML, and will not reflect option's values set by the command line args.

If 'args' does not reference a known IConfiguration, the generic printHelp(PrintStream) help will be displayed.

Parameters
args String: the command line arguments

importantOnly boolean: if true, print an abbreviated help listing only the important details

out PrintStream: the PrintStream to dump output to

Protected methods

getMapConfig

Map<ConfigurationFactory.ConfigIdConfigurationDef> getMapConfig ()

Exposed for testing. Return a copy of the Map.

Returns
Map<ConfigurationFactory.ConfigIdConfigurationDef>

reorderArgs

String[] reorderArgs (String[] args)

Reorder the args so that template:map args are all moved to the front.

Parameters
args String

Returns
String[]