ArgsOptionParser
public class ArgsOptionParser
extends OptionSetter
java.lang.オブジェクト | ||
↳ | 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」は個別に解釈されます)。 「はい」と「いいえ」は「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 | 構成オブジェクトが不適切に構成されている場合。 |
パブリックメソッド
getIopOptions
publicgetInopOptions ()
デフォルト値を変更しなかったオプションのセットを返します。
戻り値 | |
---|---|
getオプションヘルプ
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 | 引数の解析中にエラーが発生した場合。 |
解析ベストエフォート
publicparseBestEffort ( args)
引数のERROR(/List)
を受け取る代替のparseBestEffort(String)
メソッド
パラメーター | |
---|---|
args |
戻り値 | |
---|---|
残った引数のERROR(/List) |
解析ベストエフォート
publicparseBestEffort ( args, boolean forceContinue)
引数のERROR(/List)
を受け取り、一部の引数が解析されない場合でも、強制的に最後まで解析を続行できる代替のparseBestEffort(String)
メソッド。
パラメーター | |
---|---|
args | |
forceContinue | boolean : 一部の引数が解析されない場合でも解析を続行する場合は true。 |
戻り値 | |
---|---|
残った引数のERROR(/List) |
解析ベストエフォート
publicparseBestEffort (String... args)
parse(String)
のベストエフォート版。 ConfigurationException がスローされた場合、その例外は内部でキャプチャされ、残りの引数 (例外がスローされる原因となった引数を含む) が返されます。このメソッドはスローしません。
パラメーター | |
---|---|
args | String |
戻り値 | |
---|---|
残った引数のERROR(/List) |
validate必須オプション
public void validateMandatoryOptions ()
必須としてマークされたすべてのフィールドが設定されていることを検証します。
投げる | |
---|---|
| com.android.tradefed.config.ConfigurationException |
ConfigurationException |