محلّل 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 true" أو "--flag false" (نظرًا لأن "--flag" في حد ذاتها كافية، بعد "true" أو "خطأ" يتم تفسيره بشكل منفصل). يمكنك استخدام "نعم" و"لا" كمرادفات لكلمة "true" و"خطأ".

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

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

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

 // 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 لمجموعة من العناصر.

ArgsOptionParser(Object... optionSources)

تنشئ السمة ArgsOptionParser لعنصر واحد أو أكثر.

الطرق العامة

getInopOptions()

تعرض مجموعة الخيارات التي لم تغيّر أي قيم تلقائية.

static String getOptionHelp(boolean importantOnly, Object optionObject)

نص مساعدة إخراج جميع حقول Option في optionObject.

parse(String... args)

تحليل وسيطات سطر الأوامر "args"، مع ضبط حقول @Option من "optionSource" المقدمة إلى الدالة الإنشائية.

parse( args)

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

parseBestEffort( args)

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

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 ()

تعرض مجموعة الخيارات التي لم تغيّر أي قيم تلقائية.

المرتجعات

الحصول على مساعدة

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 إذا حدث خطأ أثناء تحليل الوسيطات.

تحليل BestEffort

public  parseBestEffort ( args)

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

المعلمات
args

المرتجعات
ERROR(/List) للوسيطات اليسرى فوق الوسيطات

تحليل BestEffort

public  parseBestEffort ( args, 
                boolean forceContinue)

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

المعلمات
args : قائمة تتضمّن ما تبقى من الوسيطات.

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

المرتجعات
ERROR(/List) للوسيطات اليسرى فوق الوسيطات

تحليل BestEffort

public  parseBestEffort (String... args)

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

المعلمات
args String

المرتجعات
ERROR(/List) للوسيطات اليسرى فوق الوسيطات

خيارات التحقّق من صحة مادّة عرض الخيارات

public void validateMandatoryOptions ()

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

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