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 dalam String[] yang diteruskan diuraikan dari kiri ke kanan. Setiap String diklasifikasikan sebagai opsi pendek (seperti "-v"), opsi panjang (seperti "--verbose"), argumen ke opsi (seperti "out.txt" dalam "-f out.txt"), atau argumen posisi non-opsi.

Setiap argumen opsi harus dipetakan ke satu atau beberapa kolom 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 kolom Option lainnya dalam objek yang sama.

Satu argumen opsi dapat dipetakan ke beberapa kolom Option dengan nama yang sama di 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 yang dipisahkan oleh ':'. Misalnya

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

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

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

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

Opsi panjang boolean '--name' otomatis mendapatkan pendamping '--no-name'. Jika ada opsi "--flag", maka "--flag", "--no-flag", "--flag=true", dan "--flag=false" semuanya valid, meskipun "--flag true" maupun "--flag false" tidak diizinkan (karena "--flag" saja sudah cukup, "true" atau "false" berikutnya ditafsirkan secara terpisah). Anda dapat menggunakan "ya" dan "tidak" sebagai sinonim untuk "benar" dan "salah".

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

Kolom yang sesuai dengan opsi akan diperbarui saat opsinya diproses. Argumen posisi yang tersisa ditampilkan sebagai List<String>.

Berikut 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 Sintaksis Utilitas" POSIX (http://www.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap12.html#tag_12_02)
  • "Standar untuk Antarmuka Command Line" GNU (http://www.gnu.org/prep/standards/standards.html#Command_002dLine-Interfaces)

Lihat juga:

Ringkasan

Konstruktor publik

ArgsOptionParser(Object... optionSources)

Membuat ArgsOptionParser untuk satu atau beberapa objek.

ArgsOptionParser(Collection<Object> optionSources)

Membuat ArgsOptionParser untuk kumpulan objek.

Metode publik

Set<String> getInopOptions()

Menampilkan kumpulan opsi yang tidak mengubah nilai default apa pun.

static String getOptionHelp(boolean importantOnly, Object optionObject)

Menampilkan teks bantuan untuk semua kolom Option di optionObject.

List<String> parse(List<String> args)

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

List<String> parse(String... args)

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

List<String> parseBestEffort(List<String> args)

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

List<String> parseBestEffort(List<String> args, boolean forceContinue)

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

List<String> parseBestEffort(String... args)

Versi upaya terbaik dari ERROR(/#parse(String. args)).

void validateMandatoryOptions()

Memvalidasi bahwa semua kolom yang ditandai sebagai wajib diisi telah ditetapkan.

Konstruktor publik

ArgsOptionParser

public ArgsOptionParser (Object... optionSources)

Membuat ArgsOptionParser untuk satu atau beberapa objek.

Parameter
optionSources Object: objek konfigurasi.

Menampilkan
ConfigurationException jika objek konfigurasi tidak dikonfigurasi dengan benar.

ArgsOptionParser

public ArgsOptionParser (Collection<Object> optionSources)

Membuat ArgsOptionParser untuk kumpulan objek.

Parameter
optionSources Collection: objek konfigurasi.

Menampilkan
ConfigurationException jika objek konfigurasi tidak dikonfigurasi dengan benar.

Metode publik

getInopOptions

public Set<String> getInopOptions ()

Menampilkan kumpulan opsi yang tidak mengubah nilai default apa pun.

Hasil
Set<String>

getOptionHelp

public static String getOptionHelp (boolean importantOnly, 
                Object optionObject)

Menampilkan teks bantuan untuk semua kolom Option di optionObject.

Teks bantuan untuk setiap opsi akan menggunakan format berikut

   [-option_shortname, --option_name]          [option_description] Default:
   [current option field's value in optionObject]
 
Teks 'Default..." akan dihilangkan jika kolom opsi bernilai 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 Opsi

parse

public List<String> parse (List<String> args)

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

Parameter
args List

Hasil
List<String> List dari argumen posisi yang tersisa setelah memproses semua opsi.

Menampilkan
ConfigurationException jika terjadi error saat mengurai argumen.

parse

public List<String> parse (String... args)

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

Parameter
args String

Hasil
List<String> List dari argumen posisi yang tersisa setelah memproses semua opsi.

Menampilkan
ConfigurationException jika terjadi error saat mengurai argumen.

parseBestEffort

public List<String> parseBestEffort (List<String> args)

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

Parameter
args List

Hasil
List<String> List dari argumen yang tersisa

parseBestEffort

public List<String> parseBestEffort (List<String> args, 
                boolean forceContinue)

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

Parameter
args List: daftar yang akan berisi argumen yang tersisa.

forceContinue boolean: Benar (True) jika harus terus mengurai meskipun beberapa argumen tidak diurai.

Hasil
List<String> List dari argumen yang tersisa

parseBestEffort

public List<String> parseBestEffort (String... args)

Versi upaya terbaik dari ERROR(/#parse(String. args)). Jika ConfigurationException dilempar, pengecualian tersebut akan diambil secara internal, dan argumen yang tersisa (termasuk argumen yang menyebabkan pengecualian dilempar) akan ditampilkan. Metode ini tidak akan menampilkan pengecualian.

Parameter
args String

Hasil
List<String> List dari argumen yang tersisa

validateMandatoryOptions

public void validateMandatoryOptions ()

Memvalidasi bahwa semua kolom yang ditandai sebagai wajib diisi telah ditetapkan.

Menampilkan
com.android.tradefed.config.ConfigurationException
ConfigurationException