ArgsOptionParser
public
class
ArgsOptionParser
extends OptionSetter
java.lang.Object | ||
↳ | com.android.tradefed.config.OptionSetter | |
↳ | com.android.tradefed.config.ArgsOptionParser |
解析されたコマンドライン引数から Option
フィールドにデータを入力します。
渡された String[] 内の文字列は、左から右に解析されます。各文字列は短い文字列として オプション(例: -v)、長いオプション(例: --verbose)、オプションへの引数(例: 「out.txt」"-f out.txt" 内)、またはオプションのない位置引数を指定します。
各オプション引数は、1 つ以上の Option
フィールドにマッピングする必要があります。長いオプションは、トレーニング データ
Option
の名前。短いオプションは Option
の略称にマッピングされます。各オプションの名前と
オプションの略称は、他のすべてのオプションに対して一意である必要があります。
同じオブジェクト内の Option
フィールド。
1 つのオプション引数を、同じ名前の複数の Option
フィールドにマッピングできる
複数のオブジェクトにまたがります。Option
引数は、名前空間を指定して一意に参照できます。
Option
フィールドは、そのオブジェクトのフルクラス名または
「:」で区切られた OptionClass
エイリアス値。例:
--classname:optionname optionvalue or --optionclassalias:optionname optionvalue.
簡単な省略形は「-」その後に短いオプション文字が続きます。オプションに 引数(ブール値以外のオプションにも当てはまります)は、独立したパラメータとして記述できます。 必要ありません。つまり、「-f out.txt」です。「-fout.txt」どちらも許容されます。
1 つの「-」の後に複数の短縮オプションを指定できます。すべて(例外は (最後の引数など)に引数は必要ありません。
長いオプションは「--」で始まるその後に何文字かが続きます。オプションに オプション名の直後または「=」で区切って記述することも、 渡します。(つまり、「--file=out.txt」または「--file out.txt」となります)。
ブール値の long 型オプション「--name」自動的に「--no-name」使用します。与えられた "--flag"、次に "--flag"、"--no-flag"、"--flag=true"「--flag=false」すべて有効ですが、 どちらでもない "--flag true"「--flag false」も使用できます(「--flag」だけで十分であるため、 「true」の後にまたは「false」個別に解釈されます)。「yes」を使用できますと「no」同義語として 「true」について「false」に設定します。
「-」で始まらない各文字列前のオプションの必須引数ではない場合、 すべて連続した String と同様、オプションがない位置引数です。「--」の後の文字列は オプションがない位置引数を使用します。
オプションに対応するフィールドは、オプションが処理されると更新されます。残っている 位置引数は 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) { ... } ... }
- </ph>
- getopt(1) のマニュアル ページ
- Python の「optparse」モジュール(http://docs.python.org/library/optparse.html)
- POSIX「Utility Syntax Guidelines」 (http://www.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap12.html#tag_12_02)
- GNU「Standards for Command Line Interfaces」 (http://www.gnu.org/prep/standards/standards.html#Command_002dLine-Interfaces)
関連項目:
概要
パブリック コンストラクタ | |
---|---|
ArgsOptionParser(
オブジェクトのコレクションの |
|
ArgsOptionParser(Object... optionSources)
1 つ以上のオブジェクトの |
パブリック メソッド | |
---|---|
|
getInopOptions()
デフォルト値を変更しなかったオプション セットを返します。 |
static
String
|
getOptionHelp(boolean importantOnly, Object optionObject)
optionObject 内のすべての |
|
parse(String... args)
コマンドライン引数「args」を解析し、「optionSource」の @Option フィールドを設定します。 渡されます。 |
|
parse(
引数の |
|
parseBestEffort(
次の |
|
parseBestEffort(
次の |
|
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)
optionObject 内のすべての Option
フィールドのヘルプテキストを出力します。
各オプションのヘルプテキストは次の形式になります。
[-option_shortname, --option_name] [option_description] Default: [current option field's value in optionObject]
パラメータ | |
---|---|
importantOnly |
boolean : true の場合、重要なオプションのヘルプのみを出力します。 |
optionObject |
Object : ヘルプテキストを出力するオブジェクト |
戻り値 | |
---|---|
String |
すべての Option フィールドのユーザー フレンドリーなヘルプテキストを含む文字列 |
解析する
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) |
validateMandatoryOptions
public void validateMandatoryOptions ()
必須とマークされたすべてのフィールドが設定されていることを検証します。
例外 | |
---|---|
|
com.android.tradefed.config.ConfigurationException |
ConfigurationException |