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 עבור אוסף של חפצים.

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)

Alternate parseBestEffort(String) שיטה שלוקחת ERROR(/List) של טיעונים

parseBestEffort ( args, boolean forceContinue) parseBestEffort ( args, boolean forceContinue)

Alternate 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 : את config אובייקטים.

זורק
ConfigurationException אם אובייקטים של תצורה מוגדרים בצורה לא נכונה.

שיטות ציבוריות

getInopOptions

public  getInopOptions ()

מחזירה את קבוצת האפשרויות שלא שינו ערכי ברירת מחדל.

החזרות

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 מחרוזת המכילה טקסט עזרה ידידותי למשתמש עבור כל שדות האפשרויות

לְנַתֵחַ

public  parse (String... args)

מנתח את הארגומנטים 'args' של שורת הפקודה, ומגדיר את שדות @Option של 'optionSource' המסופק לבנאי.

פרמטרים
args String

החזרות
ERROR(/List) של טיעונים מיקומית שנשאר לאחר עיבוד כל האפשרויות.

זורק
ConfigurationException אם אירעה שגיאה בניתוח הארגומנטים.

לְנַתֵחַ

public  parse ( args)

חלופי parse(String) שיטה שלוקחת ERROR(/List) של טיעונים

פרמטרים
args

החזרות
ERROR(/List) של טיעונים מיקומית שנשאר לאחר עיבוד כל האפשרויות.

זורק
ConfigurationException אם אירעה שגיאה בניתוח הארגומנטים.

parseBestEffort

public  parseBestEffort ( args)

Alternate parseBestEffort(String) שיטה שלוקחת ERROR(/List) של טיעונים

פרמטרים
args

החזרות
ERROR(/List) של טיעונים שנשארו

parseBestEffort

public  parseBestEffort ( args, 
                boolean forceContinue)

Alternate parseBestEffort(String) שיטה שלוקחת ERROR(/List) של טיעונים, וניתן נאלץ להמשיך בניתוח עד התום, גם אם כמה ארגומנטים לא לנתח.

פרמטרים
args : רשימה שתכיל את הארגומנים שנותרו.

forceContinue boolean : True אם צריך להמשיך לנתח גם אם כמה ארגומנטים לא לנתח.

החזרות
ERROR(/List) של טיעונים שנשארו

parseBestEffort

public  parseBestEffort (String... args)

גרסה מאמץ מיטבי של parse(String) . אם נזרקת ConfigurationException, חריג זה נלכד פנימית, והארגומנטים הנותרים (כולל הארגומנט שגרם לזריקת החריג) מוחזרים. שיטה זו אינה זורקת.

פרמטרים
args String

החזרות
ERROR(/List) של טיעונים שנשארו

validateMandatoryOptions

public void validateMandatoryOptions ()

מאמת כי כל השדות המסומנים כחובה הוגדרו.

זורק
ConfigurationException