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 singkat (seperti "-v"), opsi panjang (seperti "--verbose"), argumen untuk opsi (seperti "out.txt" di "-f out.txt"), atau argumen posisional non-opsi.
Setiap argumen opsi harus dipetakan ke satu atau beberapa kolom Option
. Opsi panjang dipetakan ke
nama Option
, dan opsi singkat dipetakan ke nama singkat 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 ':'. yaitu
--classname:optionname optionvalue or --optionclassalias:optionname optionvalue.
Opsi singkat sederhana adalah "-" diikuti dengan karakter opsi singkat. Jika opsi memerlukan argumen (yang berlaku untuk opsi non-boolean apa pun), 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 (kecuali mungkin yang terakhir) tidak memerlukan argumen.
Opsi panjang dimulai dengan "--", diikuti dengan beberapa karakter. Jika 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'. Dengan opsi "--flag", maka "--flag", "--no-flag", "--flag=true", dan "--flag=false" semuanya valid, meskipun "--flag true" atau "--flag false" tidak diizinkan (karena "--flag" saja sudah cukup, "true" atau "false" berikut ditafsirkan secara terpisah). Anda dapat menggunakan "yes" dan "no" sebagai sinonim untuk "true" dan "false".
Setiap String yang tidak dimulai dengan "-" dan bukan argumen wajib dari opsi sebelumnya adalah argumen posisi non-opsi, seperti semua String berturut-turut. Setiap String setelah "--" adalah argumen posisional non-opsi.
Kolom yang sesuai dengan opsi akan diperbarui saat opsi diproses. Argumen posisional yang tersisa akan ditampilkan 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) { ... } ... }
- halaman man 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)
- GNU "Standar untuk Antarmuka Command Line" (http://www.gnu.org/prep/standards/standards.html#Command_002dLine-Interfaces)
Lihat juga:
Ringkasan
Konstruktor publik | |
---|---|
ArgsOptionParser(
Membuat |
|
ArgsOptionParser(Object... optionSources)
Membuat |
Metode publik | |
---|---|
|
getInopOptions()
Menampilkan kumpulan opsi yang tidak mengubah nilai default apa pun. |
static
String
|
getOptionHelp(boolean importantOnly, Object optionObject)
Menampilkan teks bantuan untuk semua kolom |
|
parse(String... args)
Mengurai argumen command line 'args', menetapkan kolom @Option dari 'optionSource' yang diberikan ke konstruktor. |
|
parse(
Metode |
|
parseBestEffort(
Metode |
|
parseBestEffort(
Metode |
|
parseBestEffort(String... args)
Versi upaya terbaik dari |
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 konfigurasi 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 konfigurasi tidak dikonfigurasi dengan benar. |
Metode publik
getInopOptions
publicgetInopOptions ()
Menampilkan kumpulan opsi yang tidak mengubah nilai default apa pun.
Hasil | |
---|---|
|
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]
Parameter | |
---|---|
importantOnly |
boolean : jika true hanya mencetak bantuan untuk opsi penting |
optionObject |
Object : objek yang akan mencetak teks bantuan |
Hasil | |
---|---|
String |
String yang berisi teks bantuan yang mudah digunakan untuk semua kolom Opsi |
parse
publicparse (String... args)
Mengurai argumen command line 'args', menetapkan 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 mengurai argumen. |
parse
publicparse ( 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 mengurai argumen. |
parseBestEffort
publicparseBestEffort ( args)
Metode parseBestEffort(String)
alternatif yang menggunakan ERROR(/List)
argumen
Parameter | |
---|---|
args |
|
Hasil | |
---|---|
|
ERROR(/List) dari argumen yang tersisa |
parseBestEffort
publicparseBestEffort ( args, boolean forceContinue)
Metode parseBestEffort(String)
alternatif yang menggunakan ERROR(/List)
argumen, dan dapat dipaksa untuk terus mengurai hingga akhir, meskipun beberapa argumen tidak diuraikan.
Parameter | |
---|---|
args |
: daftar yang akan berisi argumen yang tersisa. |
forceContinue |
boolean : Benar jika harus terus mengurai meskipun beberapa argumen tidak diuraikan. |
Hasil | |
---|---|
|
ERROR(/List) dari argumen yang tersisa |
parseBestEffort
publicparseBestEffort (String... args)
Versi upaya terbaik dari parse(String)
. Jika ConfigurationException
ditampilkan, pengecualian tersebut akan diambil secara internal, dan argumen yang tersisa (termasuk
argumen yang menyebabkan pengecualian ditampilkan) akan ditampilkan. Metode ini tidak ditampilkan.
Parameter | |
---|---|
args |
String |
Hasil | |
---|---|
|
ERROR(/List) dari argumen yang tersisa |
validateMandatoryOptions
public void validateMandatoryOptions ()
Memvalidasi bahwa semua kolom yang ditandai sebagai wajib telah ditetapkan.
Menampilkan | |
---|---|
|
com.android.tradefed.config.ConfigurationException |
ConfigurationException |