ArgsOptionParser
public class ArgsOptionParser
extends OptionSetter
Mengisi bidang Option
dari argumen baris perintah 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" in "-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
lain dalam objek yang sama.
Argumen opsi tunggal bisa dipetakan ke beberapa bidang
Option
dengan nama yang sama di beberapa objek. Argumen
Option
dapat diberi spasi untuk merujuk secara unik ke bidang
Option
dalam satu objek menggunakan nama kelas lengkap objek tersebut atau nilai alias
OptionClass
-nya yang dipisahkan oleh ':'. yaitu
--classname:optionname optionvalue or
--optionclassalias:optionname optionvalue.
Opsi singkat yang sederhana adalah "-" diikuti dengan karakter opsi pendek. Jika opsi membutuhkan argumen (yang benar untuk opsi non-boolean), itu dapat ditulis sebagai parameter terpisah, tetapi tidak perlu. Artinya, "-f out.txt" dan "-fout.txt" keduanya dapat diterima.
Anda dapat menetapkan 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, itu dapat ditulis langsung setelah nama opsi, dipisahkan oleh "=", atau sebagai argumen berikutnya. (Yaitu, "--file = out.txt" atau "--file out.txt".)
Opsi boolean long '--name' secara otomatis mendapatkan pengiring '--tidak ada nama'. Diberikan opsi "--flag", lalu, "--flag", "--no-flag", "--flag = true" dan "--flag = false" semuanya valid, meskipun "--flag tidak ada true "atau" --flag false "diperbolehkan (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 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 sesuai dengan opsi diperbarui saat opsi mereka diproses. Argumen posisi yang tersisa dikembalikan sebagai List <String>.
Berikut 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)
- "Pedoman Sintaks Utilitas" POSIX (http://www.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap12.html#tag_12_02)
- GNU "Standar untuk Antarmuka Baris Perintah" (http://www.gnu.org/prep/standards/standards.html#Command_002dLine-Interfaces)
Ringkasan
Konstruktor publik
ArgsOptionParser
public ArgsOptionParser ( optionSources)
Membuat ArgsOptionParser
untuk kumpulan objek.
Parameter |
---|
optionSources | : objek config. |
Melempar |
---|
ConfigurationException | jika objek config tidak dikonfigurasi dengan benar. |
ArgsOptionParser
public ArgsOptionParser (Object... optionSources)
Membuat ArgsOptionParser
untuk satu atau beberapa objek.
Parameter |
---|
optionSources | Object : objek config. |
Melempar |
---|
ConfigurationException | jika objek config tidak dikonfigurasi dengan benar. |
Metode publik
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 mencetak 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 |
mengurai
public parse (String... args)
Mengurai argumen baris perintah 'args', menyetel bidang @Option dari 'optionSource' yang disediakan untuk konstruktor.
Kembali |
---|
| sebuah ERROR(/List) dari argumen posisi yang tersisa setelah memproses semua opsi. |
Melempar |
---|
ConfigurationException | jika terjadi kesalahan saat mengurai argumen. |
mengurai
public parse ( args)
Metode parse(String)
alternatif yang mengambil ERROR(/List)
argumen
Kembali |
---|
| sebuah ERROR(/List) dari argumen posisi yang tersisa setelah memproses semua opsi. |
Melempar |
---|
ConfigurationException | jika terjadi kesalahan saat mengurai argumen. |
parseBestEffort
public parseBestEffort ( args,
boolean forceContinue)
parseBestEffort(String)
alternatif yang mengambil ERROR(/List)
argumen, dan dapat dipaksa untuk melanjutkan penguraian hingga akhir, bahkan jika beberapa argumen tidak diurai.
Parameter |
---|
args | : daftar yang akan berisi args yang tersisa. |
forceContinue | boolean : True jika harus terus mengurai meskipun beberapa args tidak mengurai. |
parseBestEffort
public parseBestEffort (String... args)
Versi parse(String)
. Jika ConfigurationException dilempar, pengecualian itu ditangkap secara internal, dan argumen yang tersisa (termasuk argumen yang menyebabkan pengecualian dilempar) dikembalikan. Metode ini tidak membuang.
validateMandatoryOptions
public void validateMandatoryOptions ()
Memvalidasi bahwa semua bidang yang ditandai sebagai wajib telah disetel.
Melempar |
---|
ConfigurationException | |