jkeyes      2004/02/17 14:11:17

  Modified:    cli/src/test/org/apache/commons/cli2/impl Tag:
                        RESEARCH_CLI_2_ROXSPRING ArgumentTest.java
                        ArgumentTestCase.java
               cli/src/java/org/apache/commons/cli2/impl Tag:
                        RESEARCH_CLI_2_ROXSPRING ArgumentImpl.java
                        ParentImpl.java
               cli/src/java/org/apache/commons/cli2 Tag:
                        RESEARCH_CLI_2_ROXSPRING Argument.java
  Log:
  - removed canPreProcess and preProcess methods from Argument

    and added getInitialSeparator.  Parent now performs the

    "preprocessing"
  
  Revision  Changes    Path
  No                   revision
  No                   revision
  1.1.2.6   +0 -30     
jakarta-commons/cli/src/test/org/apache/commons/cli2/impl/Attic/ArgumentTest.java
  
  Index: ArgumentTest.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/cli/src/test/org/apache/commons/cli2/impl/Attic/ArgumentTest.java,v
  retrieving revision 1.1.2.5
  retrieving revision 1.1.2.6
  diff -u -r1.1.2.5 -r1.1.2.6
  --- ArgumentTest.java 17 Feb 2004 21:36:38 -0000      1.1.2.5
  +++ ArgumentTest.java 17 Feb 2004 22:11:16 -0000      1.1.2.6
  @@ -165,36 +165,6 @@
       /*
        * (non-Javadoc)
        * 
  -     * @see org.apache.commons.cli2.ArgumentTestCase#testPreProcess()
  -     */
  -    public void testPreProcess() {
  -        final Argument option = buildUsernameArgument();
  -        final List args = list("username=rob");
  -        final ListIterator iterator = args.listIterator();
  -        option.preProcess(iterator);
  -
  -        assertTrue(iterator.hasNext());
  -        assertEquals("username=rob", iterator.next());
  -        assertListContentsEqual(list("username=rob"), args);
  -    }
  -
  -    public void testPreProcess_Split() {
  -        final Argument option = buildPathArgument();
  -        final List args = list("-path=/lib;/usr/lib;/usr/local/lib");
  -        final ListIterator iterator = args.listIterator();
  -        option.preProcess(iterator);
  -
  -        assertTrue(iterator.hasNext());
  -        assertEquals("-path", iterator.next());
  -        assertEquals("/lib;/usr/lib;/usr/local/lib", iterator.next());
  -        assertListContentsEqual(
  -            list("-path", "/lib;/usr/lib;/usr/local/lib"),
  -            args);
  -    }
  -
  -    /*
  -     * (non-Javadoc)
  -     * 
        * @see org.apache.commons.cli2.ArgumentTestCase#testProcessValues()
        */
       public void testProcessValues() throws OptionException {
  
  
  
  1.1.2.4   +1 -2      
jakarta-commons/cli/src/test/org/apache/commons/cli2/impl/Attic/ArgumentTestCase.java
  
  Index: ArgumentTestCase.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/cli/src/test/org/apache/commons/cli2/impl/Attic/ArgumentTestCase.java,v
  retrieving revision 1.1.2.3
  retrieving revision 1.1.2.4
  diff -u -r1.1.2.3 -r1.1.2.4
  --- ArgumentTestCase.java     8 Feb 2004 13:09:01 -0000       1.1.2.3
  +++ ArgumentTestCase.java     17 Feb 2004 22:11:16 -0000      1.1.2.4
  @@ -22,7 +22,6 @@
    */
   public abstract class ArgumentTestCase extends OptionTestCase {
   
  -    public abstract void testPreProcess() throws OptionException;
  -
       public abstract void testProcessValues() throws OptionException;
  +
   }
  
  
  
  No                   revision
  No                   revision
  1.1.2.6   +7 -38     
jakarta-commons/cli/src/java/org/apache/commons/cli2/impl/Attic/ArgumentImpl.java
  
  Index: ArgumentImpl.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/cli/src/java/org/apache/commons/cli2/impl/Attic/ArgumentImpl.java,v
  retrieving revision 1.1.2.5
  retrieving revision 1.1.2.6
  diff -u -r1.1.2.5 -r1.1.2.6
  --- ArgumentImpl.java 8 Feb 2004 14:01:46 -0000       1.1.2.5
  +++ ArgumentImpl.java 17 Feb 2004 22:11:16 -0000      1.1.2.6
  @@ -44,7 +44,6 @@
       private final int maximum;
       private final char initialSeparator;
       private final char subsequentSepatator;
  -    private final boolean initialSplit;
       private final boolean subsequentSplit;
       private final Validator validator;
       private final String consumeRemaining;
  @@ -106,7 +105,6 @@
           this.maximum = maximum;
           this.initialSeparator = initialSeparator;
           this.subsequentSepatator = subsequentSeparator;
  -        this.initialSplit = initialSeparator != NUL;
           this.subsequentSplit = subsequentSeparator != NUL;
           this.validator = validator;
           this.consumeRemaining = consumeRemaining;
  @@ -149,27 +147,6 @@
       public String getPreferredName() {
           return name;
       }
  -    /*
  -     * (non-Javadoc)
  -     * 
  -     * @see org.apache.commons.cli2.Argument#preProcess(java.util.ListIterator)
  -     */
  -    public void preProcess(final ListIterator args) { //throws OptionException
  -                                                      // {
  -
  -        if (initialSplit) {
  -            final String argument = (String)args.next();
  -            final int initialIndex = argument.indexOf(initialSeparator);
  -            if (initialIndex > 0) {
  -                args.remove();
  -                args.add(argument.substring(0, initialIndex));
  -                args.add(argument.substring(initialIndex + 1));
  -                args.previous();
  -            }
  -            args.previous();
  -        }
  -
  -    }
   
       /*
        * (non-Javadoc)
  @@ -268,27 +245,19 @@
       /*
        * (non-Javadoc)
        * 
  -     * @see org.apache.commons.cli2.Option#triggers()
  +     * @see org.apache.commons.cli2.Argument#getInitialSeparator()
        */
  -    public Set getTriggers() {
  -        return Collections.EMPTY_SET;
  +    public char getInitialSeparator() {
  +        return this.initialSeparator;
       }
  -
  +    
       /*
        * (non-Javadoc)
        * 
  -     * @see org.apache.commons.cli2.Argument#canPreProcess(java.lang.String)
  +     * @see org.apache.commons.cli2.Option#triggers()
        */
  -    public String canPreProcess(final String arg) {
  -
  -        if (initialSplit) {
  -            final int initialIndex = arg.indexOf(initialSeparator);
  -            if (initialIndex > 0) {
  -                return arg.substring(0, initialIndex);
  -            }
  -        }
  -
  -        return arg;
  +    public Set getTriggers() {
  +        return Collections.EMPTY_SET;
       }
   
       /*
  
  
  
  1.1.2.5   +41 -8     
jakarta-commons/cli/src/java/org/apache/commons/cli2/impl/Attic/ParentImpl.java
  
  Index: ParentImpl.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/cli/src/java/org/apache/commons/cli2/impl/Attic/ParentImpl.java,v
  retrieving revision 1.1.2.4
  retrieving revision 1.1.2.5
  diff -u -r1.1.2.4 -r1.1.2.5
  --- ParentImpl.java   8 Feb 2004 14:01:46 -0000       1.1.2.4
  +++ ParentImpl.java   17 Feb 2004 22:11:16 -0000      1.1.2.5
  @@ -34,6 +34,8 @@
    */
   public abstract class ParentImpl extends OptionImpl implements Parent {
   
  +    private static final char NUL = '\0';
  +    
       private final Group children;
   
       private final Argument argument;
  @@ -63,7 +65,7 @@
           throws OptionException {
   
           if (argument != null) {
  -            argument.preProcess(arguments);
  +            handleInitialSeparator(arguments, argument.getInitialSeparator());
           }
   
           processParent(commandLine, arguments);
  @@ -84,15 +86,23 @@
        */
       public boolean canProcess(final String arg) {
   
  -        final String trimmed;
  +        final Set triggers = getTriggers();
  +        
           if (argument != null) {
  -            trimmed = argument.canPreProcess(arg);
  -        }
  -        else {
  -            trimmed = arg;
  +            final char separator = argument.getInitialSeparator();
  +            
  +            // if there is a valid separator character
  +            if (separator != NUL) {
  +                final int initialIndex = arg.indexOf(separator);
  +                
  +                // if there is a separator present
  +                if (initialIndex > 0) {
  +                    return triggers.contains(arg.substring(0, initialIndex));
  +                }
  +            }
           }
  -
  -        return getTriggers().contains(trimmed);
  +        
  +        return triggers.contains(arg);
       }
   
       /*
  @@ -202,4 +212,27 @@
       public Group getChildren() {
           return children;
       }
  +
  +    /**
  +     * Split the token using the specified separator character.
  +     */
  +    private void handleInitialSeparator(
  +        final ListIterator arguments, 
  +        final char separator) {
  +        
  +        // next token
  +        final String argument = (String)arguments.next();
  +        
  +        // split the token
  +        final int initialIndex = argument.indexOf(separator);
  +        
  +        if (initialIndex > 0) {
  +            arguments.remove();
  +            arguments.add(argument.substring(0, initialIndex));
  +            arguments.add(argument.substring(initialIndex + 1));
  +            arguments.previous();
  +        }
  +        arguments.previous();        
  +    }
  +    
   }
  
  
  
  No                   revision
  No                   revision
  1.1.2.5   +8 -4      
jakarta-commons/cli/src/java/org/apache/commons/cli2/Attic/Argument.java
  
  Index: Argument.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/cli/src/java/org/apache/commons/cli2/Attic/Argument.java,v
  retrieving revision 1.1.2.4
  retrieving revision 1.1.2.5
  diff -u -r1.1.2.4 -r1.1.2.5
  --- Argument.java     4 Feb 2004 02:01:50 -0000       1.1.2.4
  +++ Argument.java     17 Feb 2004 22:11:16 -0000      1.1.2.5
  @@ -25,10 +25,14 @@
    */
   public interface Argument extends Option {
   
  -    String canPreProcess(final String arg);
  -
  -    void preProcess(final ListIterator args); // throws OptionException;
  -
  +    /**
  +     * Returns the initial separator character or
  +     * '\0' if no character has been set.
  +     * 
  +     * @return char the initial separator character
  +     */
  +    char getInitialSeparator();
  +    
       /**
        * Processes the "README" style element of the argument.
        *
  
  
  

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

Reply via email to