donaldp     02/03/20 01:42:05

  Modified:    cli/src/java/org/apache/avalon/excalibur/cli
                        CLOptionDescriptor.java
  Log:
  Make sure options cant have dodgy combination of modes specified
  
  Revision  Changes    Path
  1.9       +29 -0     
jakarta-avalon-excalibur/cli/src/java/org/apache/avalon/excalibur/cli/CLOptionDescriptor.java
  
  Index: CLOptionDescriptor.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-avalon-excalibur/cli/src/java/org/apache/avalon/excalibur/cli/CLOptionDescriptor.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- CLOptionDescriptor.java   19 Mar 2002 11:07:07 -0000      1.8
  +++ CLOptionDescriptor.java   20 Mar 2002 09:42:05 -0000      1.9
  @@ -71,6 +71,35 @@
           m_flags = flags;
           m_description = description;
           m_incompatible = incompatable;
  +
  +        int modeCount = 0;
  +        if( (ARGUMENT_REQUIRED & flags) == ARGUMENT_REQUIRED )
  +        {
  +            modeCount++;
  +        }
  +        if( (ARGUMENT_OPTIONAL & flags) == ARGUMENT_OPTIONAL )
  +        {
  +            modeCount++;
  +        }
  +        if( (ARGUMENT_DISALLOWED & flags) == ARGUMENT_DISALLOWED )
  +        {
  +            modeCount++;
  +        }
  +        if( (ARGUMENTS_REQUIRED_2 & flags) == ARGUMENTS_REQUIRED_2 )
  +        {
  +            modeCount++;
  +        }
  +
  +        if( 0 == modeCount )
  +        {
  +            final String message = "No mode specified for option " + this;
  +            throw new IllegalStateException( message );
  +        }
  +        else if( 1 != modeCount )
  +        {
  +            final String message = "Multiple modes specified for option " + 
this;
  +            throw new IllegalStateException( message );
  +        }
       }
   
       /**
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to