ArgsOptionParser

public class ArgsOptionParser
extends OptionSetter

java.lang.Objek
com.android.tradefed.config.OptionSetter
com.android.tradefed.config.ArgsOptionParser


Mengisi bidang Option dari argumen baris perintah yang diuraikan.

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

Setiap argumen opsi harus dipetakan ke satu atau beberapa bidang Option . Opsi panjang dipetakan ke nama Option , dan opsi pendek dipetakan ke nama pendek Option . Setiap nama opsi dan nama pendek opsi harus unik sehubungan dengan semua bidang Option lainnya dalam objek yang sama.

Argumen opsi tunggal dapat dipetakan ke beberapa bidang Option dengan nama yang sama di beberapa objek. Argumen Option dapat diberi namespace untuk merujuk secara unik ke bidang Option dalam satu objek menggunakan nama kelas lengkap objek tersebut atau nilai alias OptionClass yang dipisahkan dengan ':'. yaitu

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

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

Dimungkinkan untuk 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 memerlukan argumen, mungkin ditulis langsung setelah nama opsi, dipisahkan dengan "=", atau sebagai argumen berikutnya. (Yaitu, "--file=out.txt" atau "--file out.txt".)

Opsi panjang boolean '--name' secara otomatis mendapatkan pengiring '--no-name'. Diberi opsi "--flag", lalu, "--flag", "--no-flag", "--flag=true" dan "--flag=false" semuanya valid, meskipun tidak ada "--flag true" atau "--flag false" diperbolehkan (karena "--flag" dengan sendirinya sudah cukup, "true" atau "false" berikut ditafsirkan secara terpisah). Anda dapat menggunakan "ya" dan "tidak" sebagai sinonim untuk "benar" dan "salah".

Setiap String yang tidak dimulai dengan "-" dan bukan argumen yang diperlukan dari opsi sebelumnya adalah argumen posisi non-opsi, seperti juga semua String yang berurutan. Setiap String setelah "--" adalah argumen posisi non-opsi.

Bidang yang terkait dengan opsi diperbarui saat opsinya diproses. Argumen posisi yang tersisa dikembalikan sebagai List<String>.

Berikut ini 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).
  • Modul "optparse" Python (http://docs.python.org/library/optparse.html)
  • "Panduan Sintaks Utilitas" POSIX (http://www.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap12.html#tag_12_02)
  • "Standar untuk Antarmuka Baris Perintah" GNU (http://www.gnu.org/prep/standards/standards.html#Command_002dLine-Interfaces)

Lihat juga:

Ringkasan

Konstruktor publik

ArgsOptionParser ( optionSources) ArgsOptionParser ( optionSources)

Membuat ArgsOptionParser untuk kumpulan objek.

ArgsOptionParser (Object... optionSources)

Membuat ArgsOptionParser untuk satu atau beberapa objek.

Metode publik

getInopOptions ()

Mengembalikan rangkaian opsi yang tidak mengubah nilai default apa pun.

static String getOptionHelp (boolean importantOnly, Object optionObject)

Keluarkan teks bantuan untuk semua bidang Option di optionObject .

parse (String... args)

Mem-parsing argumen baris perintah 'args', menyetel kolom @Option dari 'Source option' yang disediakan untuk konstruktor.

parse ( args) parse ( args)

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

parseBestEffort ( args) parseBestEffort ( args)

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

parseBestEffort ( args, boolean forceContinue) parseBestEffort ( args, boolean forceContinue)

Alternatif parseBestEffort(String) metode yang mengambil ERROR(/List) argumen, dan dapat dipaksa untuk melanjutkan penguraian sampai akhir, bahkan jika beberapa argumen tidak diurai.

parseBestEffort (String... args)

Versi upaya terbaik dari parse(String) .

void validateMandatoryOptions ()

Memvalidasi bahwa semua bidang yang ditandai sebagai wajib telah ditetapkan.

Konstruktor publik

ArgsOptionParser

public ArgsOptionParser ( optionSources)

Membuat ArgsOptionParser untuk kumpulan objek.

Parameter
optionSources : objek konfigurasi.

Melempar
ConfigurationException jika objek konfigurasi tidak dikonfigurasi dengan benar.

ArgsOptionParser

public ArgsOptionParser (Object... optionSources)

Membuat ArgsOptionParser untuk satu atau beberapa objek.

Parameter
optionSources Object : objek konfigurasi.

Melempar
ConfigurationException jika objek konfigurasi tidak dikonfigurasi dengan benar.

Metode publik

getInopOptions

public  getInopOptions ()

Mengembalikan rangkaian opsi yang tidak mengubah nilai default apa pun.

Pengembalian

getOptionHelp

public static String getOptionHelp (boolean importantOnly, 
                Object optionObject)

Keluarkan teks bantuan untuk semua bidang 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]
 
Teks 'Default..." akan dihilangkan jika bidang opsi kosong atau kosong.

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

optionObject Object : objek untuk mencetak teks bantuan

Pengembalian
String sebuah String berisi teks bantuan yang mudah digunakan untuk semua bidang Opsi

mengurai

public  parse (String... args)

Mem-parsing argumen baris perintah 'args', menyetel kolom @Option dari 'Source option' yang disediakan untuk konstruktor.

Parameter
args String

Pengembalian
a ERROR(/List) dari argumen posisi yang tersisa setelah memproses semua opsi.

Melempar
ConfigurationException jika terjadi kesalahan saat menguraikan argumen.

mengurai

public  parse ( args)

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

Parameter
args

Pengembalian
a ERROR(/List) dari argumen posisi yang tersisa setelah memproses semua opsi.

Melempar
ConfigurationException jika terjadi kesalahan saat menguraikan argumen.

parseBestEffort

public  parseBestEffort ( args)

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

Parameter
args

Pengembalian
a ERROR(/List) dari argumen yang tersisa

parseBestEffort

public  parseBestEffort ( args, 
                boolean forceContinue)

Alternatif parseBestEffort(String) metode yang mengambil ERROR(/List) argumen, dan dapat dipaksa untuk melanjutkan penguraian sampai akhir, bahkan jika beberapa argumen tidak diurai.

Parameter
args : list yang akan berisi argumen yang tersisa.

forceContinue boolean : Benar jika harus terus mengurai bahkan jika beberapa args tidak mengurai.

Pengembalian
a ERROR(/List) dari argumen yang tersisa

parseBestEffort

public  parseBestEffort (String... args)

Versi upaya terbaik dari parse(String) . Jika sebuah ConfigurationException dilempar, pengecualian tersebut ditangkap secara internal, dan argumen yang tersisa (termasuk argumen yang menyebabkan pengecualian dilempar) dikembalikan. Metode ini tidak melempar.

Parameter
args String

Pengembalian
a ERROR(/List) dari argumen yang tersisa

validasiMandatoryOptions

public void validateMandatoryOptions ()

Memvalidasi bahwa semua bidang yang ditandai sebagai wajib telah ditetapkan.

Melempar
com.android.tradefed.config.ConfigurationException
ConfigurationException