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.
 

الخيار القصير البسيط هو "-" متبوعًا بحرف خيار قصير. إذا كان الخيار يتطلب وسيطة (وهو ما ينطبق على أي خيار غير منطقي)، فقد يتم كتابته كمعلمة منفصلة، ​​ولكن ليس من الضروري أن يكون كذلك. وهذا يعني أن "-fout.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" في حد ذاته يكفي، يتم تفسير "صحيح" أو "خطأ" التالي بشكل منفصل). يمكنك استخدام "نعم" و"لا" كمرادفات لـ "صحيح" و"خطأ".

كل سلسلة لا تبدأ بـ "-" وليست وسيطة مطلوبة لخيار سابق هي وسيطة موضعية غير خيارية، كما هو الحال مع جميع السلاسل المتعاقبة. كل سلسلة بعد "--" هي وسيطة موضعية غير اختيارية.

يتم تحديث الحقول المقابلة للخيارات أثناء معالجة خياراتها. يتم إرجاع أي وسيطات موضعية متبقية كقائمة <سلسلة>.

إليك مثال بسيط:

 // 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)
  • "معايير واجهات سطر الأوامر" GNU (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 إذا حدث خطأ في تحليل الوسائط.

com.parseBestEffort

public  parseBestEffort ( args)

طريقة parseBestEffort(String) البديلة التي تأخذ ERROR(/List) من الوسائط

حدود
args

عائدات
ERROR(/List) من الوسائط المتبقية

com.parseBestEffort

public  parseBestEffort ( args, 
                boolean forceContinue)

طريقة parseBestEffort(String) البديلة التي تأخذ ERROR(/List) من الوسائط، ويمكن إجبارها على مواصلة التحليل حتى النهاية، حتى لو لم يتم تحليل بعض الوسيطات.

حدود
args : القائمة التي ستحتوي على الوسائط المتبقية.

forceContinue boolean : صحيح إذا كان يجب الاستمرار في التحليل حتى لو لم يتم تحليل بعض الوسيطات.

عائدات
ERROR(/List) من الوسائط المتبقية

com.parseBestEffort

public  parseBestEffort (String... args)

أفضل نسخة من parse(String) . إذا تم طرح ConfigurationException، فسيتم التقاط هذا الاستثناء داخليًا، ويتم إرجاع الوسيطات المتبقية (بما في ذلك الوسيطة التي تسببت في طرح الاستثناء). هذه الطريقة لا رمي.

حدود
args String

عائدات
ERROR(/List) من الوسائط المتبقية

validateMandatoryOptions

public void validateMandatoryOptions ()

التحقق من أنه تم تعيين جميع الحقول التي تم وضع علامة عليها على أنها إلزامية.

رميات
com.android.tradefed.config.ConfigurationException
ConfigurationException