تجزیه‌گر گزینه آرگ‌ها

public class ArgsOptionParser
extends OptionSetter

شیء جاوا
com.android.tradefed.config.OptionSetter
com.android.tradefed.config.ArgsOptionParser


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

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

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

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

 --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 true" و نه "--flag false" مجاز نیستند (از آنجایی که "--flag" به خودی خود کافی است، "true" یا "false" زیر به طور جداگانه تفسیر می‌شود). می‌توانید از "yes" و "no" به عنوان مترادف "true" و "false" استفاده کنید.

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

فیلدهای مربوط به گزینه‌ها همزمان با پردازش گزینه‌هایشان به‌روزرسانی می‌شوند. آرگومان‌های موقعیتی باقی‌مانده به صورت یک 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) {
        ...
     }
     ...

 }

 
همچنین ببینید:
  • صفحه راهنمای 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 (Object... optionSources)

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

ArgsOptionParser (Collection<Object> optionSources)

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

روش‌های عمومی

Set<String> getInopOptions ()

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

static String getOptionHelp (boolean importantOnly, Object optionObject)

متن راهنما را برای همه فیلدهای Option در خروجی نمایش می‌دهد. شیء گزینه .

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

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

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

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

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

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

List<String> parseBestEffort (List<String> args, boolean forceContinue)

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

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

یک نسخه با بهترین تلاش از ERROR(/#parse(String. args)) ‎.

void validateMandatoryOptions ()

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

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

تجزیه‌گر گزینه آرگ‌ها

public ArgsOptionParser (Object... optionSources)

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

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

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

تجزیه‌گر گزینه آرگ‌ها

public ArgsOptionParser (Collection<Object> optionSources)

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

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

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

روش‌های عمومی

گزینه‌های دریافت‌شده

public Set<String> getInopOptions ()

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

بازگشت‌ها
Set<String>

دریافت گزینه راهنما

public static String getOptionHelp (boolean importantOnly, 
                Object optionObject)

متن راهنما را برای همه فیلدهای Option در خروجی نمایش می‌دهد. شیء گزینه .

متن راهنما برای هر گزینه به شکل زیر خواهد بود.

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

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

optionObject Object : شیء که متن راهنما برای آن چاپ می‌شود.

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

تجزیه کردن

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

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

پارامترها
args List

بازگشت‌ها
List<String> List از آرگومان‌های موقعیتی که پس از پردازش همه گزینه‌ها باقی می‌مانند.

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

تجزیه کردن

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

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

پارامترها
args String

بازگشت‌ها
List<String> List از آرگومان‌های موقعیتی که پس از پردازش همه گزینه‌ها باقی می‌مانند.

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

تجزیه بهترین تلاش

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

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

پارامترها
args List

بازگشت‌ها
List<String> List از آرگومان‌های باقی‌مانده

تجزیه بهترین تلاش

public List<String> parseBestEffort (List<String> args, 
                boolean forceContinue)

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

پارامترها
args List : لیستی که شامل آرگومان‌های باقی‌مانده خواهد بود.

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

بازگشت‌ها
List<String> List از آرگومان‌های باقی‌مانده

تجزیه بهترین تلاش

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

یک نسخه با بهترین تلاش از ERROR(/#parse(String. args)) . اگر یک ConfigurationException رخ دهد، آن استثنا به صورت داخلی ضبط می‌شود و آرگومان‌های باقی‌مانده (از جمله آرگومانی که باعث بروز استثنا شده است) بازگردانده می‌شوند. این متد اجرا نمی‌شود.

پارامترها
args String

بازگشت‌ها
List<String> List از آرگومان‌های باقی‌مانده

اعتبارسنجیگزینه‌های اجباری

public void validateMandatoryOptions ()

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

پرتاب‌ها
com.android.tradefed.config.ConfigurationException
ConfigurationException