ArgsOptionParser
public
class
ArgsOptionParser
extends OptionSetter
| java.lang.Object | ||
| ↳ | com.android.tradefed.config.OptionSetter | |
| ↳ | com.android.tradefed.config.ArgsOptionParser | |
解析されたコマンドライン引数から Option フィールドを入力します。
渡された String[] の文字列は左から右に解析されます。各 String は、短いオプション(「-v」など)、長いオプション(「--verbose」など)、オプションの引数(「-f out.txt」の「out.txt」など)、オプション以外の位置引数として分類されます。
各オプション引数は、1 つ以上の Option フィールドにマッピングする必要があります。長いオプションは Option 名前にマッピングされ、短いオプションは Option 略称にマッピングされます。各オプション名とオプションの略称は、同じオブジェクト内の他のすべての Option フィールドに対して一意である必要があります。
1 つのオプション引数を、複数のオブジェクトにわたって同じ名前の複数の 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」の同義語として「yes」と「no」を使用できます。
「-」で始まらず、前のオプションの必須引数でもない各文字列は、後続のすべての文字列と同様に、オプション以外の位置引数です。「--」の後の各文字列は、オプション以外の位置引数です。
オプションに対応するフィールドは、オプションが処理されると更新されます。残りの位置引数は 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(Object... optionSources)
1 つ以上のオブジェクトの |
|
ArgsOptionParser(Collection<Object> optionSources)
オブジェクトのコレクションの |
|
パブリック メソッド | |
|---|---|
Set<String>
|
getInopOptions()
デフォルト値を変更しなかったオプションのセットを返します。 |
static
String
|
getOptionHelp(boolean importantOnly, Object optionObject)
optionObject 内のすべての |
List<String>
|
parse(List<String> args)
引数の |
List<String>
|
parse(String... args)
コマンドライン引数「args」を解析し、コンストラクタに提供された「optionSource」の @Option フィールドを設定します。 |
List<String>
|
parseBestEffort(List<String> args)
引数の |
List<String>
|
parseBestEffort(List<String> args, boolean forceContinue)
引数の |
List<String>
|
parseBestEffort(String... args)
|
void
|
validateMandatoryOptions()
必須とマークされたすべてのフィールドが設定されていることを検証します。 |
パブリック コンストラクタ
ArgsOptionParser
public ArgsOptionParser (Object... optionSources)
1 つ以上のオブジェクトの ArgsOptionParser を作成します。
| パラメータ | |
|---|---|
optionSources |
Object: 構成オブジェクト。 |
| 例外 | |
|---|---|
ConfigurationException |
構成オブジェクトが正しく構成されていない場合。 |
ArgsOptionParser
public ArgsOptionParser (Collection<Object> optionSources)
オブジェクトのコレクションの ArgsOptionParser を作成します。
| パラメータ | |
|---|---|
optionSources |
Collection: 構成オブジェクト。 |
| 例外 | |
|---|---|
ConfigurationException |
構成オブジェクトが正しく構成されていない場合。 |
パブリック メソッド
getInopOptions
public Set<String> getInopOptions ()
デフォルト値を変更しなかったオプションのセットを返します。
| 戻り値 | |
|---|---|
Set<String> |
|
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 フィールドのわかりやすいヘルプテキストを含む String |
parse
public List<String> parse (List<String> args)
引数の List を取る代替の ERROR(/#parse(String. args)) メソッド
| パラメータ | |
|---|---|
args |
List |
| 戻り値 | |
|---|---|
List<String> |
すべてのオプションの処理後に残った位置引数の List。 |
| 例外 | |
|---|---|
ConfigurationException |
引数の解析中にエラーが発生した場合。 |
parse
public List<String> parse (String... args)
コマンドライン引数「args」を解析し、コンストラクタに提供された「optionSource」の @Option フィールドを設定します。
| パラメータ | |
|---|---|
args |
String |
| 戻り値 | |
|---|---|
List<String> |
すべてのオプションの処理後に残った位置引数の List。 |
| 例外 | |
|---|---|
ConfigurationException |
引数の解析中にエラーが発生した場合。 |
parseBestEffort
public List<String> parseBestEffort (List<String> args)
引数の List を取る代替の ERROR(/#parseBestEffort(String. args)) メソッド
| パラメータ | |
|---|---|
args |
List |
| 戻り値 | |
|---|---|
List<String> |
残りの引数の List |
parseBestEffort
public List<String> parseBestEffort (List<String> args,
boolean forceContinue)引数の List を受け取る代替の ERROR(/#parseBestEffort(String. args)) メソッド。一部の引数が解析されない場合でも、最後まで解析を強制的に続行できます。
| パラメータ | |
|---|---|
args |
List: 残りの引数を含むリスト。 |
forceContinue |
boolean: 一部の引数が解析されなくても解析を続行する場合は True。 |
| 戻り値 | |
|---|---|
List<String> |
残りの引数の List |
parseBestEffort
public List<String> parseBestEffort (String... args)
ERROR(/#parse(String. args)) のベスト エフォート バージョン。ConfigurationException がスローされると、その例外は内部でキャプチャされ、残りの引数(例外がスローされた原因となった引数を含む)が返されます。このメソッドは例外をスローしません。
| パラメータ | |
|---|---|
args |
String |
| 戻り値 | |
|---|---|
List<String> |
残りの引数の List |
validateMandatoryOptions
public void validateMandatoryOptions ()
必須とマークされたすべてのフィールドが設定されていることを検証します。
| 例外 | |
|---|---|
|
com.android.tradefed.config.ConfigurationException |
ConfigurationException |
|