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" (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 (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 () التحقق من أن جميع الحقول التي تم وضع علامة عليها على أنها إلزامية قد تم تعيينها. |
المنشأت العامة
ArgsOptionParser
public ArgsOptionParser (optionSources)
يقوم بإنشاء ArgsOptionParser
لمجموعة من الكائنات.
حدود | |
---|---|
optionSources |
رميات | |
---|---|
ConfigurationException | إذا تم تكوين كائنات التكوين بشكل غير صحيح. |
ArgsOptionParser
public ArgsOptionParser (Object... optionSources)
يقوم بإنشاء ArgsOptionParser
لكائن واحد أو أكثر.
حدود | |
---|---|
optionSources | Object : كائنات التكوين. |
رميات | |
---|---|
ConfigurationException | إذا تم تكوين كائنات التكوين بشكل غير صحيح. |
الأساليب العامة
getInopOptions
publicgetInopOptions ()
تُرجع مجموعة الخيارات التي لم تغير أي قيم افتراضية.
عائدات | |
---|---|
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 | سلسلة تحتوي على نص تعليمات سهل الاستخدام لجميع حقول الخيار |
تحليل
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 |
عائدات | |
---|---|
a ERROR(/List) من اليسار عبر الوسائط |
تحليل أفضل جهد
publicparseBestEffort ( args, boolean forceContinue)
البديل parseBestEffort(String)
طريقة تأخذ ERROR(/List)
من الوسيطات ، ويمكن إجبارها على الاستمرار في التحليل حتى النهاية ، حتى لو لم يتم تحليل بعض args.
حدود | |
---|---|
args | |
forceContinue | boolean : صحيح إذا كان يجب أن يستمر في التحليل حتى لو لم يتم تحليل بعض args. |
عائدات | |
---|---|
a ERROR(/List) من اليسار عبر الوسائط |
تحليل أفضل جهد
publicparseBestEffort (String... args)
نسخة من parse(String)
. إذا تم طرح ConfigurationException ، يتم التقاط هذا الاستثناء داخليًا ، ويتم إرجاع الوسائط المتبقية (بما في ذلك الوسيطة التي تسببت في طرح الاستثناء). هذه الطريقة لا ترمي.
حدود | |
---|---|
args | String |
عائدات | |
---|---|
a ERROR(/List) من اليسار عبر الوسائط |
ValidateMandatoryOptions
public void validateMandatoryOptions ()
التحقق من أن جميع الحقول التي تم وضع علامة عليها على أنها إلزامية قد تم تعيينها.
رميات | |
---|---|
| com.android.tradefed.config.ConfigurationException |
ConfigurationException |