Google은 흑인 공동체를 위한 인종 간 평등을 진전시키기 위해 노력하고 있습니다. Google에서 어떤 노력을 하고 있는지 확인하세요.

ArgsOptionParser

public class ArgsOptionParser
extends OptionSetter

java.lang.객체
com.android.tradefed.config.OptionSetter
com.android.tradefed.config.ArgsOptionParser


채 웁니다의 Option 구문 분석 된 명령 행 인수의 필드.

전달된 String[]의 문자열은 왼쪽에서 오른쪽으로 구문 분석됩니다. 각 문자열은 짧은 옵션(예: "-v"), 긴 옵션(예: "--verbose"), 옵션에 대한 인수(예: "-f out.txt의 "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"는 별도로 해석됩니다). "예"와 "아니요"를 "true"와 "false"의 동의어로 사용할 수 있습니다.

"-"로 시작하지 않고 이전 옵션의 필수 인수가 아닌 각 문자열은 모든 연속 문자열과 마찬가지로 옵션이 아닌 위치 인수입니다. "--" 뒤의 각 문자열은 옵션이 아닌 위치 인수입니다.

옵션에 해당하는 필드는 옵션이 처리될 때 업데이트됩니다. 나머지 위치 인수는 List<String>으로 반환됩니다.

다음은 간단한 예입니다.

 // 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 의 필드 옵션객체 .

parse (String... args)

명령줄 인수 'args'를 구문 분석하여 생성자에 제공된 'optionSource'의 @Option 필드를 설정합니다.

parse ( args) parse ( args)

대체 parse(String) 걸리는 방법 ERROR(/List) 인수를

parseBestEffort ( args) parseBestEffort ( args)

대체 parseBestEffort(String) 걸리는 방법 ERROR(/List) 인수를

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

대체 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 다음 설정은 객체.

던지다
ConfigurationException 구성 개체가 부적절하게 구성된 경우.

공개 메서드

getInopOptions

public  getInopOptions ()

기본값을 변경하지 않은 옵션 집합을 반환합니다.

보고

getOption도움말

public static String getOptionHelp (boolean importantOnly, 
                Object optionObject)

모든 출력 도움말 텍스트 Option 의 필드 옵션객체 .

각 옵션에 대한 도움말 텍스트는 다음과 같은 형식에있을 것입니다

   [-option_shortname, --option_name]          [option_description] Default:
   [current option field's value in optionObject]
 
옵션 필드가 null 또는 빈 상태 (empty)의 경우, '기본 ... "텍스트는 생략한다.

매개변수
importantOnly boolean 다음과 같은 경우 true 에만 중요한 옵션에 대한 도움말을 인쇄

optionObject Object : 인쇄 도움말 텍스트에 개체에 대한

보고
String 모든 옵션 필드에 대한 사용자 친화적인 도움말 텍스트를 포함하는 문자열

구문 분석

public  parse (String... args)

명령줄 인수 'args'를 구문 분석하여 생성자에 제공된 'optionSource'의 @Option 필드를 설정합니다.

매개변수
args String

보고
ERROR(/List) 위치 인수는 모든 옵션을 처리 한 후 남아.

던지다
ConfigurationException 인수 구문 분석 오류가 발생한 경우.

구문 분석

public  parse ( args)

대체 parse(String) 걸리는 방법 ERROR(/List) 인수를

매개변수
args

보고
ERROR(/List) 위치 인수는 모든 옵션을 처리 한 후 남아.

던지다
ConfigurationException 인수를 구문 분석하는 동안 오류가 발생한 경우.

parseBestEffort

public  parseBestEffort ( args)

대체 parseBestEffort(String) 걸리는 방법 ERROR(/List) 인수를

매개변수
args

보고
ERROR(/List) 오버 왼쪽 인수

parseBestEffort

public  parseBestEffort ( args, 
                boolean forceContinue)

대체 parseBestEffort(String) 걸리는 방법 ERROR(/List) 인수를, 일부 인수는 구문 분석하지 않더라도,이 끝날 때까지 구문 분석을 계속하도록 강요 할 수 있습니다.

매개변수
args : 남은 인수를 포함할 목록입니다.

forceContinue boolean : 그것은 일부 인수는 구문 분석하지 않는 경우에도 구문 분석을 계속해야하는 경우 참.

보고
ERROR(/List) 오버 왼쪽 인수

parseBestEffort

public  parseBestEffort (String... args)

의 최선의 노력 버전 parse(String) . ConfigurationException이 발생하면 해당 예외가 내부적으로 캡처되고 나머지 인수(예외를 발생시킨 인수 포함)가 반환됩니다. 이 메서드는 던지지 않습니다.

매개변수
args String

보고
ERROR(/List) 오버 왼쪽 인수

validateMandatoryOptions

public void validateMandatoryOptions ()

필수로 표시된 모든 필드가 설정되었는지 확인합니다.

던지다
ConfigurationException