Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.

ArgsOptionParser

public class ArgsOptionParser
extends OptionSetter

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


Điền các trường Option từ các đối số dòng lệnh đã phân tích cú pháp.

Các chuỗi trong Chuỗi được truyền vào [] được phân tích cú pháp từ trái sang phải. Mỗi Chuỗi được phân loại là một tùy chọn ngắn (chẳng hạn như "-v"), một tùy chọn dài (chẳng hạn như "--verbose"), một đối số cho một tùy chọn (chẳng hạn như "out.txt" trong "-f out.txt "), hoặc một đối số vị trí không phải tùy chọn.

Mỗi đối số tùy chọn phải ánh xạ tới một hoặc nhiều trường Option . Một tùy chọn dài ánh xạ tới tên Option và một tùy chọn ngắn ánh xạ tới tên ngắn Option . Mỗi tên tùy chọn và tên viết tắt của tùy chọn phải là duy nhất đối với tất cả các trường Option khác trong cùng một đối tượng.

Một đối số tùy chọn duy nhất có thể được ánh xạ tới nhiều trường Option có cùng tên trên nhiều đối tượng. Các đối số Option có thể được đặt trong khoảng cách tên để tham chiếu duy nhất đến một trường Option trong một đối tượng duy nhất bằng cách sử dụng tên lớp đầy đủ của đối tượng đó hoặc giá trị bí danh OptionClass của nó được phân tách bằng ':'. tức là

 --classname:optionname optionvalue or
 --optionclassalias:optionname optionvalue.
 

Một tùy chọn ngắn đơn giản là dấu "-" theo sau là một ký tự tùy chọn ngắn. Nếu tùy chọn yêu cầu một đối số (đúng với bất kỳ tùy chọn không phải boolean nào), nó có thể được viết dưới dạng một tham số riêng biệt, nhưng không nhất thiết phải như vậy. Nghĩa là, "-f out.txt" và "-fout.txt" đều có thể chấp nhận được.

Có thể chỉ định nhiều tùy chọn ngắn sau một dấu "-" miễn là tất cả (ngoại trừ có thể là cuối cùng) không yêu cầu đối số.

Một tùy chọn dài bắt đầu bằng "-" theo sau là một số ký tự. Nếu tùy chọn yêu cầu một đối số, nó có thể được viết ngay sau tên tùy chọn, được phân tách bằng "=" hoặc là đối số tiếp theo. (Đó là, "--file = out.txt" hoặc "--file out.txt".)

Tùy chọn dài boolean '--name' sẽ tự động nhận được một đồng hành '--no-name'. Với một tùy chọn "--flag", thì "--flag", "--no-flag", "--flag = true" và "--flag = false" đều hợp lệ, mặc dù cả "--flag" true "cũng không phải" --flag false "được phép (vì" --flag "tự nó là đủ, nên" true "hoặc" false "sau đây được diễn giải riêng). Bạn có thể sử dụng "yes" và "no" làm từ đồng nghĩa với "true" và "false".

Mỗi Chuỗi không bắt đầu bằng "-" và không phải là đối số bắt buộc của tùy chọn trước đó là đối số vị trí không phải tùy chọn, cũng như tất cả các Chuỗi kế tiếp. Mỗi Chuỗi sau dấu "-" là một đối số vị trí không phải tùy chọn.

Các trường tương ứng với các tùy chọn được cập nhật khi các tùy chọn của chúng được xử lý. Mọi đối số vị trí còn lại được trả về dưới dạng Danh sách <Chuỗi>.

Đây là một ví dụ đơn giản:

 // 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) {
        ...
     }
     ...

 }

 
Xem thêm:
  • trang người đàn ông getopt (1)
  • Mô-đun "optparse" của Python (http://docs.python.org/library/optparse.html)
  • POSIX "Nguyên tắc Cú pháp Tiện ích" (http://www.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap12.html#tag_12_02)
  • GNU "Tiêu chuẩn cho giao diện dòng lệnh" (http://www.gnu.org/prep/standards/standards.html#Command_002dLine-Interfaces)

Xem thêm:

Bản tóm tắt

Các nhà xây dựng công cộng

ArgsOptionParser ( optionSources) ArgsOptionParser ( optionSources)

Tạo ArgsOptionParser cho một tập hợp các đối tượng.

ArgsOptionParser (Object... optionSources)

Tạo ArgsOptionParser cho một hoặc nhiều đối tượng.

Phương pháp công khai

getInopOptions ()

Trả về tập hợp các tùy chọn không thay đổi bất kỳ giá trị mặc định nào.

static String getOptionHelp (boolean importantOnly, Object optionObject)

Xuất văn bản trợ giúp cho tất cả các trường Option trong optionObject .

parse (String... args)

Phân tích cú pháp các đối số dòng lệnh 'args', thiết lập các trường @Option của 'optionSource' được cung cấp cho hàm tạo.

parse ( args) parse ( args)

Phương thức parse(String)ERROR(/List) đối số

parseBestEffort ( args) parseBestEffort ( args)

Phương parseBestEffort(String) thay thế nhận ERROR(/List) đối số

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

Phương parseBestEffort(String) thay thế nhận ERROR(/List) đối số và có thể bị buộc phải tiếp tục phân tích cú pháp cho đến khi kết thúc, ngay cả khi một số args không phân tích cú pháp.

parseBestEffort (String... args)

Phiên bản parse(String) nỗ lực cao nhất.

void validateMandatoryOptions ()

Xác thực rằng tất cả các trường được đánh dấu là bắt buộc đã được đặt.

Các nhà xây dựng công cộng

ArgsOptionParser

public ArgsOptionParser ( optionSources)

Tạo ArgsOptionParser cho một tập hợp các đối tượng.

Thông số
optionSources : các đối tượng cấu hình.

Ném
ConfigurationException nếu các đối tượng cấu hình được cấu hình không đúng.

ArgsOptionParser

public ArgsOptionParser (Object... optionSources)

Tạo ArgsOptionParser cho một hoặc nhiều đối tượng.

Thông số
optionSources Object : các đối tượng cấu hình.

Ném
ConfigurationException nếu các đối tượng cấu hình được cấu hình không đúng.

Phương pháp công khai

getInopOptions

public  getInopOptions ()

Trả về tập hợp các tùy chọn không thay đổi bất kỳ giá trị mặc định nào.

Lợi nhuận

getOptionHelp

public static String getOptionHelp (boolean importantOnly, 
                Object optionObject)

Xuất văn bản trợ giúp cho tất cả các trường Option trong optionObject .

Văn bản trợ giúp cho mỗi tùy chọn sẽ ở định dạng sau

   [-option_shortname, --option_name]          [option_description] Default:
   [current option field's value in optionObject]
 
Văn bản 'Mặc định ... "sẽ bị bỏ qua nếu trường tùy chọn là trống hoặc trống.

Thông số
importantOnly boolean : nếu true , chỉ in trợ giúp cho các tùy chọn quan trọng

optionObject Object : đối tượng để in văn bản trợ giúp

Lợi nhuận
String một Chuỗi chứa văn bản trợ giúp thân thiện với người dùng cho tất cả các trường Tùy chọn

phân tích cú pháp

public  parse (String... args)

Phân tích cú pháp các đối số dòng lệnh 'args', thiết lập các trường @Option của 'optionSource' được cung cấp cho hàm tạo.

Thông số
args String

Lợi nhuận
một ERROR(/List) của các đối số vị trí còn lại sau khi xử lý tất cả các tùy chọn.

Ném
ConfigurationException nếu xảy ra lỗi khi phân tích cú pháp các đối số.

phân tích cú pháp

public  parse ( args)

Phương thức parse(String)ERROR(/List) đối số

Thông số
args

Lợi nhuận
một ERROR(/List) của các đối số vị trí còn lại sau khi xử lý tất cả các tùy chọn.

Ném
ConfigurationException nếu xảy ra lỗi khi phân tích cú pháp các đối số.

parseBestEffort

public  parseBestEffort ( args)

Phương parseBestEffort(String) thay thế nhận ERROR(/List) đối số

Thông số
args

Lợi nhuận
một ERROR(/List) của các đối số còn lại

parseBestEffort

public  parseBestEffort ( args, 
                boolean forceContinue)

Phương parseBestEffort(String) thay thế nhận ERROR(/List) đối số và có thể bị buộc phải tiếp tục phân tích cú pháp cho đến khi kết thúc, ngay cả khi một số args không phân tích cú pháp.

Thông số
args : danh sách sẽ chứa các args còn lại.

forceContinue boolean : Đúng nếu nó sẽ tiếp tục phân tích cú pháp ngay cả khi một số args không phân tích cú pháp.

Lợi nhuận
một ERROR(/List) của các đối số còn lại

parseBestEffort

public  parseBestEffort (String... args)

Phiên bản parse(String) nỗ lực cao nhất. Nếu một ConfigurationException được ném, ngoại lệ đó sẽ được ghi lại bên trong và các đối số còn lại (bao gồm cả đối số khiến ngoại lệ được ném) được trả về. Phương pháp này không ném.

Thông số
args String

Lợi nhuận
một ERROR(/List) của các đối số còn lại

validateMandatoryOptions

public void validateMandatoryOptions ()

Xác thực rằng tất cả các trường được đánh dấu là bắt buộc đã được đặt.

Ném
ConfigurationException