ArgsOptionParser
public class ArgsOptionParser
extends OptionSetter
java.lang.Object | ||
↳ | com.android.tradefed.config.OptionSetter | |
↳ | com.android.tradefed.config.ArgsOptionParser |
解析されたコマンド ライン引数からOption
フィールドを設定します。
Option
フィールドにマップする必要があります。長いオプションはOption
名にマップされ、短いオプションはOption
短い名前にマップされます。各オプション名とオプションの短い名前は、同じオブジェクト内の他のすべてのOption
フィールドに対して一意である必要があります。単一のオプション引数は、複数のオブジェクトで同じ名前を持つ複数のOption
フィールドにマップできます。 Option
引数は、そのオブジェクトの完全なクラス名または「:」で区切られたそのOptionClass
エイリアス値を使用して、単一のオブジェクト内のOption
フィールドを一意に参照するように名前空間化できます。すなわち --classname:optionname optionvalue or --optionclassalias:optionname optionvalue.単純な短いオプションは、「-」の後に短いオプション文字が続きます。オプションが引数を必要とする場合 (これはブール値以外のオプションに当てはまります)、別個のパラメーターとして記述できますが、そうである必要はありません。つまり、「-f out.txt」と「-fout.txt」の両方が受け入れられます。すべて (場合によっては最後を除く) が引数を必要としない限り、単一の "-" の後に複数の短いオプションを指定することができます。長いオプションは "--" で始まり、その後にいくつかの文字が続きます。オプションに引数が必要な場合は、オプション名の直後に「=」で区切って、または次の引数として記述できます。 (つまり、「--file=out.txt」または「--file out.txt」です。)ブール型の長いオプション '--name' は、自動的に '--no-name' コンパニオンを取得します。オプション「--flag」を指定すると、「--flag」、「--no-flag」、「--flag=true」、および「--flag=false」はすべて有効ですが、「--flag」はどちらも有効ではありません。 true" も "--flag false" も使用できません ("--flag" だけで十分であるため、次の "true" または "false" は個別に解釈されます)。 「はい」と「いいえ」は、「真」と「偽」の同義語として使用できます。 「-」で始まらず、前のオプションの必須引数ではない各文字列は、すべての連続する文字列と同様に、非オプションの位置引数です。 「--」の後の各文字列は、オプションではない位置引数です。オプションが処理されると、オプションに対応するフィールドが更新されます。残りの位置引数は List<String> として返されます。簡単な例を次に示します。
// Non-@Option fields will be ignored. class Options { @Option(name = "quiet", shortName = 'q') boolean quiet = false; // Here the user can use --no-color. @Option(name = "color") boolean color = true; @Option(name = "mode", shortName = 'm') String mode = "standard; // Supply a default just by setting the field. @Option(name = "port", shortName = 'p') int portNumber = 8888; // There's no need to offer a short name for rarely-used options. @Option(name = "timeout" ) double timeout = 1.0; @Option(name = "output-file", shortName = 'o' }) File output; // Multiple options are added to the collection. // The collection field itself must be non-null. @Option(name = "input-file", shortName = 'i') List<File> inputs = new ArrayList<File>(); } Options options = new Options(); List<String> posArgs = new OptionParser(options).parse("--input-file", "/tmp/file1.txt"); for (File inputFile : options.inputs) { if (!options.quiet) { ... } ... }も参照してください:
- getopt(1) のマニュアルページ
- Python の「optparse」モジュール (http://docs.python.org/library/optparse.html)
- POSIX「ユーティリティ構文ガイドライン」(http://www.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap12.html#tag_12_02)
- GNU「コマンド ライン インターフェイスの標準」(http://www.gnu.org/prep/standards/standards.html#Command_002dLine-Interfaces)
以下も参照してください。
まとめ
パブリック コンストラクター | |
---|---|
ArgsOptionParser ( optionSources) ArgsOptionParser ( optionSources) オブジェクトのコレクションの | |
ArgsOptionParser (Object... optionSources) 1 つ以上のオブジェクトの |
公開メソッド | |
---|---|
getInopOptions () デフォルト値を変更していないオプションのセットを返します。 | |
static String | getOptionHelp (boolean importantOnly, Object optionObject) のすべての |
parse (String... args) コマンドライン引数 'args' を解析し、コンストラクターに提供された 'optionSource' の @Option フィールドを設定します。 | |
parse ( args) parse ( args) 引数の | |
parseBestEffort ( args) parseBestEffort ( args) 引数の | |
parseBestEffort ( args, boolean forceContinue) parseBestEffort ( args, boolean forceContinue) 引数の | |
parseBestEffort (String... args) | |
void | validateMandatoryOptions () 必須としてマークされたすべてのフィールドが設定されていることを検証します。 |
パブリック コンストラクター
ArgsOptionParser
public ArgsOptionParser (optionSources)
オブジェクトのコレクションのArgsOptionParser
を作成します。
パラメーター | |
---|---|
optionSources |
スロー | |
---|---|
ConfigurationException | 構成オブジェクトが正しく構成されていない場合。 |
ArgsOptionParser
public ArgsOptionParser (Object... optionSources)
1 つ以上のオブジェクトのArgsOptionParser
を作成します。
パラメーター | |
---|---|
optionSources | Object : 構成オブジェクト。 |
スロー | |
---|---|
ConfigurationException | 構成オブジェクトが正しく構成されていない場合。 |
公開メソッド
getInopOptions
publicgetInopOptions ()
デフォルト値を変更していないオプションのセットを返します。
戻り値 | |
---|---|
getOptionHelp
public static String getOptionHelp (boolean importantOnly, Object optionObject)
のすべてのOption
フィールドのヘルプ テキストを出力します。オプションオブジェクト.
[-option_shortname, --option_name] [option_description] Default: [current option field's value in optionObject]オプション フィールドが null または空の場合、「デフォルト...」テキストは省略されます。
パラメーター | |
---|---|
importantOnly | boolean : true の場合、重要なオプションのヘルプのみを出力します |
optionObject | Object : ヘルプ テキストを出力するオブジェクト |
戻り値 | |
---|---|
String | すべてのオプション フィールドのユーザー フレンドリーなヘルプ テキストを含む文字列 |
解析する
publicparse (String... args)
コマンドライン引数 'args' を解析し、コンストラクターに提供された 'optionSource' の @Option フィールドを設定します。
パラメーター | |
---|---|
args | String |
戻り値 | |
---|---|
すべてのオプションを処理した後に残った位置引数のERROR(/List) 。 |
スロー | |
---|---|
ConfigurationException | 引数の解析中にエラーが発生した場合。 |
解析する
publicparse ( args)
引数のERROR(/List)
を取る代替parse(String)
メソッド
パラメーター | |
---|---|
args |
戻り値 | |
---|---|
すべてのオプションを処理した後に残った位置引数のERROR(/List) 。 |
スロー | |
---|---|
ConfigurationException | 引数の解析中にエラーが発生した場合。 |
parseBestEffort
publicparseBestEffort ( args)
引数のERROR(/List)
を取る代替parseBestEffort(String)
メソッド
パラメーター | |
---|---|
args |
戻り値 | |
---|---|
残りの引数のERROR(/List) |
parseBestEffort
publicparseBestEffort ( args, boolean forceContinue)
引数のERROR(/List)
を受け取る代替のparseBestEffort(String)
メソッド。一部の引数が解析されない場合でも、強制的に最後まで解析を続行できます。
パラメーター | |
---|---|
args | |
forceContinue | boolean : 一部の引数が解析されない場合でも解析を続行する必要がある場合は true。 |
戻り値 | |
---|---|
残りの引数のERROR(/List) |
parseBestEffort
publicparseBestEffort (String... args)
parse(String)
のベスト エフォート バージョン。 ConfigurationException がスローされた場合、その例外は内部でキャプチャされ、残りの引数 (例外がスローされる原因となった引数を含む) が返されます。このメソッドはスローしません。
パラメーター | |
---|---|
args | String |
戻り値 | |
---|---|
残りの引数のERROR(/List) |
validateMandatoryOptions
public void validateMandatoryOptions ()
必須としてマークされたすべてのフィールドが設定されていることを検証します。
スロー | |
---|---|
| com.android.tradefed.config.ConfigurationException |
ConfigurationException |