ArgsOption Ayrıştırıcı
public
class
ArgsOptionParser
extends OptionSetter
Java.lang.Nesne | ||
🎃 | com.android.tradefed.config.OptionSetter | |
🎃 | com.android.tradefed.config.ArgsOptionParser |
Ayrıştırılmış komut satırı bağımsız değişkenlerindeki Option
alanlarını doldurur.
İletilen Dize[] içindeki dizeler soldan sağa doğru ayrıştırılır. Her bir Dize kısa seçenek ("-v" gibi), uzun bir seçenek ("--ayrıntılı" gibi), bir seçeneğin bağımsız değişkeni (ör. "out.txt" "-f out.txt") veya isteğe bağlı olmayan bir konum bağımsız değişkeni kullanın.
Her seçenek bağımsız değişkeni bir veya daha fazla Option
alanıyla eşlenmelidir. Uzun bir seçenek,
Option
adı ve kısa bir seçenek, Option
kısa ada karşılık geliyor. Her bir seçeneğin adı ve
seçenek kısa adı, diğer tüm seçeneklere kıyasla benzersiz olmalıdır
Aynı nesne içinde Option
alanı var.
Tek bir seçenek bağımsız değişkeni, aynı ada sahip birden fazla Option
alanıyla eşlenebilir
birden fazla nesnede birleştirin. Option
bağımsız değişkenleri, bir
Option
alanına, bu nesnenin tam sınıf adını veya
":" ile ayrılmış OptionClass
takma ad değeri. ör.
--classname:optionname optionvalue or --optionclassalias:optionname optionvalue.
Basit bir kısa seçenek, "-" ve ardından kısa bir seçenek karakteri gelir. Seçenek, bağımsız değişkeni (boole olmayan herhangi bir seçenek için geçerlidir) bağımsız bir parametre olarak ancak şart değildir. Yani, "-f out.txt" ve "-fout.txt" kabul edilebilir.
Tek bir "-" işaretinden sonra birden çok kısa seçenek belirtilebilir olduğu sürece ( ikincisi) bağımsız değişken gerekmez.
Uzun bir seçenek "--" ile başlar ve ardından birkaç karakter gelir. Seçenek, bağımsız değişkeni, doğrudan seçenek adından sonra, "=" ile ayrılmış olarak veya bağımsız değişkeninin önüne geçer. (Yani, "--file=out.txt" veya "--file out.txt".)
Uzun bir boole seçeneği olan "--name" otomatik olarak bir '--no-name' alır yardımcı olur. Bir seçenek sunuluyorsa "--flag", ardından, "--flag", "--no-flag", "--flag=true", ve "--flag=false" hepsi geçerlidir ancak "--flag true" yok veya "--flag false" izin verilir ("--flag" tek başına yeterli olduğundan "true" ifadesinden sonra veya "false" ayrı yorumlanır). "Evet" yazabilirsiniz. ve "no" eş anlamlılar olarak "true" (doğru) için ve "false" olarak ayarlayın.
Her Dize "-" ile başlamıyor ve önceki seçeneğin zorunlu bir bağımsız değişkeni değil, ve sonraki tüm Dizeler için olduğu gibi, isteğe bağlı olmayan konumsal bağımsız değişkendir. "--" işaretinden sonra gelen her Dize bir isteğe bağlı olmayan konumsal bağımsız değişkendir.
Seçeneklere karşılık gelen alanlar, seçenekler işlendikçe güncellenir. Kalanların sayısı konum bağımsız değişkenleri List<String> olarak döndürülür.
Aşağıda basit bir örnek verilmiştir:
// 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) { ... } ... }
- getopt(1) kılavuz sayfası
- Python'un "optparse" modül (http://docs.python.org/library/optparse.html)
- POSIX "Yardımcı Program Söz Dizimi Yönergeleri" (http://www.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap12.html#tag_12_02)
- GNU "Komut Satırı Arayüzleri Standartları" (http://www.gnu.org/prep/standards/standards.html#Command_002dLine-Interfaces)
Şu kaynakları da inceleyin:
Özet
Kamu inşaatçıları | |
---|---|
ArgsOptionParser(
Nesne koleksiyonu için bir |
|
ArgsOptionParser(Object... optionSources)
Bir veya daha fazla nesne için bir |
Herkese açık yöntemler | |
---|---|
|
getInopOptions()
Varsayılan değerleri değiştirmeyen seçenekler grubunu döndürür. |
static
String
|
getOptionHelp(boolean importantOnly, Object optionObject)
optionObject. |
|
parse(String... args)
"optionSource"un @Option alanlarını ayarlayarak "args" komut satırı bağımsız değişkenlerini ayrıştırır yapılandırıcıya verilir. |
|
parse(
|
|
parseBestEffort(
|
|
parseBestEffort(
|
|
parseBestEffort(String... args)
|
void
|
validateMandatoryOptions()
Zorunlu olarak işaretlenen tüm alanların ayarlandığını doğrular. |
Kamu inşaatçıları
ArgsOption Ayrıştırıcı
public ArgsOptionParser (optionSources)
Nesne koleksiyonu için bir ArgsOptionParser
oluşturur.
Parametreler | |
---|---|
optionSources |
: yapılandırma nesneleri. |
Fırlatma | |
---|---|
ConfigurationException |
yapılandırma nesneleri doğru yapılandırılmamış olabilir. |
ArgsOption Ayrıştırıcı
public ArgsOptionParser (Object... optionSources)
Bir veya daha fazla nesne için bir ArgsOptionParser
oluşturur.
Parametreler | |
---|---|
optionSources |
Object : yapılandırma nesneleri. |
Fırlatma | |
---|---|
ConfigurationException |
yapılandırma nesneleri doğru yapılandırılmamış olabilir. |
Herkese açık yöntemler
getInopOptions
publicgetInopOptions ()
Varsayılan değerleri değiştirmeyen seçenekler grubunu döndürür.
İlerlemeler | |
---|---|
|
getOptionYardımı
public static String getOptionHelp (boolean importantOnly, Object optionObject)
optionObject.Option
Her seçenek için yardım metni aşağıdaki biçimde olacaktır
[-option_shortname, --option_name] [option_description] Default: [current option field's value in optionObject]
Parametreler | |
---|---|
importantOnly |
boolean : true yalnızca önemli seçenekler için yardımı yazdırır |
optionObject |
Object : İlgili yardım metninin yazdırılacağı nesne |
İlerlemeler | |
---|---|
String |
Tüm Seçenek alanları için kullanıcı dostu yardım metni içeren bir Dize |
ayrıştır
publicparse (String... args)
"optionSource"un @Option alanlarını ayarlayarak "args" komut satırı bağımsız değişkenlerini ayrıştırır yapılandırıcıya verilir.
Parametreler | |
---|---|
args |
String |
İlerlemeler | |
---|---|
|
Tüm seçenekler işlendikten sonra kalan konum bağımsız değişkenlerinin ERROR(/List) kadarı. |
Fırlatma | |
---|---|
ConfigurationException |
bağımsız değişkenlerin ayrıştırılmasında hata oluştu. |
ayrıştır
publicparse ( args)
ERROR(/List)
bağımsız değişken alan alternatif parse(String)
yöntemi
Parametreler | |
---|---|
args |
|
İlerlemeler | |
---|---|
|
Tüm seçenekler işlendikten sonra kalan konum bağımsız değişkenlerinin ERROR(/List) kadarı. |
Fırlatma | |
---|---|
ConfigurationException |
bağımsız değişkenlerin ayrıştırılmasında hata oluştu. |
ayrıştırma
publicparseBestEffort ( args)
ERROR(/List)
oranında alan alternatif parseBestEffort(String)
yöntemi
bağımsız değişkenler
Parametreler | |
---|---|
args |
|
İlerlemeler | |
---|---|
|
kalan bağımsız değişkenlerin ERROR(/List) kadarı |
ayrıştırma
publicparseBestEffort ( args, boolean forceContinue)
ERROR(/List)
oranında alan alternatif parseBestEffort(String)
yöntemi
ve bazı bağımsız değişkenlerin tamamı bu bağımsız değişkenlerin kapsamında olmasa bile,
ayrıştırır.
Parametreler | |
---|---|
args |
: sol bağımsız değişkenleri içeren liste. |
forceContinue |
boolean : Bazı bağımsız değişkenler ayrıştırılmasa bile ayrıştırmaya devam etmesi gerekiyorsa doğru değerini döndürür. |
İlerlemeler | |
---|---|
|
kalan bağımsız değişkenlerin ERROR(/List) kadarı |
ayrıştırEnEffort
publicparseBestEffort (String... args)
parse(String)
ürününün en iyi çaba sürümü. ConfigurationException
bu istisna dahili olarak yakalanır ve geri kalan bağımsız değişkenler (
bağımsız değişkeni) döndürülür. Bu yöntem işe yaramaz.
Parametreler | |
---|---|
args |
String |
İlerlemeler | |
---|---|
|
kalan bağımsız değişkenlerin ERROR(/List) kadarı |
VerifyMandatoryOptions
public void validateMandatoryOptions ()
Zorunlu olarak işaretlenen tüm alanların ayarlandığını doğrular.
Fırlatma | |
---|---|
|
com.android.tradefed.config.ConfigurationException |
ConfigurationException |