Coverage Report - joptsimple.OptionParserState
 
Classes in this File Line Coverage Branch Coverage Complexity
OptionParserState
100%
3/3
N/A
1.8
OptionParserState$1
100%
3/3
N/A
1.8
OptionParserState$2
100%
12/12
100%
8/8
1.8
 
 1  
 /*
 2  
  Copyright 2004-2008 Paul R. Holser, Jr.  All rights reserved.
 3  
  Licensed under the Academic Free License version 3.0
 4  
  */
 5  
 
 6  
 package joptsimple;
 7  
 
 8  
 /**
 9  
  * <p>Abstraction of parser state; mostly serves to model how a parser behaves depending
 10  
  * on whether end-of-options has been detected.</p>
 11  
  *
 12  
  * @since 1.0
 13  
  * @author <a href="mailto:pholser@alumni.rice.edu">Paul Holser</a>
 14  
  * @version $Id: OptionParserState.java,v 1.1 2008/03/15 14:45:40 pholser Exp $
 15  
  */
 16  608
 abstract class OptionParserState {
 17  
     static OptionParserState noMoreOptions() {
 18  26
         return new OptionParserState() {
 19  26
             protected void handleArgument( OptionParser parser, ArgumentList arguments,
 20  
                 OptionSet detectedOptions ) {
 21  
     
 22  118
                 detectedOptions.addNonOptionArgument( arguments.next() );
 23  118
             }
 24  
         };
 25  
     }
 26  
 
 27  
     static OptionParserState moreOptions( final boolean posixlyCorrect ) {
 28  582
         return new OptionParserState() {
 29  582
             protected void handleArgument( OptionParser parser, ArgumentList arguments,
 30  
                 OptionSet detectedOptions ) {
 31  
     
 32  476
                 String candidate = arguments.next();
 33  476
                 if ( ParserRules.isOptionTerminator( candidate ) )
 34  10
                     parser.noMoreOptions();
 35  466
                 else if ( ParserRules.isLongOptionToken( candidate ) )
 36  92
                     parser.handleLongOptionToken( candidate, arguments, detectedOptions );
 37  374
                 else if ( ParserRules.isShortOptionToken( candidate ) )
 38  314
                     parser.handleShortOptionToken( candidate, arguments,
 39  
                         detectedOptions );
 40  
                 else {
 41  60
                     if ( posixlyCorrect )
 42  10
                         parser.noMoreOptions();
 43  
 
 44  60
                     detectedOptions.addNonOptionArgument( candidate );
 45  
                 }
 46  444
             }
 47  
         };
 48  
     }
 49  
 
 50  
     protected abstract void handleArgument( OptionParser parser, ArgumentList arguments,
 51  
         OptionSet detectedOptions );
 52  
 }