You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by do...@apache.org on 2002/03/19 11:50:11 UTC

cvs commit: jakarta-avalon-excalibur/cli/examples/no_aliasing NoAlias.java README.txt

donaldp     02/03/19 02:50:11

  Added:       cli/examples/no_aliasing NoAlias.java README.txt
  Log:
  Add no alias example
  
  Revision  Changes    Path
  1.1                  jakarta-avalon-excalibur/cli/examples/no_aliasing/NoAlias.java
  
  Index: NoAlias.java
  ===================================================================
  /*
   * Copyright (C) The Apache Software Foundation. All rights reserved.
   *
   * This software is published under the terms of the Apache Software License
   * version 1.1, a copy of which has been included with this distribution in
   * the LICENSE.txt file.
   */
  import java.util.List;
  import org.apache.avalon.excalibur.cli.CLArgsParser;
  import org.apache.avalon.excalibur.cli.CLOption;
  import org.apache.avalon.excalibur.cli.CLOptionDescriptor;
  import org.apache.avalon.excalibur.cli.CLUtil;
  
  /**
   * This simple example shows how to set it up so that only the
   * long form or only short form of an option is capable of
   * being used.
   *
   * @author <a href="peter@apache.org">Peter Donald</a>
   */
  public class NoAlias
  {
      // Define our short one-letter option identifiers.
      private static final int SHORT_OPT = 's';
      private static final int LONG_OPT = 1;
  
      private static final CLOptionDescriptor[] OPTIONS = new CLOptionDescriptor[]
      {
          new CLOptionDescriptor( null,
                                  CLOptionDescriptor.ARGUMENT_DISALLOWED,
                                  SHORT_OPT,
                                  "option with only short form",
                                  new int[ 0 ] ),
          new CLOptionDescriptor( "long",
                                  CLOptionDescriptor.ARGUMENT_DISALLOWED,
                                  LONG_OPT,
                                  "option with long form" )
      };
  
      public static void main( final String[] args )
      {
          System.out.println( "Starting NoAlias..." );
          System.out.println( CLUtil.describeOptions( OPTIONS ) );
          System.out.println();
  
          // Parse the arguments
          final CLArgsParser parser = new CLArgsParser( args, OPTIONS );
  
          //Make sure that there was no errors parsing
          //arguments
          if( null != parser.getErrorString() )
          {
              System.err.println( "Error: " + parser.getErrorString() );
              return;
          }
  
          // Get a list of parsed options
          final List options = parser.getArguments();
          final int size = options.size();
  
          for( int i = 0; i < size; i++ )
          {
              final CLOption option = (CLOption)options.get( i );
  
              switch( option.getId() )
              {
                  case CLOption.TEXT_ARGUMENT:
                      //This occurs when a user supplies an argument that
                      //is not an option
                      System.out.println( "Unknown arg: " + option.getArgument() );
                      break;
  
                  case SHORT_OPT:
                      System.out.println( "Received short option" );
                      break;
  
                  case LONG_OPT:
                      System.out.println( "Received long option" );
                      break;
              }
          }
      }
  }
  
  
  1.1                  jakarta-avalon-excalibur/cli/examples/no_aliasing/README.txt
  
  Index: README.txt
  ===================================================================
  Welcome to Excalibur CLI!
  
  As always, the if you have any questions :
  
  1) Make sure you followed any directions
  2) Review documentation included in this package, or online at
        http://jakarta.apache.org/avalon/excalibur
  3) Ask on the avalon-dev list.  This is a great source of support
     information. To join, read http://jakarta.apache.org/site/mail.html
     and then follow the link at the bottom to join the lists.
  
  noalias
  -------
  This simple example shows how to set it up so that only the long form
  or only short form of an option is capable of being used.
  
  Compile it by running
  
  javac -classpath ../../build/lib/@dist.name@.jar *.java (Unix)
  
  or
  
  javac -classpath ..\..\build\lib\@dist.name@.jar *.java (Windows)
  
  Run it using the scripts provided:
  
    java -classpath ../../build/lib/@dist.name@.jar:. NoAlias (Unix)
  
  or
  
    java -classpath ..\..\build\lib\@dist.name@.jar;. NoAlias (Windows)
  
  
  Try passing it the "--help" command line option to see which other
  command line options are available. The experiment by passing in
  different options.
  
  Some combinations to try out include
  
  --help
  -h
  h
  --version
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>