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 (Object... optionSources) یک |
getInopOptions () مجموعه ای از گزینه ها را برمی گرداند که هیچ مقدار پیش فرضی را تغییر نداده اند. | |
static String | getOptionHelp (boolean importantOnly, Object optionObject) خروجی متن راهنما برای همه فیلدهای |
parse (String... args) آرگومان های خط فرمان "args" را تجزیه می کند و فیلدهای @Option را در "optionSource" ارائه شده به سازنده تنظیم می کند. | |
parse ( args) parse ( args) متد | |
parseBestEffort ( args) parseBestEffort ( args) متد جایگزین | |
parseBestEffort ( args, boolean forceContinue) parseBestEffort ( args, boolean forceContinue) متد جایگزین | |
parseBestEffort (String... args) بهترین نسخه از | |
void | validateMandatoryOptions () تأیید می کند که تمام فیلدهای علامت گذاری شده به عنوان اجباری تنظیم شده اند. |
public ArgsOptionParser (optionSources)
یک ArgsOptionParser
برای مجموعه ای از اشیاء ایجاد می کند.
مولفه های | |
---|---|
optionSources |
پرتاب می کند | |
---|---|
ConfigurationException | اگر اشیاء پیکربندی به درستی پیکربندی نشده باشد. |
public ArgsOptionParser (Object... optionSources)
یک ArgsOptionParser
برای یک یا چند شی ایجاد می کند.
مولفه های | |
---|---|
optionSources | Object : اشیاء پیکربندی. |
پرتاب می کند | |
---|---|
ConfigurationException | اگر اشیاء پیکربندی به درستی پیکربندی نشده باشد. |
publicgetInopOptions ()
مجموعه ای از گزینه ها را برمی گرداند که هیچ مقدار پیش فرضی را تغییر نداده اند.
برمی گرداند | |
---|---|
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 | یک رشته حاوی متن راهنمای کاربر پسند برای همه فیلدهای گزینه |
publicparse (String... args)
آرگومان های خط فرمان "args" را تجزیه می کند و فیلدهای @Option را در "optionSource" ارائه شده به سازنده تنظیم می کند.
مولفه های | |
---|---|
args | String |
برمی گرداند | |
---|---|
یک ERROR(/List) از آرگومان های موقعیتی که پس از پردازش همه گزینه ها باقی مانده است. |
پرتاب می کند | |
---|---|
ConfigurationException | اگر در تجزیه آرگومان ها خطایی رخ داد. |
publicparse ( args)
متد parse(String)
جایگزین که یک ERROR(/List)
از آرگومان ها را می گیرد
مولفه های | |
---|---|
args |
برمی گرداند | |
---|---|
یک ERROR(/List) از آرگومان های موقعیتی که پس از پردازش همه گزینه ها باقی مانده است. |
پرتاب می کند | |
---|---|
ConfigurationException | اگر در تجزیه آرگومان ها خطایی رخ داد. |
publicparseBestEffort ( args)
متد جایگزین parseBestEffort(String)
که یک ERROR(/List)
از آرگومان ها را می گیرد.
مولفه های | |
---|---|
args |
برمی گرداند | |
---|---|
یک ERROR(/List) از آرگومان های سمت چپ |
publicparseBestEffort ( args, boolean forceContinue)
متد جایگزین parseBestEffort(String)
که یک ERROR(/List)
از آرگومان ها را می گیرد و می توان آن را مجبور کرد تا تجزیه را تا انتها ادامه دهد، حتی اگر برخی از آرگ ها تجزیه نشوند.
مولفه های | |
---|---|
args | |
forceContinue | boolean : درست است اگر باید به تجزیه ادامه دهد حتی اگر برخی از آرگ ها تجزیه نشوند. |
برمی گرداند | |
---|---|
یک ERROR(/List) از آرگومان های سمت چپ |
publicparseBestEffort (String... args)
بهترین نسخه از parse(String)
. اگر یک ConfigurationException پرتاب شود، آن استثنا به صورت داخلی گرفته میشود و آرگومانهای باقیمانده (از جمله آرگومانی که باعث پرتاب استثنا شده است) برگردانده میشوند. این روش پرتاب نمی کند.
مولفه های | |
---|---|
args | String |
برمی گرداند | |
---|---|
یک ERROR(/List) از آرگومان های سمت چپ |
public void validateMandatoryOptions ()
تأیید می کند که تمام فیلدهای علامت گذاری شده به عنوان اجباری تنظیم شده اند.
پرتاب می کند | |
---|---|
| com.android.tradefed.config.ConfigurationException |
ConfigurationException |