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 인수는 해당 개체의 전체 클래스 이름 또는 ':'로 구분된 해당 OptionClass 별칭 값을 사용하여 단일 개체 내의 Option 필드를 고유하게 참조하도록 네임스페이스가 지정될 수 있습니다. 즉

 --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"는 별도로 해석됨). "예"와 "아니오"를 "참"과 "거짓"의 동의어로 사용할 수 있습니다.

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

옵션이 처리되면 옵션에 해당하는 필드가 업데이트됩니다. 나머지 위치 인수는 모두 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) 매뉴얼 페이지
  • Python의 "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)

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

parse ( args) parse ( args)

인수의 ERROR(/List) 사용하는 대체 parse(String) 메서드

parseBestEffort ( args) parseBestEffort ( args)

인수의 ERROR(/List) 사용하는 대체 parseBestEffort(String) 메서드

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

인수의 ERROR(/List) 사용하고 일부 인수가 구문 분석하지 않는 경우에도 끝까지 구문 분석을 계속하도록 강제할 수 있는 대체 parseBestEffort(String) 메서드입니다.

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 ()

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

보고

getOptionHelp

public static String getOptionHelp (boolean importantOnly, 
                Object optionObject)

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

각 옵션에 대한 도움말 텍스트는

   [-option_shortname, --option_name]          [option_description] Default:
   [current option field's value in optionObject]
 
형식입니다. 옵션 필드가 null이거나 비어 있으면 'Default...' 텍스트가 생략됩니다.

매개변수
importantOnly boolean : true 이면 중요한 옵션에 대한 도움말만 인쇄합니다.

optionObject Object : 도움말 텍스트를 출력할 객체

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

구문 분석

public  parse (String... args)

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

매개변수
args String

보고
모든 옵션을 처리하고 남은 위치 인수의 ERROR(/List) .

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

구문 분석

public  parse ( args)

인수의 ERROR(/List) 사용하는 대체 parse(String) 메서드

매개변수
args

보고
모든 옵션을 처리하고 남은 위치 인수의 ERROR(/List) .

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

구문 분석 BestEffort

public  parseBestEffort ( args)

인수의 ERROR(/List) 사용하는 대체 parseBestEffort(String) 메서드

매개변수
args

보고
남은 인수의 ERROR(/List)

구문 분석 BestEffort

public  parseBestEffort ( args, 
                boolean forceContinue)

인수의 ERROR(/List) 사용하고 일부 인수가 구문 분석하지 않는 경우에도 끝까지 구문 분석을 계속하도록 강제할 수 있는 대체 parseBestEffort(String) 메서드입니다.

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

forceContinue boolean : 일부 인수가 구문 분석하지 않는 경우에도 구문 분석을 계속해야 하는 경우 True입니다.

보고
남은 인수의 ERROR(/List)

구문 분석 BestEffort

public  parseBestEffort (String... args)

parse(String) 의 최선의 버전입니다. ConfigurationException이 발생하면 해당 예외가 내부적으로 캡처되고 나머지 인수(예외 발생을 유발한 인수 포함)가 반환됩니다. 이 방법은 던지지 않습니다.

매개변수
args String

보고
남은 인수의 ERROR(/List)

유효성 검사 필수 옵션

public void validateMandatoryOptions ()

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

던지기
com.android.tradefed.config.ConfigurationException
ConfigurationException