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