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
טיעונים ניתן namespaced להתייחס באופן ייחודי בפני Option
שדה בתוך אובייקט אחד באמצעות אותו שם בכיתה המלאה של חפץ או שלה OptionClass
ערך הכינוי מופרד ":". כלומר
--classname:optionname optionvalue or --optionclassalias:optionname optionvalue.
אפשרות קצרה פשוטה היא "-" ואחריה תו אופציה קצר. אם האפשרות דורשת ארגומנט (שזה נכון לגבי כל אפשרות לא-בוליאנית), ייתכן שהיא תיכתב כפרמטר נפרד, אך לא חייבת להיות כזו. כלומר, "-f out.txt" ו- "-out.txt" שניהם מקובלים.
אפשר לציין מספר אפשרויות קצרות לאחר "-" יחיד כל עוד כל (למעט אולי האחרונה) אינן דורשות ארגומנטים.
אפשרות ארוכה מתחילה ב--ואחריה מספר תווים. אם האפשרות דורשת ארגומנט, ניתן לכתוב אותה ישירות אחרי שם האפשרות, להפריד ב- "=", או כארגומנט הבא. (כלומר, "-קובץ = out.txt" או "-קובץ out.txt".)
אפשרות ארוכה בוליאנית '-שם' מקבלת באופן אוטומטי בן לוויה 'ללא שם'. בהתחשב באפשרות "--flag", אם כך, "--flag", "--no-flag", "--flag = true" ו- "--flag = false" הם כולם תקפים, אם כי אף אחד מהם---flag מותר "לא"-"Falsk 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) Alternate | |
parseBestEffort ( args, boolean forceContinue) parseBestEffort ( args, boolean forceContinue) Alternate | |
parseBestEffort (String... args) גרסה מאמץ מיטבי של | |
void | validateMandatoryOptions () מאמת כי כל השדות המסומנים כחובה הוגדרו. |
בוני ציבור
ArgsOptionParser
public ArgsOptionParser (optionSources)
יוצר ArgsOptionParser
עבור אוסף של חפצים.
פרמטרים | |
---|---|
optionSources |
זורק | |
---|---|
ConfigurationException | אם אובייקטים של תצורה מוגדרים בצורה לא נכונה. |
ArgsOptionParser
public ArgsOptionParser (Object... optionSources)
יוצר ArgsOptionParser
עבור אובייקטים אחד או יותר.
פרמטרים | |
---|---|
optionSources | Object : את config אובייקטים. |
זורק | |
---|---|
ConfigurationException | אם אובייקטים של תצורה מוגדרים בצורה לא נכונה. |
שיטות ציבוריות
getInopOptions
publicgetInopOptions ()
מחזירה את קבוצת האפשרויות שלא שינו ערכי ברירת מחדל.
החזרות | |
---|---|
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]"לברירת המחדל ..." טקסט יושמט אם שדה האפשרויות הוא Null או ריק.
פרמטרים | |
---|---|
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 | אם אירעה שגיאה בניתוח הארגומנטים. |
parseBestEffort
publicparseBestEffort ( args)
Alternate parseBestEffort(String)
שיטה שלוקחת ERROR(/List)
של טיעונים
פרמטרים | |
---|---|
args |
החזרות | |
---|---|
ERROR(/List) של טיעונים שנשארו |
parseBestEffort
publicparseBestEffort ( args, boolean forceContinue)
Alternate parseBestEffort(String)
שיטה שלוקחת ERROR(/List)
של טיעונים, וניתן נאלץ להמשיך בניתוח עד התום, גם אם כמה ארגומנטים לא לנתח.
פרמטרים | |
---|---|
args | |
forceContinue | boolean : True אם צריך להמשיך לנתח גם אם כמה ארגומנטים לא לנתח. |
החזרות | |
---|---|
ERROR(/List) של טיעונים שנשארו |
parseBestEffort
publicparseBestEffort (String... args)
גרסה מאמץ מיטבי של parse(String)
. אם נזרקת ConfigurationException, חריג זה נלכד פנימית, והארגומנטים הנותרים (כולל הארגומנט שגרם לזריקת החריג) מוחזרים. שיטה זו אינה זורקת.
פרמטרים | |
---|---|
args | String |
החזרות | |
---|---|
ERROR(/List) של טיעונים שנשארו |
validateMandatoryOptions
public void validateMandatoryOptions ()
מאמת כי כל השדות המסומנים כחובה הוגדרו.
זורק | |
---|---|
ConfigurationException |