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.
Geçirilen String[] içindeki dizeler 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ğin bağımsız değişkeni ("-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ına, kısa seçenek ise Option kısa adına karşılık gelir. Her seçenek adı ve seçenek kısa adı, aynı nesnedeki diğer tüm Option alanlara 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, söz konusu nesnenin tam sınıf adı veya ":" ile ayrılmış OptionClass takma ad değeri kullanılarak tek bir nesnedeki Option alanına benzersiz şekilde başvurmak için ad alanına alınabilir. Örneğin:
--classname:optionname optionvalue or --optionclassalias:optionname optionvalue.
Basit kısa seçenek, kısa seçenek karakterinden sonra gelen "-" işaretidir. Seçenek bir bağımsız değişken gerektiriyorsa (Boolean olmayan tüm seçenekler için geçerlidir) ayrı bir parametre olarak yazılabilir ancak yazılması zorunlu değildir. Yani hem "-f out.txt" hem de "-fout.txt" kabul edilebilir.
Tümü (muhtemelen sonuncusu hariç) bağımsız değişken gerektirmediği sürece tek bir "-" işaretinden sonra birden fazla kısa seçenek belirtmek mümkündür.
Uzun seçenekler "--" ile başlar ve ardından birkaç karakter gelir. Seçenek bir bağımsız değişken gerektiriyorsa bu bağımsız değişken, seçenek adından hemen sonra "=" ile ayrılarak veya bir sonraki bağımsız değişken olarak yazılabilir. (Yani "--file=out.txt" veya "--file out.txt".)
Bir boolean uzun seçeneği olan "--name" otomatik olarak "--no-name" eşini 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 (çünkü "--flag" tek başına yeterlidir ve ardından gelen "true" veya "false" ayrı ayrı yorumlanır). "Doğru" ve "yanlış" yerine 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çeneklere karşılık gelen alanlar, seçenekler işlendikçe güncellenir. Geri kalan tüm konumsal bağımsız değişkenler List<String> olarak döndürülür.
Basit bir örnek:
// 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'ın "optparse" modülü (http://docs.python.org/library/optparse.html)
- POSIX "Utility Syntax Guidelines" (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)
Ayrıca bkz.:
Özet
Herkese açık oluşturucular | |
|---|---|
ArgsOptionParser(Object... optionSources)
Bir veya daha fazla nesne için |
|
ArgsOptionParser(Collection<Object> optionSources)
Bir nesne koleksiyonu için |
|
Herkese açık yöntemler | |
|---|---|
Set<String>
|
getInopOptions()
Varsayılan değerleri değiştirmeyen seçenekler grubunu döndürür. |
static
String
|
getOptionHelp(boolean importantOnly, Object optionObject)
optionObject içindeki tüm |
List<String>
|
parse(List<String> args)
|
List<String>
|
parse(String... args)
Oluşturucuya sağlanan "optionSource" öğesinin @Option alanlarını ayarlayarak "args" komut satırı bağımsız değişkenlerini ayrıştırır. |
List<String>
|
parseBestEffort(List<String> args)
|
List<String>
|
parseBestEffort(List<String> args, boolean forceContinue)
Bir |
List<String>
|
parseBestEffort(String... args)
|
void
|
validateMandatoryOptions()
Zorunlu olarak işaretlenen tüm alanların ayarlandığını doğrular. |
Herkese açık oluşturucular
ArgsOptionParser
public ArgsOptionParser (Object... optionSources)
Bir veya daha fazla nesne için ArgsOptionParser oluşturur.
| Parametreler | |
|---|---|
optionSources |
Object: yapılandırma nesneleri. |
| Verdiği hatalar | |
|---|---|
ConfigurationException |
yapılandırma nesneleri yanlış yapılandırılmışsa |
ArgsOptionParser
public ArgsOptionParser (Collection<Object> optionSources)
Bir nesne koleksiyonu için ArgsOptionParser oluşturur.
| Parametreler | |
|---|---|
optionSources |
Collection: yapılandırma nesneleri. |
| Verdiği hatalar | |
|---|---|
ConfigurationException |
yapılandırma nesneleri yanlış yapılandırılmışsa |
Herkese açık yöntemler
getInopOptions
public Set<String> getInopOptions ()
Varsayılan değerleri değiştirmeyen seçenekler grubunu döndürür.
| İadeler | |
|---|---|
Set<String> |
|
getOptionHelp
public static String getOptionHelp (boolean importantOnly,
Object optionObject)optionObject içindeki tüm Option alanları için çıkış yardım metni.
Her 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]
| Parametreler | |
|---|---|
importantOnly |
boolean: true yalnızca önemli seçenekler için yazdırma yardımı |
optionObject |
Object: Yardım metninin yazdırılacağı nesne |
| İadeler | |
|---|---|
String |
Tüm Seçenek alanları için kullanıcı dostu yardım metni içeren bir dize |
parse
public List<String> parse (List<String> args)
List bağımsız değişken alan alternatif ERROR(/#parse(String. args)) yöntemi
| Parametreler | |
|---|---|
args |
List |
| İadeler | |
|---|---|
List<String> |
Tüm seçenekler işlendikten sonra kalan konumsal bağımsız değişkenlerin List. |
| Verdiği hatalar | |
|---|---|
ConfigurationException |
Bağımsız değişkenler ayrıştırılırken hata oluştuysa. |
parse
public List<String> parse (String... args)
Oluşturucuya sağlanan "optionSource" öğesinin @Option alanlarını ayarlayarak "args" komut satırı bağımsız değişkenlerini ayrıştırır.
| Parametreler | |
|---|---|
args |
String |
| İadeler | |
|---|---|
List<String> |
Tüm seçenekler işlendikten sonra kalan konumsal bağımsız değişkenlerin List. |
| Verdiği hatalar | |
|---|---|
ConfigurationException |
Bağımsız değişkenler ayrıştırılırken hata oluştuysa. |
parseBestEffort
public List<String> parseBestEffort (List<String> args)
ERROR(/#parseBestEffort(String. args)) alternatif yöntemi, List bağımsız değişken alır.
| Parametreler | |
|---|---|
args |
List |
| İadeler | |
|---|---|
List<String> |
Kalan bağımsız değişkenlerin List |
parseBestEffort
public List<String> parseBestEffort (List<String> args,
boolean forceContinue)Bir 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 ERROR(/#parseBestEffort(String. args)) yöntemi.
| Parametreler | |
|---|---|
args |
List: Kalan argümanları içeren liste. |
forceContinue |
boolean: Bazı bağımsız değişkenler ayrıştırılmasa bile ayrıştırmaya devam edilmesi gerekiyorsa doğru. |
| İadeler | |
|---|---|
List<String> |
Kalan bağımsız değişkenlerin List |
parseBestEffort
public List<String> parseBestEffort (String... args)
ERROR(/#parse(String. args))'ın en iyi sonuç veren sürümü. ConfigurationException oluşturulursa bu istisna dahili olarak yakalanır ve istisnanın oluşturulmasına neden olan bağımsız değişken de dahil olmak üzere kalan bağımsız değişkenler döndürülür. Bu yöntem hata vermez.
| Parametreler | |
|---|---|
args |
String |
| İadeler | |
|---|---|
List<String> |
Kalan bağımsız değişkenlerin List |
validateMandatoryOptions
public void validateMandatoryOptions ()
Zorunlu olarak işaretlenen tüm alanların ayarlandığını doğrular.
| Verdiği hatalar | |
|---|---|
|
com.android.tradefed.config.ConfigurationException |
ConfigurationException |
|