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) {
        ...
     }
     ...

 }

 
Ayrıca bkz.:
  • 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 oluşturur.

ArgsOptionParser(Collection<Object> optionSources)

Bir nesne koleksiyonu için ArgsOptionParser oluşturur.

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 Option alanları için çıkış yardım metni.

List<String> parse(List<String> args)

List bağımsız değişken alan alternatif ERROR(/#parse(String. args)) yöntemi

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)

ERROR(/#parseBestEffort(String. args)) alternatif yöntemi, List bağımsız değişken alır.

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.

List<String> parseBestEffort(String... args)

ERROR(/#parse(String. args))'ın en iyi sonuç veren sürümü.

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]
 
Seçenek alanı boşsa veya null ise "Varsayılan..." metni atlanır.

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