ArgsOptionParser

public class ArgsOptionParser
extends OptionSetter

java.lang.Object
   ↳ com.android.tradefed.config.OptionSetter
     ↳ com.android.tradefed.config.ArgsOptionParser


Mengisi kolom Option dari argumen command line yang diuraikan.

String di String yang diteruskan[] diuraikan dari kiri ke kanan. Setiap String diklasifikasikan sebagai opsi (seperti "-v"), opsi panjang (seperti "--verbose"), argumen ke opsi (misalnya "out.txt" di "-f out.txt"), atau argumen posisi non-opsi.

Setiap argumen opsi harus dipetakan ke satu atau beberapa kolom Option. Opsi panjang memetakan ke Nama Option, dan opsi singkat dipetakan ke nama pendek Option. Setiap opsi nama dan nama pendek opsi harus unik sehubungan dengan semua Kolom Option dalam objek yang sama.

Satu argumen opsi dapat dipetakan ke beberapa kolom Option dengan nama yang sama pada beberapa objek. Argumen Option dapat diberi namespace untuk merujuk secara unik ke Kolom Option dalam satu objek menggunakan nama class lengkap objek tersebut atau Nilai alias OptionClass dipisahkan dengan ':'. yakni

 --classname:optionname optionvalue or
 --optionclassalias:optionname optionvalue.
 

Opsi singkat yang sederhana adalah "-" diikuti dengan karakter opsi pendek. Jika opsi ini memerlukan (yang berlaku untuk opsi non-boolean apa pun), argumen tersebut dapat ditulis sebagai parameter terpisah, tetapi sebenarnya tidak demikian. Yaitu, "-f out.txt" dan "-fout.txt" keduanya dapat diterima.

Anda dapat menentukan beberapa opsi singkat setelah satu "-" selama semua (kecuali mungkin yang terakhir) tidak memerlukan argumen.

Opsi panjang dimulai dengan "--" diikuti oleh beberapa karakter. Jika opsi ini memerlukan , argumen tersebut dapat ditulis langsung setelah nama opsi, dipisahkan oleh "=", atau sebagai argumen. (Artinya, "--file=out.txt" atau "--file out.txt".)

Opsi panjang boolean '--name' otomatis mendapatkan '--no-name' pendamping. Jika ada opsi "--flag", lalu, "--flag", "--no-flag", "--flag=true" dan "--flag=false" semuanya valid, tapi bukan "--flag true" atau "--flag false" yang diizinkan (karena "--flag" itu sendiri sudah cukup, setelah "true" atau "false" ditafsirkan secara terpisah). Anda dapat menggunakan "yes" dan "tidak" sebagai sinonim untuk "true" dan "false".

Setiap String yang tidak dimulai dengan "-" dan bukan argumen yang dibutuhkan dari opsi sebelumnya adalah posisional non-opsi, seperti halnya semua String berturut-turut. Setiap String setelah "--" adalah posisional non-opsi.

Kolom yang sesuai dengan opsi akan diperbarui saat opsinya diproses. Sisanya argumen posisi dikembalikan sebagai List<String>.

Berikut adalah contoh sederhana:

 // 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) {
        ...
     }
     ...

 }

 
Lihat juga:
  • halaman manual getopt(1)
  • "optparse" Python modul (http://docs.python.org/library/optparse.html)
  • "Panduan Sintaksis Utilitas" POSIX (http://www.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap12.html#tag_12_02)
  • program GNU "Standards for Command Line Interfaces" (http://www.gnu.org/prep/standards/standards.html#Command_002dLine-Interfaces)

Lihat juga:

Ringkasan

Konstruktor publik

ArgsOptionParser( optionSources)

Membuat ArgsOptionParser untuk kumpulan objek.

ArgsOptionParser(Object... optionSources)

Membuat ArgsOptionParser untuk satu atau beberapa objek.

Metode publik

getInopOptions()

Menampilkan kumpulan opsi yang tidak mengubah nilai default apa pun.

static String getOptionHelp(boolean importantOnly, Object optionObject)

Teks bantuan output untuk semua kolom Option di optionObject.

parse(String... args)

Mengurai argumen command line 'args', menyetel kolom @Option dari 'optionSource' yang diberikan ke konstruktor.

parse( args)

Metode parse(String) alternatif yang menggunakan ERROR(/List) argumen

parseBestEffort( args)

Metode parseBestEffort(String) alternatif yang menggunakan ERROR(/List) argumen

parseBestEffort( args, boolean forceContinue)

Metode parseBestEffort(String) alternatif yang menggunakan ERROR(/List) argumen, dan dapat dipaksa untuk terus mengurai sampai akhir, meskipun beberapa argumen tidak .

parseBestEffort(String... args)

Versi upaya terbaik dari parse(String).

void validateMandatoryOptions()

Memvalidasi bahwa semua kolom yang ditandai sebagai wajib telah ditetapkan.

Konstruktor publik

ArgsOptionParser

public ArgsOptionParser ( optionSources)

Membuat ArgsOptionParser untuk kumpulan objek.

Parameter
optionSources : objek konfigurasi.

Menampilkan
ConfigurationException jika objek config tidak dikonfigurasi dengan benar.

ArgsOptionParser

public ArgsOptionParser (Object... optionSources)

Membuat ArgsOptionParser untuk satu atau beberapa objek.

Parameter
optionSources Object: objek konfigurasi.

Menampilkan
ConfigurationException jika objek config tidak dikonfigurasi dengan benar.

Metode publik

getInopOptions

public  getInopOptions ()

Menampilkan kumpulan opsi yang tidak mengubah nilai default apa pun.

Hasil

Bantuan getOption

public static String getOptionHelp (boolean importantOnly, 
                Object optionObject)

Teks bantuan output untuk semua kolom Option di optionObject.

Teks bantuan untuk setiap opsi akan dalam format berikut

   [-option_shortname, --option_name]          [option_description] Default:
   [current option field's value in optionObject]
 
Parameter 'Default..." teks akan dihilangkan jika kolom opsi adalah null atau kosong.

Parameter
importantOnly boolean: jika true hanya mencetak bantuan untuk opsi penting

optionObject Object: objek untuk mencetak teks bantuan

Hasil
String String yang berisi teks bantuan yang mudah digunakan untuk semua kolom Option

mengurai

public  parse (String... args)

Mengurai argumen command line 'args', menyetel kolom @Option dari 'optionSource' yang diberikan ke konstruktor.

Parameter
args String

Hasil
ERROR(/List) argumen posisi yang tersisa setelah memproses semua opsi.

Menampilkan
ConfigurationException jika terjadi error saat menguraikan argumen.

mengurai

public  parse ( args)

Metode parse(String) alternatif yang menggunakan ERROR(/List) argumen

Parameter
args

Hasil
ERROR(/List) argumen posisi yang tersisa setelah memproses semua opsi.

Menampilkan
ConfigurationException jika terjadi error saat menguraikan argumen.

parseBestEffort

public  parseBestEffort ( args)

Metode parseBestEffort(String) alternatif yang menggunakan ERROR(/List) argumen

Parameter
args

Hasil
ERROR(/List) dari sisa argumen

parseBestEffort

public  parseBestEffort ( args, 
                boolean forceContinue)

Metode parseBestEffort(String) alternatif yang menggunakan ERROR(/List) argumen, dan dapat dipaksa untuk terus mengurai sampai akhir, meskipun beberapa argumen tidak .

Parameter
args : daftar yang akan berisi argumen yang tersisa.

forceContinue boolean: Benar jika harus terus diurai meskipun beberapa argumen tidak diurai.

Hasil
ERROR(/List) dari sisa argumen

parseBestEffort

public  parseBestEffort (String... args)

Versi upaya terbaik dari parse(String). Jika ConfigurationException adalah ditampilkan, pengecualian tersebut ditangkap secara internal, dan argumen lainnya (termasuk yang menyebabkan pengecualian ditampilkan) ditampilkan. Metode ini tidak memunculkan.

Parameter
args String

Hasil
ERROR(/List) dari sisa argumen

validasiMandatoryOptions

public void validateMandatoryOptions ()

Memvalidasi bahwa semua kolom yang ditandai sebagai wajib telah ditetapkan.

Menampilkan
com.android.tradefed.config.ConfigurationException
ConfigurationException