ArgsOptionParser

public class ArgsOptionParser
extends OptionSetter

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


يملأ حقول Option من وسيطات سطر الأوامر الموزعة.

يتم تحليل السلاسل الموجودة في السلسلة التي تم تمريرها من اليسار إلى اليمين. يتم تصنيف كل سلسلة على أنها خيار قصير (مثل "-v") ، وخيار طويل (مثل "- overbose") ، وسيطة لخيار (مثل "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" أو "false" التاليين بشكل منفصل). يمكنك استخدام "نعم" و "لا" كمرادفين لكل من "صواب" و "خطأ".

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

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

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

 // 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" في Python (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) من الوسيطات ، ويمكن إجبارها على الاستمرار في التحليل حتى النهاية ، حتى لو لم يتم تحليل بعض args.

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

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

عائدات

getOption مساعدة

public static String getOptionHelp (boolean importantOnly, 
                Object optionObject)

إخراج نص تعليمات لجميع حقول Option بتنسيق optionObject .

سيكون نص التعليمات لكل خيار بالتنسيق التالي

   [-option_shortname, --option_name]          [option_description] Default:
   [current option field's value in optionObject]
 
سيتم حذف نص "Default ..." إذا كان حقل الخيار فارغًا أو فارغًا.

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

تحليل أفضل جهد

public  parseBestEffort ( args)

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

المعلمات
args

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

تحليل أفضل جهد

public  parseBestEffort ( args, 
                boolean forceContinue)

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

المعلمات
args : القائمة التي ستحتوي على اليسار فوق args.

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

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

تحليل أفضل جهد

public  parseBestEffort (String... args)

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

المعلمات
args String

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

ValidateMandatoryOptions

public void validateMandatoryOptions ()

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

رميات
ConfigurationException