ArgsOptionParser
public
class
ArgsOptionParser
extends OptionSetter
java.lang.Object | ||
↳ | com.android.tradefed.config.OptionSetter | |
↳ | 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 dizelerin ayrıştırma yönü soldan sağadı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.
--classname:optionname optionvalue or --optionclassalias:optionname optionvalue.
Basit kısa seçenek, "-" işaretinden sonra kısa 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 sonuncusu 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 bir 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ı olarak yorumlanır). "Doğru" ve "yanlış" için eş anlamlı olarak "evet" ve "hayır"ı kullanabilirsiniz.
"-" ile başlamayan ve önceki bir seçeneğin zorunlu bağımsız değişkeni olmayan her dize, sonraki tüm dizeler gibi seçenek olmayan bir konumsal bağımsız değişkendir. "--" işaretinden sonraki her dize, seçenek olmayan bir konumsal bağımsız değişkendir.
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) { ... } ... }
- getopt(1) man sayfası
- Python'un "optparse" modülü (http://docs.python.org/library/optparse.html)
- POSIX "Yardımcı Program Söz Dizimi Kuralları" (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)
Bkz.
Özet
Herkese açık kurucular | |
---|---|
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 yapıcıya sağlanan "optionSource"ın @Option alanlarını ayarlar. |
|
parse(
|
|
parseBestEffort(
Bir |
|
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 yanlış yapılandırılmışsa. |
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 yanlış yapılandırılmışsa. |
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 olmalıdı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ırsa |
optionObject |
Object : Yardım metninin bası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)
"args" komut satırı bağımsız değişkenlerini ayrıştırır ve yapıcıya sağlanan "optionSource"ın @Option alanlarını ayarlar.
Parametreler | |
---|---|
args |
String |
İ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şkenler ayrıştırılırken hata oluştuysa. |
ayrıştırma
publicparse ( args)
ERROR(/List)
bağımsız değişkeni 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şkenler ayrıştırılırken hata oluştuysa. |
parseBestEffort
publicparseBestEffort ( args)
Bir ERROR(/List)
bağımsız değişkeni alan alternatif parseBestEffort(String)
yöntemi
Parametreler | |
---|---|
args |
|
İlerlemeler | |
---|---|
|
Kalan bağımsız değişkenlerin ERROR(/List) 'ü |
parseBestEffort
publicparseBestEffort ( args, boolean forceContinue)
Bir ERROR(/List)
bağımsız değişkeni 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)
için en iyi çabayla oluşturulmuş bir sürüm. Bir ConfigurationException oluşturulursa bu istisna dahili olarak yakalanır ve kalan bağımsız değişkenler (istisnanın oluşturulmasına neden olan bağımsız değişken dahil) döndürülür. Bu yöntemde hata atılmaz.
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 |