ArgsOptionParser

public class ArgsOptionParser
extends OptionSetter

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


فیلدهای Option را از آرگومان های خط فرمان تجزیه شده پر می کند.

رشته ها در رشته پاس شده[] از چپ به راست تجزیه می شوند. هر رشته به عنوان یک گزینه کوتاه (مانند "-v")، یک گزینه طولانی (مانند "--verbose")، یک آرگومان برای یک گزینه (مانند "out.txt" در "-f out.txt" طبقه بندی می شود. ")، یا یک آرگومان موقعیتی غیر اختیاری.

هر آرگومان گزینه باید به یک یا چند فیلد Option نگاشت شود. یک گزینه طولانی به نام Option و یک گزینه کوتاه به نام کوتاه Option نگاشت می شود. نام هر گزینه و نام کوتاه گزینه باید با توجه به سایر فیلدهای Option در همان شی منحصر به فرد باشد.

یک آرگومان گزینه واحد می تواند به چندین فیلد Option با نام یکسان در چندین شیء نگاشت شود. آرگومان‌های Option را می‌توان برای ارجاع منحصربه‌فرد به یک فیلد Option در یک شی منفرد با استفاده از نام کلاس کامل آن شی یا مقدار نام مستعار OptionClass آن که با «:» از هم جدا شده است، استفاده کرد. یعنی

 --classname:optionname optionvalue or
 --optionclassalias:optionname optionvalue.
 

یک گزینه کوتاه ساده یک "-" است که با یک کاراکتر گزینه کوتاه همراه است. اگر گزینه به آرگومان نیاز دارد (که در مورد هر گزینه غیر بولی صدق می کند)، ممکن است به عنوان یک پارامتر جداگانه نوشته شود، اما لازم نیست. یعنی «-f out.txt» و «-fout.txt» هر دو قابل قبول هستند.

می توان چند گزینه کوتاه را بعد از یک "-" مشخص کرد تا زمانی که همه (به جز احتمالاً آخرین) به آرگومان نیاز نداشته باشند.

یک گزینه طولانی با "--" و به دنبال آن چندین کاراکتر شروع می شود. اگر گزینه ای به آرگومان نیاز دارد، ممکن است مستقیماً بعد از نام گزینه، با «="» یا به عنوان آرگومان بعدی جدا شود. (یعنی "--file=out.txt" یا "--file out.txt".)

یک گزینه طولانی بولی '--name' به طور خودکار یک همراه '--no-name' دریافت می کند. با در نظر گرفتن گزینه "--flag"، سپس، "--flag"، "--no-flag"، "--flag=true" و "--flag=false" همگی معتبر هستند، هر چند نه "--flag" درست است یا «--پرچم نادرست» مجاز هستند (از آنجایی که «--پرچم» به خودی خود کافی است، «درست» یا «نادرست» زیر به طور جداگانه تفسیر می شود). می توانید از "بله" و "نه" به عنوان مترادف "درست" و "نادرست" استفاده کنید.

هر رشته ای که با یک "-" شروع نمی شود و آرگومان مورد نیاز گزینه قبلی نیست، مانند همه رشته های متوالی، یک آرگومان موقعیتی غیر گزینه ای است. هر رشته بعد از "--" یک آرگومان موقعیتی غیر گزینه ای است.

فیلدهای مربوط به گزینه ها با پردازش گزینه های آنها به روز می شوند. هر آرگومان موقعیتی باقی مانده به عنوان List<String> برگردانده می شود.

در اینجا یک مثال ساده آورده شده است:

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

 }

 
همچنین ببینید:
  • صفحه man getopt(1).
  • ماژول "optparse" پایتون (http://docs.python.org/library/optparse.html)
  • POSIX "دستورالعمل های نحوی کاربردی" (http://www.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap12.html#tag_12_02)
  • "استانداردهای رابط های خط فرمان" گنو (http://www.gnu.org/prep/standards/standards.html#Command_002dLine-Interfaces)

همچنین ببینید:

خلاصه

سازندگان عمومی

ArgsOptionParser ( optionSources) ArgsOptionParser ( optionSources)

یک ArgsOptionParser برای مجموعه ای از اشیاء ایجاد می کند.

ArgsOptionParser (Object... optionSources)

یک ArgsOptionParser برای یک یا چند شی ایجاد می کند.

روش های عمومی

getInopOptions ()

مجموعه ای از گزینه ها را برمی گرداند که هیچ مقدار پیش فرضی را تغییر نداده اند.

static String getOptionHelp (boolean importantOnly, Object optionObject)

خروجی متن راهنما برای همه فیلدهای Option در optionObject .

parse (String... args)

آرگومان های خط فرمان "args" را تجزیه می کند و فیلدهای @Option را در "optionSource" ارائه شده به سازنده تنظیم می کند.

parse ( args) parse ( args)

متد parse(String) جایگزین که یک ERROR(/List) از آرگومان ها را می گیرد

parseBestEffort ( args) parseBestEffort ( args)

متد جایگزین parseBestEffort(String) که یک ERROR(/List) از آرگومان ها را می گیرد.

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

متد جایگزین parseBestEffort(String) که یک ERROR(/List) از آرگومان ها را می گیرد و می توان آن را مجبور کرد تا تجزیه را تا انتها ادامه دهد، حتی اگر برخی از آرگ ها تجزیه نشوند.

parseBestEffort (String... args)

بهترین نسخه از parse(String) .

void validateMandatoryOptions ()

تأیید می کند که تمام فیلدهای علامت گذاری شده به عنوان اجباری تنظیم شده اند.

سازندگان عمومی

ArgsOptionParser

public ArgsOptionParser ( optionSources)

یک ArgsOptionParser برای مجموعه ای از اشیاء ایجاد می کند.

پارامترها
optionSources : اشیاء پیکربندی.

پرتاب می کند
ConfigurationException اگر اشیاء پیکربندی به درستی پیکربندی نشده باشد.

ArgsOptionParser

public ArgsOptionParser (Object... optionSources)

یک ArgsOptionParser برای یک یا چند شی ایجاد می کند.

پارامترها
optionSources Object : اشیاء پیکربندی.

پرتاب می کند
ConfigurationException اگر اشیاء پیکربندی به درستی پیکربندی نشده باشد.

روش های عمومی

getInopOptions

public  getInopOptions ()

مجموعه ای از گزینه ها را برمی گرداند که هیچ مقدار پیش فرضی را تغییر نداده اند.

برمی گرداند

getOptionHelp

public static String getOptionHelp (boolean importantOnly, 
                Object optionObject)

خروجی متن راهنما برای همه فیلدهای Option در optionObject .

متن راهنما برای هر گزینه در قالب زیر خواهد بود

   [-option_shortname, --option_name]          [option_description] Default:
   [current option field's value in optionObject]
 
اگر فیلد گزینه خالی یا خالی باشد، متن «پیش‌فرض...» حذف می‌شود.

پارامترها
importantOnly boolean : اگر true فقط برای گزینه های مهم کمک چاپ کنید

optionObject Object : شیئی که باید متن راهنما را برای آن چاپ کرد

برمی گرداند
String یک رشته حاوی متن راهنمای کاربر پسند برای همه فیلدهای گزینه

تجزیه

public  parse (String... args)

آرگومان های خط فرمان "args" را تجزیه می کند و فیلدهای @Option را در "optionSource" ارائه شده به سازنده تنظیم می کند.

پارامترها
args String

برمی گرداند
یک ERROR(/List) از آرگومان های موقعیتی که پس از پردازش همه گزینه ها باقی مانده است.

پرتاب می کند
ConfigurationException اگر در تجزیه آرگومان ها خطایی رخ داد.

تجزیه

public  parse ( args)

متد parse(String) جایگزین که یک ERROR(/List) از آرگومان ها را می گیرد

پارامترها
args

برمی گرداند
یک ERROR(/List) از آرگومان های موقعیتی که پس از پردازش همه گزینه ها باقی مانده است.

پرتاب می کند
ConfigurationException اگر در تجزیه آرگومان ها خطایی رخ داد.

parseBestEffort

public  parseBestEffort ( args)

متد جایگزین parseBestEffort(String) که یک ERROR(/List) از آرگومان ها را می گیرد.

پارامترها
args

برمی گرداند
یک ERROR(/List) از آرگومان های سمت چپ

parseBestEffort

public  parseBestEffort ( args, 
                boolean forceContinue)

متد جایگزین parseBestEffort(String) که یک ERROR(/List) از آرگومان ها را می گیرد و می توان آن را مجبور کرد تا تجزیه را تا انتها ادامه دهد، حتی اگر برخی از آرگ ها تجزیه نشوند.

پارامترها
args : لیستی که حاوی آرگ های سمت چپ است.

forceContinue boolean : درست است اگر باید به تجزیه ادامه دهد حتی اگر برخی از آرگ ها تجزیه نشوند.

برمی گرداند
یک ERROR(/List) از آرگومان های سمت چپ

parseBestEffort

public  parseBestEffort (String... args)

بهترین نسخه از parse(String) . اگر یک ConfigurationException پرتاب شود، آن استثنا به صورت داخلی گرفته می‌شود و آرگومان‌های باقی‌مانده (از جمله آرگومانی که باعث پرتاب استثنا شده است) برگردانده می‌شوند. این روش پرتاب نمی کند.

پارامترها
args String

برمی گرداند
یک ERROR(/List) از آرگومان های سمت چپ

validateMandatoryOptions

public void validateMandatoryOptions ()

تأیید می کند که تمام فیلدهای علامت گذاری شده به عنوان اجباری تنظیم شده اند.

پرتاب می کند
com.android.tradefed.config.ConfigurationException
ConfigurationException