ArgsOptionParser

public class ArgsOptionParser
extends OptionSetter

java.lang.Object
com.android.tradefed.config.OptionSetter
com.android.tradefed.config.ArgsOptionParser


Option alanlarını ayrıştırılmış komut satırı bağımsız değişkenlerinden doldurur.

İletilen String[] içindeki dizeler soldan sağa ayrıştırılır. Her Dize, kısa bir seçenek ("-v" gibi), uzun bir seçenek ("--verbose" gibi), bir seçeneğe yönelik bir argüman ("-f out.txt" içindeki "out.txt" gibi) olarak sınıflandırılır. ") veya seçeneksiz konumsal bir argüman.

Her seçenek bağımsız değişkeninin bir veya daha fazla Option alanıyla eşleşmesi gerekir. Uzun bir seçenek, Option adıyla, kısa bir seçenek ise Option kısa adıyla eşleşir. Her seçenek adı ve seçeneğin kısa adı, aynı nesne içindeki diğer tüm Option alanlarına göre benzersiz olmalıdır.

Tek bir seçenek bağımsız değişkeni, birden çok nesnede aynı ada sahip birden çok Option alanına eşlenebilir. Option bağımsız değişkenleri, o nesnenin tam sınıf adını veya ':' ile ayrılmış OptionClass takma adını kullanarak tek bir nesne içindeki bir Option alanına benzersiz bir şekilde atıfta bulunacak şekilde ad alanına sahip olabilir. yani

 --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 argüman gerektiriyorsa (bu, boolean olmayan herhangi bir seçenek için geçerlidir), ayrı bir parametre olarak yazılabilir, ancak buna gerek yoktur. Yani "-f out.txt" ve "-fout.txt"nin her ikisi de kabul edilebilir.

Hepsi (muhtemelen sonuncusu hariç) argüman gerektirmediği sürece, tek bir "-" işaretinden sonra birden fazla kısa seçenek belirtmek mümkündür.

Uzun bir seçenek "--" ile başlar ve ardından birkaç karakter gelir. Seçenek bir argüman gerektiriyorsa, seçenek adından hemen sonra, "=" ile ayrılmış olarak veya bir sonraki argüman olarak yazılabilir. (Yani, "--file=out.txt" veya "--file out.txt".)

Boolean uzun seçeneği '--name' otomatik olarak bir '--no-name' tamamlayıcısı alır. "--flag" seçeneği verildiğinde, "--flag", "--no-flag", "--flag=true" ve "--flag=false" seçeneklerinin tümü geçerlidir, ancak ikisi de "--flag" değildir true" veya "--flag false" ifadelerine izin verilmez ("--flag" tek başına yeterli olduğundan, aşağıdaki "true" veya "false" ayrı ayrı yorumlanır). "Evet" ve "hayır"ı "doğru" ve "yanlış"ın eşanlamlısı olarak kullanabilirsiniz.

Bir "-" ile başlamayan ve bir önceki seçeneğin zorunlu argümanı olmayan her String, tüm ardışık String'ler gibi, seçenek olmayan konumsal bir argümandır. "--" işaretinden sonraki her String, seçeneksiz konumsal bir argümandır.

Seçeneklere karşılık gelen alanlar, seçenekler işlendikçe güncellenir. Kalan tüm konumsal bağımsız değişkenler List<String> olarak döndürülür.

İşte 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 bakınız:
  • getopt(1) kılavuz sayfası
  • Python'un "optparse" modülü (http://docs.python.org/library/optparse.html)
  • POSIX "Yardımcı Program Sözdizimi Yönergeleri" (http://www.opengroup.org/onlinepubs/000095399/baseefs/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 bakınız:

Özet

Kamu inşaatçıları

ArgsOptionParser ( optionSources) ArgsOptionParser ( optionSources)

Nesne koleksiyonu için bir ArgsOptionParser oluşturur.

ArgsOptionParser (Object... optionSources)

Bir veya daha fazla nesne için ArgsOptionParser oluşturur.

Genel yöntemler

getInopOptions ()

Herhangi bir varsayılan değeri değiştirmeyen seçenekler kümesini döndürür.

static String getOptionHelp (boolean importantOnly, Object optionObject)

Tüm Option alanları için yardım metninin çıktısını alın seçenekNesne .

parse (String... args)

Yapıcıya sağlanan 'optionSource'un @Option alanlarını ayarlayarak 'args' komut satırı argümanlarını ayrıştırır.

parse ( args) parse ( args)

Bağımsız değişkenlerin ERROR(/List) değerini alan alternatif parse(String) yöntemi

parseBestEffort ( args) parseBestEffort ( args)

ERROR(/List) bağımsız değişkenini alan alternatif parseBestEffort(String) yöntemi

parseBestEffort ( args, boolean forceContinue) parseBestEffort ( args, boolean forceContinue)

Bir ERROR(/List) bağımsız değişkenini 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.

parseBestEffort (String... args)

parse(String) in en iyi çaba gösteren versiyonu.

void validateMandatoryOptions ()

Zorunlu olarak işaretlenen tüm alanların ayarlandığını doğrular.

Kamu inşaatçıları

ArgsOptionParser

public ArgsOptionParser ( optionSources)

Nesne koleksiyonu için bir ArgsOptionParser oluşturur.

Parametreler
optionSources : yapılandırma nesneleri.

Atar
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.

Atar
ConfigurationException yapılandırma nesneleri yanlış yapılandırılmışsa.

Genel yöntemler

getInopOptions

public  getInopOptions ()

Herhangi bir varsayılan değeri değiştirmeyen seçenekler kümesini döndürür.

İadeler

getOptionHelp

public static String getOptionHelp (boolean importantOnly, 
                Object optionObject)

Tüm Option alanları için yardım metninin çıktısını alın seçenekNesne .

Her seçeneğin yardım metni şu formatta olacaktır

   [-option_shortname, --option_name]          [option_description] Default:
   [current option field's value in optionObject]
 
Seçenek alanı boş veya boşsa 'Varsayılan..." metni atlanacaktır.

Parametreler
importantOnly boolean : true yalnızca önemli seçenekler için yardım yazdırın

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

ayrıştırmak

public  parse (String... args)

Yapıcıya sağlanan 'optionSource'un @Option alanlarını ayarlayarak 'args' komut satırı argümanlarını ayrıştırır.

Parametreler
args String

İadeler
tüm seçenekler işlendikten sonra kalan konumsal bağımsız değişkenlerin bir ERROR(/List) .

Atar
ConfigurationException argümanların ayrıştırılmasında hata oluştuysa.

ayrıştırmak

public  parse ( args)

Bağımsız değişkenlerin ERROR(/List) değerini alan alternatif parse(String) yöntemi

Parametreler
args

İadeler
tüm seçenekler işlendikten sonra kalan konumsal bağımsız değişkenlerin bir ERROR(/List) .

Atar
ConfigurationException argümanların ayrıştırılmasında hata oluştuysa.

ayrıştırmaBestEffort

public  parseBestEffort ( args)

ERROR(/List) bağımsız değişkenini alan alternatif parseBestEffort(String) yöntemi

Parametreler
args

İadeler
kalan argümanların bir ERROR(/List)

ayrıştırmaBestEffort

public  parseBestEffort ( args, 
                boolean forceContinue)

Bir ERROR(/List) bağımsız değişkenini 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 argümanları içerecek liste.

forceContinue boolean : Bazı argümanlar ayrıştırılmasa bile ayrıştırılmaya devam edilmesi gerekiyorsa doğrudur.

İadeler
kalan argümanların bir ERROR(/List)

ayrıştırmaBestEffort

public  parseBestEffort (String... args)

parse(String) in en iyi çaba gösteren versiyonu. 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öntem atma yapmaz.

Parametreler
args String

İadeler
kalan argümanların bir ERROR(/List)

doğrulamaZorunluSeçenekler

public void validateMandatoryOptions ()

Zorunlu olarak işaretlenen tüm alanların ayarlandığını doğrular.

Atar
com.android.tradefed.config.ConfigurationException
ConfigurationException