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 type="x-smartling-placeholder">
    </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( optionSources)

オブジェクトのコレクションの ArgsOptionParser を作成します。

ArgsOptionParser(Object... optionSources)

1 つ以上のオブジェクトの ArgsOptionParser を作成します。

パブリック メソッド

getInopOptions()

デフォルト値を変更しなかったオプション セットを返します。

static String getOptionHelp(boolean importantOnly, Object optionObject)

optionObject 内のすべての Option フィールドのヘルプテキストを出力します。

parse(String... args)

コマンドライン引数「args」を解析し、「optionSource」の @Option フィールドを設定します。 渡されます。

parse( args)

引数の ERROR(/List) を受け取る代替 parse(String) メソッド

parseBestEffort( args)

次の ERROR(/List) を受け取る別の parseBestEffort(String) メソッド 引数

parseBestEffort( args, boolean forceContinue)

次の ERROR(/List) を受け取る別の parseBestEffort(String) メソッド 一部の引数が一致しない場合でも、その終了まで解析を強制的に継続できます。 解析します。

parseBestEffort(String... args)

parse(String) のベスト エフォート バージョン。

void validateMandatoryOptions()

必須とマークされたすべてのフィールドが設定されていることを検証します。

パブリック コンストラクタ

ArgsOptionParser

public ArgsOptionParser ( optionSources)

オブジェクトのコレクションの ArgsOptionParser を作成します。

パラメータ
optionSources : 構成オブジェクト。

例外
ConfigurationException エラーになります。

ArgsOptionParser

public ArgsOptionParser (Object... optionSources)

1 つ以上のオブジェクトの ArgsOptionParser を作成します。

パラメータ
optionSources Object: 構成オブジェクト。

例外
ConfigurationException エラーになります。

パブリック メソッド

getInopOptions

public  getInopOptions ()

デフォルト値を変更しなかったオプション セットを返します。

戻り値

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]
 
「デフォルト...」オプション フィールドが null または空の場合、テキストは省略されます。

パラメータ
importantOnly boolean: true の場合、重要なオプションのヘルプのみを出力します。

optionObject Object: ヘルプテキストを出力するオブジェクト

戻り値
String すべての Option フィールドのユーザー フレンドリーなヘルプテキストを含む文字列

解析する

public  parse (String... args)

コマンドライン引数「args」を解析し、「optionSource」の @Option フィールドを設定します。 渡されます。

パラメータ
args String

戻り値
すべてのオプションを処理した後に残った位置引数の ERROR(/List)

例外
ConfigurationException 引数の解析中にエラーが発生した場合に返されます。

解析する

public  parse ( args)

引数の ERROR(/List) を受け取る代替 parse(String) メソッド

パラメータ
args

戻り値
すべてのオプションを処理した後に残った位置引数の ERROR(/List)

例外
ConfigurationException 引数の解析中にエラーが発生した場合に返されます。

解析のベストエフォート

public  parseBestEffort ( args)

次の ERROR(/List) を受け取る別の parseBestEffort(String) メソッド 引数

パラメータ
args

戻り値
左側の引数の ERROR(/List)

解析のベストエフォート

public  parseBestEffort ( args, 
                boolean forceContinue)

次の ERROR(/List) を受け取る別の parseBestEffort(String) メソッド 一部の引数が一致しない場合でも、その終了まで解析を強制的に継続できます。 解析します。

パラメータ
args : 左側の引数を含むリスト。

forceContinue boolean: 一部の引数が解析されていなくても解析を続行する場合は true。

戻り値
左側の引数の ERROR(/List)

解析のベストエフォート

public  parseBestEffort (String... args)

parse(String) のベスト エフォート バージョン。ConfigurationException が その例外は内部でキャプチャされ、残りの引数( (例外がスローされる原因となった引数)が返されます。このメソッドはスローしません。

パラメータ
args String

戻り値
左側の引数の ERROR(/List)

validateMandatoryOptions

public void validateMandatoryOptions ()

必須とマークされたすべてのフィールドが設定されていることを検証します。

例外
com.android.tradefed.config.ConfigurationException
ConfigurationException