ArgsOption Ayrıştırıcı
public
class
ArgsOptionParser
extends OptionSetter
java.lang.Nesne | ||
↳ | com.android.tradefed.config.OptionSetter | |
\t | com.android.tradefed.config.ArgsOptionParser |
Ayrıştırılan komut satırı bağımsız değişkenlerinden Option
alanlarını doldurur.
İletilen String[] içindeki dize soldan sağa doğru ayrıştırılır. Her dize kısa seçenek ("-v" gibi), uzun seçenek ("--verbose" gibi), bir seçeneğe ait bağımsız değişken ("-f out.txt" içindeki "out.txt" gibi) veya seçenek olmayan konumsal bağımsız değişken olarak sınıflandırılır.
Her seçenek bağımsız değişkeni bir veya daha fazla Option
alanıyla eşlenmelidir. Uzun seçenek, Option
adıyla eşlenir ve kısa seçenek, Option
kısa adıyla eşlenir. Her seçenek adı ve seçenek kısa adı, aynı nesnedeki diğer tüm Option
alanlarına göre benzersiz olmalıdır.
Tek bir seçenek bağımsız değişkeni, birden fazla nesnede aynı ada sahip birden fazla Option
alanıyla eşlenebilir. Option
bağımsız değişkenleri, tek bir nesne içindeki Option
alanını benzersiz bir şekilde atıfta bulunmak için ad alanına eklenebilir. Bu işlem için söz konusu nesnenin tam sınıf adı veya OptionClass
takma adı değeri, ":" ile ayrılır. Örneğin:
--classname:optionname optionvalue or --optionclassalias:optionname optionvalue.
Basit bir kısa seçenek, "-" ve ardından kısa bir seçenek karakteridir. Seçenek bir bağımsız değişken gerektiriyorsa (bu, doğru olmayan tüm seçenekler için geçerlidir) ayrı bir parametre olarak yazılabilir ancak yazılmak zorunda değildir. Yani hem "-f out.txt" hem de "-fout.txt" kabul edilir.
Tek bir "-" işaretinden sonra birden fazla kısa seçenek belirtilebilir. Bunun için, tüm seçeneklerin (muhtemelen sonuncu hariç) bağımsız değişken gerektirmemesi gerekir.
Uzun seçenekler "--" ile başlar ve ardından birkaç karakter gelir. Seçenek için bağımsız değişken gerekiyorsa bu bağımsız değişken, doğrudan seçenek adından sonra "=" ile ayrılarak veya sonraki bağımsız değişken olarak yazılabilir. (Yani, "--file=out.txt" veya "--file out.txt".)
"--name" mantıksal uzun seçeneği otomatik olarak bir "--no-name" eşlemesi alır. "--flag" seçeneği verildiğinde "--flag", "--no-flag", "--flag=true" ve "--flag=false" seçeneklerinin tümü geçerlidir. Ancak "--flag true" veya "--flag false" seçeneklerine izin verilmez ("--flag" tek başına yeterli olduğundan, "true" veya "false" ayrı ayrı yorumlanır). "Doğru" ve "yanlış" için eş anlamlı olarak "evet" ve "hayır"ı kullanabilirsiniz.
"-" ile başlamayan her Dize, önceki seçeneğin zorunlu bir bağımsız değişkeni değil, tüm ardışık Dizeler gibi seçenek olmayan konumsal bir bağımsız değişkendir. "--" işaretinden sonraki her Dize, isteğe bağlı olmayan bir konum bağımsız değişkenidir.
Seçenekler işlenirken seçeneklere karşılık gelen alanlar güncellenir. Kalan konumsal bağımsız değişkenler List<String> olarak döndürülür.
Basit bir örnek verelim:
// 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) { ... } ... }Şunlara da bakın:
- getopt(1) man 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(
Bir nesne koleksiyonu için |
|
ArgsOptionParser(Object... optionSources)
Bir veya daha fazla nesne için |
Herkese açık yöntemler | |
---|---|
|
getInopOptions()
Varsayılan değerleri değiştirmeyen seçenek grubunu döndürür. |
static
String
|
getOptionHelp(boolean importantOnly, Object optionObject)
optionObject içindeki tüm |
|
parse(String... args)
"args" komut satırı bağımsız değişkenlerini ayrıştırır ve oluşturucuya sağlanan "optionSource"ın @Option alanlarını ayarlar. |
|
parse(
|
|
parseBestEffort(
|
|
parseBestEffort(
Bir |
|
parseBestEffort(String... args)
|
void
|
validateMandatoryOptions()
Zorunlu olarak işaretlenen tüm alanların ayarlanıp ayarlanmadığını doğrular. |
Herkese açık kurucular
ArgsOptionParser
public ArgsOptionParser (optionSources)
Bir nesne koleksiyonu için ArgsOptionParser
oluşturur.
Parametreler | |
---|---|
optionSources |
: yapılandırma nesneleri. |
Atışlar | |
---|---|
ConfigurationException |
yapılandırma nesneleri doğru yapılandırılmamış olabilir. |
ArgsOptionParser
public ArgsOptionParser (Object... optionSources)
Bir veya daha fazla nesne için ArgsOptionParser
oluşturur.
Parametreler | |
---|---|
optionSources |
Object : yapılandırma nesneleri. |
Atışlar | |
---|---|
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çenek grubunu döndürür.
İlerlemeler | |
---|---|
|
getOptionHelp
public static String getOptionHelp (boolean importantOnly, Object optionObject)
optionObject içindeki tüm Option
alanları için yardım metnini döndürme.
Her bir seçeneğin yardım metni aşağıdaki biçimde olur:
[-option_shortname, --option_name] [option_description] Default: [current option field's value in optionObject]Seçenek alanı boşsa "Varsayılan..." metni atlanır.
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ırma
publicparse (String... args)
Oluşturucuya sağlanan "optionSource"un @Option alanlarını ayarlayarak "args" komut satırı bağımsız değişkenlerini ayrıştırır.
Parametreler | |
---|---|
args |
String |
İlerlemeler | |
---|---|
|
Tüm seçenekler işlendikten sonra kalan konum bağımsız değişkenlerinin ERROR(/List) kadarı. |
Atışlar | |
---|---|
ConfigurationException |
bağımsız değişkenler ayrıştırılırken hata oluştuysa. |
ayrıştırma
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 konumsal bağımsız değişkenlerin ERROR(/List) . |
Atışlar | |
---|---|
ConfigurationException |
bağımsız değişkenlerin ayrıştırılmasında hata oluştu. |
parseBestEffort
publicparseBestEffort ( args)
ERROR(/List)
bağımsız değişken alan alternatif parseBestEffort(String)
yöntemi
Parametreler | |
---|---|
args |
|
İlerlemeler | |
---|---|
|
kalan bağımsız değişkenlerin ERROR(/List) kadarı |
parseBestEffort
publicparseBestEffort ( args, boolean forceContinue)
ERROR(/List)
bağımsız değişken alan ve bazı bağımsız değişkenler ayrıştırılmasa bile sonuna kadar ayrıştırmaya devam etmeye zorlanabilen alternatif parseBestEffort(String)
yöntemi.
Parametreler | |
---|---|
args |
: Kalan bağımsız değişkenleri içeren liste. |
forceContinue |
boolean : Bazı bağımsız değişkenler ayrıştırılamasa bile ayrıştırmaya devam edilmesi gerekiyorsa doğru değerini döndürür. |
İlerlemeler | |
---|---|
|
Kalan bağımsız değişkenlerin ERROR(/List) 'ü |
parseBestEffort
publicparseBestEffort (String... args)
parse(String)
ürününün en iyi çaba sürümü. Bir ConfigurationException atılırsa bu istisna dahili olarak yakalanır ve kalan bağımsız değişkenler (istisnanın atılmasına neden olan bağımsız değişken dahil) döndürülür. Bu yöntem işe yaramaz.
Parametreler | |
---|---|
args |
String |
İlerlemeler | |
---|---|
|
Kalan bağımsız değişkenlerin ERROR(/List) 'ü |
validateMandatoryOptions
public void validateMandatoryOptions ()
Zorunlu olarak işaretlenen tüm alanların ayarlanıp ayarlanmadığını doğrular.
Atışlar | |
---|---|
|
com.android.tradefed.config.ConfigurationException |
ConfigurationException |