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 diurai.
Option
. Opsi panjang dipetakan ke nama Option
, dan opsi pendek dipetakan ke nama pendek Option
. Setiap nama opsi dan nama pendek opsi harus unik terhadap 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 spasi nama untuk secara unik merujuk 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 yang sederhana adalah "-" diikuti dengan karakter opsi pendek. Jika opsi memerlukan argumen (yang berlaku untuk opsi non-boolean apa pun), maka opsi tersebut dapat ditulis sebagai parameter terpisah, namun tidak harus demikian. Artinya, "-f out.txt" dan "-fout.txt" keduanya dapat diterima. Dimungkinkan untuk menentukan beberapa opsi pendek setelah satu "-" selama semua (kecuali mungkin yang terakhir) tidak memerlukan argumen. Opsi panjang dimulai dengan "--" diikuti oleh beberapa karakter. Jika opsi memerlukan argumen, opsi tersebut dapat ditulis tepat setelah nama opsi, dipisahkan dengan "=", atau sebagai argumen berikutnya. (Yaitu, "--file=out.txt" atau "--file out.txt".) Opsi boolean panjang '--name' secara otomatis mendapatkan pendamping '--no-name'. Jika diberi opsi "--flag", maka, "--flag", "--no-flag", "--flag=true" dan "--flag=false" semuanya valid, meskipun tidak ada "--flag true" atau "--flag false" diperbolehkan (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 yang diperlukan dari opsi sebelumnya adalah argumen posisi non-opsi, seperti halnya semua String yang berurutan. Setiap String setelah "--" adalah argumen posisi non-opsi. Bidang yang sesuai dengan opsi diperbarui saat opsinya diproses. Argumen posisi yang tersisa dikembalikan sebagai Daftar<String>. Berikut ini contoh sederhananya:
// 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)
- POSIX "Pedoman Sintaks Utilitas" (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 (Object... optionSources) Membuat |
Metode publik | |
---|---|
getInopOptions () Mengembalikan kumpulan opsi yang tidak mengubah nilai default apa pun. | |
static String | getOptionHelp (boolean importantOnly, Object optionObject) Keluarkan teks bantuan untuk semua bidang |
parse (String... args) Mengurai argumen baris perintah 'args', mengatur bidang @Option dari 'optionSource' yang disediakan untuk konstruktor. | |
parse ( args) parse ( args) Metode | |
parseBestEffort ( args) parseBestEffort ( args) Metode | |
parseBestEffort ( args, boolean forceContinue) parseBestEffort ( args, boolean forceContinue) Metode | |
parseBestEffort (String... args) Versi upaya terbaik dari | |
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 |
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
dapatkanInopOptions
publicgetInopOptions ()
Mengembalikan kumpulan opsi yang tidak mengubah nilai default apa pun.
Kembali | |
---|---|
dapatkanOptionHelp
public static String getOptionHelp (boolean importantOnly, Object optionObject)
Keluarkan teks bantuan untuk semua bidang Option
di pilihanObjek .
[-option_shortname, --option_name] [option_description] Default: [current option field's value in optionObject]Teks 'Default..." akan dihilangkan jika bidang opsi null atau kosong.
Parameter | |
---|---|
importantOnly | boolean : jika true hanya cetak bantuan untuk opsi penting |
optionObject | Object : objek untuk mencetak teks bantuan |
Kembali | |
---|---|
String | sebuah String yang berisi teks bantuan yang mudah digunakan untuk semua bidang Opsi |
menguraikan
publicparse (String... args)
Mengurai argumen baris perintah 'args', mengatur bidang @Option dari 'optionSource' yang disediakan untuk konstruktor.
Parameter | |
---|---|
args | String |
Kembali | |
---|---|
sebuah ERROR(/List) dari argumen posisi yang tersisa setelah memproses semua opsi. |
Melempar | |
---|---|
ConfigurationException | jika terjadi kesalahan saat mengurai argumen. |
menguraikan
publicparse ( args)
Metode parse(String)
alternatif yang menggunakan argumen ERROR(/List)
Parameter | |
---|---|
args |
Kembali | |
---|---|
sebuah ERROR(/List) dari argumen posisi yang tersisa setelah memproses semua opsi. |
Melempar | |
---|---|
ConfigurationException | jika terjadi kesalahan saat mengurai argumen. |
parseBestEffort
publicparseBestEffort ( args)
Metode parseBestEffort(String)
alternatif yang menggunakan argumen ERROR(/List)
Parameter | |
---|---|
args |
Kembali | |
---|---|
sebuah ERROR(/List) dari argumen yang tersisa |
parseBestEffort
publicparseBestEffort ( args, boolean forceContinue)
Metode parseBestEffort(String)
alternatif yang menggunakan argumen ERROR(/List)
, dan dapat dipaksa untuk melanjutkan penguraian hingga akhir, meskipun beberapa argumen tidak dapat diurai.
Parameter | |
---|---|
args | |
forceContinue | boolean : Benar jika harus terus diurai meskipun beberapa argumen tidak diurai. |
Kembali | |
---|---|
sebuah ERROR(/List) dari argumen yang tersisa |
parseBestEffort
publicparseBestEffort (String... args)
Versi upaya terbaik dari parse(String)
. Jika ConfigurationException dilempar, pengecualian tersebut ditangkap secara internal, dan argumen yang tersisa (termasuk argumen yang menyebabkan pengecualian dilempar) dikembalikan. Cara ini tidak membuang-buang waktu.
Parameter | |
---|---|
args | String |
Kembali | |
---|---|
sebuah 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 |