You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by ro...@apache.org on 2004/04/20 22:59:19 UTC

cvs commit: jakarta-commons/cli/src/java/org/apache/commons/cli2 Argument.java Group.java Option.java

roxspring    2004/04/20 13:59:19

  Modified:    cli/src/java/org/apache/commons/cli2/option Tag:
                        RESEARCH_CLI_2_ROXSPRING PropertyOption.java
                        GroupImpl.java DefaultOption.java Switch.java
                        ParentImpl.java OptionImpl.java Command.java
                        ArgumentImpl.java
               cli/src/java/org/apache/commons/cli2 Tag:
                        RESEARCH_CLI_2_ROXSPRING Argument.java Group.java
                        Option.java
  Log:
  isRequired(), getMinimum() and getMaximum() refactored into the Option, Argument and Group interfaces
  
  Revision  Changes    Path
  No                   revision
  No                   revision
  1.1.2.3   +1 -1      jakarta-commons/cli/src/java/org/apache/commons/cli2/option/Attic/PropertyOption.java
  
  Index: PropertyOption.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/cli/src/java/org/apache/commons/cli2/option/Attic/PropertyOption.java,v
  retrieving revision 1.1.2.2
  retrieving revision 1.1.2.3
  diff -u -r1.1.2.2 -r1.1.2.3
  --- PropertyOption.java	14 Apr 2004 18:31:16 -0000	1.1.2.2
  +++ PropertyOption.java	20 Apr 2004 20:59:19 -0000	1.1.2.3
  @@ -57,7 +57,7 @@
           final String optionString,
           final String description,
           final int id) {
  -        super(id);
  +        super(id,false);
           this.optionString = optionString;
           this.description = description;
           this.prefixes = Collections.singleton(optionString);
  
  
  
  1.1.2.4   +5 -9      jakarta-commons/cli/src/java/org/apache/commons/cli2/option/Attic/GroupImpl.java
  
  Index: GroupImpl.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/cli/src/java/org/apache/commons/cli2/option/Attic/GroupImpl.java,v
  retrieving revision 1.1.2.3
  retrieving revision 1.1.2.4
  diff -u -r1.1.2.3 -r1.1.2.4
  --- GroupImpl.java	19 Apr 2004 21:35:10 -0000	1.1.2.3
  +++ GroupImpl.java	20 Apr 2004 20:59:19 -0000	1.1.2.4
  @@ -66,7 +66,7 @@
           final int minimum,
           final int maximum) 
       {
  -        super(0);
  +        super(0,false);
   
           this.name = name;
           this.description = description;
  @@ -433,21 +433,17 @@
   		return null;
   	}
   	
  -	/**
  -     * Gets the minimum number of member Options for a valid CommandLine
  -	 * @return the minimum number of member Options
  -	 */
   	public int getMinimum() {
   		return minimum;
   	}
   	
  -    /**
  -     * Gets the maximum number of member Options for a valid CommandLine
  -     * @return the maximum number of member Options
  -     */
   	public int getMaximum() {
   		return maximum;
   	}
  +
  +    public boolean isRequired() {
  +        return getMinimum()>0;
  +    }
   }
   
   class ReverseStringComparator implements Comparator {
  
  
  
  1.1.2.3   +3 -13     jakarta-commons/cli/src/java/org/apache/commons/cli2/option/Attic/DefaultOption.java
  
  Index: DefaultOption.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/cli/src/java/org/apache/commons/cli2/option/Attic/DefaultOption.java,v
  retrieving revision 1.1.2.2
  retrieving revision 1.1.2.3
  diff -u -r1.1.2.2 -r1.1.2.3
  --- DefaultOption.java	14 Apr 2004 18:31:16 -0000	1.1.2.2
  +++ DefaultOption.java	20 Apr 2004 20:59:19 -0000	1.1.2.3
  @@ -53,7 +53,6 @@
       private final String preferredName;
       private final Set aliases;
       private final Set burstAliases;
  -    private final boolean required;
       private final Set triggers;
       private final Set prefixes;
   
  @@ -89,7 +88,7 @@
           final Argument argument,
           final Group children,
           final int id) {
  -        super(argument, children, description, id);
  +        super(argument, children, description, id, required);
   
           this.shortPrefix = shortPrefix;
           this.burstEnabled = burstEnabled;
  @@ -111,7 +110,6 @@
               this.burstAliases =
                   Collections.unmodifiableSet(new HashSet(burstAliases));
           }
  -        this.required = required;
   
           final Set triggers = new HashSet();
           triggers.add(preferredName);
  @@ -181,7 +179,7 @@
   
       public void validate(WriteableCommandLine commandLine)
           throws OptionException {
  -        if (required && !commandLine.hasOption(this)) {
  +        if (isRequired() && !commandLine.hasOption(this)) {
               throw new OptionException(this);
           }
   
  @@ -195,7 +193,7 @@
   
           // do we display optionality
           final boolean optional =
  -            !required && helpSettings.contains(DisplaySetting.DISPLAY_OPTIONAL);
  +            !isRequired() && helpSettings.contains(DisplaySetting.DISPLAY_OPTIONAL);
           final boolean displayAliases =
               helpSettings.contains(DisplaySetting.DISPLAY_ALIASES);
   
  @@ -229,13 +227,5 @@
   
       public String getPreferredName() {
           return preferredName;
  -    }
  -    
  -    /**
  -     * Indicates whether this option is required to be present.
  -     * @return true iff the CommandLine will be invalid without this Option
  -     */
  -    public boolean isRequired() {
  -        return this.required;
       }
   }
  
  
  
  1.1.2.3   +3 -5      jakarta-commons/cli/src/java/org/apache/commons/cli2/option/Attic/Switch.java
  
  Index: Switch.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/cli/src/java/org/apache/commons/cli2/option/Attic/Switch.java,v
  retrieving revision 1.1.2.2
  retrieving revision 1.1.2.3
  diff -u -r1.1.2.2 -r1.1.2.3
  --- Switch.java	14 Apr 2004 18:31:16 -0000	1.1.2.2
  +++ Switch.java	20 Apr 2004 20:59:19 -0000	1.1.2.3
  @@ -48,7 +48,6 @@
   
       private final String enabledPrefix;
       private final String disabledPrefix;
  -    private final boolean required;
       private final Set triggers;
       private final String preferredName;
       private final Set aliases;
  @@ -76,7 +75,7 @@
           final Argument argument,
           final Group children,
           final int id) {
  -        super(argument, children, description, id);
  +        super(argument, children, description, id, required);
   
           if (enabledPrefix == null) {
               throw new IllegalArgumentException("enabledPrefix must be supplied");
  @@ -96,7 +95,6 @@
   
           this.enabledPrefix = enabledPrefix;
           this.disabledPrefix = disabledPrefix;
  -        this.required = required;
           this.preferredName = preferredName;
   
           if (preferredName == null || preferredName.length() < 1) {
  @@ -160,7 +158,7 @@
   
       public void validate(WriteableCommandLine commandLine)
           throws OptionException {
  -        if (required && !commandLine.hasOption(this)) {
  +        if (isRequired() && !commandLine.hasOption(this)) {
               throw new OptionException(this);
           }
   
  @@ -174,7 +172,7 @@
   
           // do we display optionality
           final boolean optional =
  -            !required && helpSettings.contains(DisplaySetting.DISPLAY_OPTIONAL);
  +            !isRequired() && helpSettings.contains(DisplaySetting.DISPLAY_OPTIONAL);
           final boolean displayAliases =
               helpSettings.contains(DisplaySetting.DISPLAY_ALIASES);
           final boolean disabled =
  
  
  
  1.1.2.3   +3 -2      jakarta-commons/cli/src/java/org/apache/commons/cli2/option/Attic/ParentImpl.java
  
  Index: ParentImpl.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/cli/src/java/org/apache/commons/cli2/option/Attic/ParentImpl.java,v
  retrieving revision 1.1.2.2
  retrieving revision 1.1.2.3
  diff -u -r1.1.2.2 -r1.1.2.3
  --- ParentImpl.java	14 Apr 2004 18:31:16 -0000	1.1.2.2
  +++ ParentImpl.java	20 Apr 2004 20:59:19 -0000	1.1.2.3
  @@ -48,8 +48,9 @@
           final Argument argument,
           final Group children,
           final String description,
  -        final int id) {
  -        super(id);
  +        final int id,
  +        final boolean required) {
  +        super(id,required);
           this.children = children;
           this.argument = argument;
           this.description = description;
  
  
  
  1.1.2.3   +7 -1      jakarta-commons/cli/src/java/org/apache/commons/cli2/option/Attic/OptionImpl.java
  
  Index: OptionImpl.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/cli/src/java/org/apache/commons/cli2/option/Attic/OptionImpl.java,v
  retrieving revision 1.1.2.2
  retrieving revision 1.1.2.3
  diff -u -r1.1.2.2 -r1.1.2.3
  --- OptionImpl.java	14 Apr 2004 18:31:16 -0000	1.1.2.2
  +++ OptionImpl.java	20 Apr 2004 20:59:19 -0000	1.1.2.3
  @@ -27,13 +27,15 @@
   public abstract class OptionImpl implements Option {
   
       private final int id;
  +    private final boolean required;
   
       /**
        * Creates an OptionImpl with the specified id
        * @param id the unique id of this Option
        */
  -    public OptionImpl(final int id) {
  +    public OptionImpl(final int id, final boolean required) {
           this.id = id;
  +        this.required = required;
       }
   
       public boolean canProcess(final ListIterator arguments) {
  @@ -92,4 +94,8 @@
   			return null;
   		}
   	}
  +
  +    public boolean isRequired() {
  +        return required;
  +    }
   }
  
  
  
  1.1.2.3   +3 -7      jakarta-commons/cli/src/java/org/apache/commons/cli2/option/Attic/Command.java
  
  Index: Command.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/cli/src/java/org/apache/commons/cli2/option/Attic/Command.java,v
  retrieving revision 1.1.2.2
  retrieving revision 1.1.2.3
  diff -u -r1.1.2.2 -r1.1.2.3
  --- Command.java	14 Apr 2004 18:31:16 -0000	1.1.2.2
  +++ Command.java	20 Apr 2004 20:59:19 -0000	1.1.2.3
  @@ -44,9 +44,6 @@
       /** The aliases for this command */
       private final Set aliases;
   
  -    /** Whether or not the command is required */
  -    private final boolean required;
  -
       /** All the names for this command */
       private final Set triggers;
   
  @@ -79,7 +76,7 @@
           final Group children,
           final int id) {
   
  -        super(argument, children, description, id);
  +        super(argument, children, description, id, required);
   
           // check the preferred name is valid
           if (preferredName == null || preferredName.length() < 1) {
  @@ -87,7 +84,6 @@
           }
   
           this.preferredName = preferredName;
  -        this.required = required;
   
           // gracefully and defensively handle aliases
           if (aliases == null) {
  @@ -132,7 +128,7 @@
   
       public void validate(WriteableCommandLine commandLine)
           throws OptionException {
  -        if (required && !commandLine.hasOption(this)) {
  +        if (isRequired() && !commandLine.hasOption(this)) {
               throw new OptionException(this);
           }
   
  @@ -146,7 +142,7 @@
   
           // do we display optionality
           final boolean optional =
  -            !required && helpSettings.contains(DisplaySetting.DISPLAY_OPTIONAL);
  +            !isRequired() && helpSettings.contains(DisplaySetting.DISPLAY_OPTIONAL);
           final boolean displayAliases =
               helpSettings.contains(DisplaySetting.DISPLAY_ALIASES);
   
  
  
  
  1.1.2.3   +5 -7      jakarta-commons/cli/src/java/org/apache/commons/cli2/option/Attic/ArgumentImpl.java
  
  Index: ArgumentImpl.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/cli/src/java/org/apache/commons/cli2/option/Attic/ArgumentImpl.java,v
  retrieving revision 1.1.2.2
  retrieving revision 1.1.2.3
  diff -u -r1.1.2.2 -r1.1.2.3
  --- ArgumentImpl.java	14 Apr 2004 18:31:16 -0000	1.1.2.2
  +++ ArgumentImpl.java	20 Apr 2004 20:59:19 -0000	1.1.2.3
  @@ -106,7 +106,7 @@
           final List defaultValues,
           final int id) {
           
  -        super(id);
  +        super(id,false);
   
           this.name = (name == null) ? "arg" : name;
           this.description = description;
  @@ -330,16 +330,10 @@
           return Collections.singletonList(helpLine);
       }
   
  -    /**
  -     * @return Returns the maximum.
  -     */
       public int getMaximum() {
           return maximum;
       }
   
  -    /**
  -     * @return Returns the minimum.
  -     */
       public int getMinimum() {
           return minimum;
       }
  @@ -368,5 +362,9 @@
   
               return token;
           }
  +    }
  +    
  +    public boolean isRequired() {
  +        return getMinimum()>0;
       }
   }
  
  
  
  No                   revision
  No                   revision
  1.1.2.7   +25 -0     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.6
  retrieving revision 1.1.2.7
  diff -u -r1.1.2.6 -r1.1.2.7
  --- Argument.java	14 Apr 2004 18:31:15 -0000	1.1.2.6
  +++ Argument.java	20 Apr 2004 20:59:19 -0000	1.1.2.7
  @@ -68,4 +68,29 @@
        */
       void validate(final WriteableCommandLine commandLine, final Option option)
           throws OptionException;
  +
  +    /**
  +     * Indicates whether argument values must be present for the CommandLine to
  +     * be valid.
  +     *
  +     * @see #getMinimum()
  +     * @see #getMaximum()
  +     * @return true iff the CommandLine will be invalid without at least one 
  +     *         value
  +     */
  +    boolean isRequired();
  +
  +    /**
  +     * Retrieves the minimum number of values required for a valid Argument
  +     *
  +     * @return the minimum number of values
  +     */
  +    int getMinimum();
  +
  +    /**
  +     * Retrieves the maximum number of values acceptable for a valid Argument
  +     *
  +     * @return the maximum number of values
  +     */
  +    int getMaximum();
   }
  
  
  
  1.1.2.6   +25 -0     jakarta-commons/cli/src/java/org/apache/commons/cli2/Attic/Group.java
  
  Index: Group.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/cli/src/java/org/apache/commons/cli2/Attic/Group.java,v
  retrieving revision 1.1.2.5
  retrieving revision 1.1.2.6
  diff -u -r1.1.2.5 -r1.1.2.6
  --- Group.java	14 Apr 2004 18:31:15 -0000	1.1.2.5
  +++ Group.java	20 Apr 2004 20:59:19 -0000	1.1.2.6
  @@ -36,4 +36,29 @@
           final Set helpSettings,
           final Comparator comp,
           final String separator);
  +
  +    /**
  +     * Indicates whether group members must be present for the CommandLine to be
  +     * valid.
  +     *
  +     * @see #getMinimum()
  +     * @see #getMaximum()
  +     * @return true iff the CommandLine will be invalid without at least one 
  +     *         member option
  +     */
  +    boolean isRequired();
  +
  +    /**
  +     * Retrieves the minimum number of members required for a valid Group
  +     *
  +     * @return the minimum number of members
  +     */
  +    int getMinimum();
  +
  +    /**
  +     * Retrieves the maximum number of members acceptable for a valid Group
  +     *
  +     * @return the maximum number of members
  +     */
  +    int getMaximum();
   }
  
  
  
  1.1.2.12  +6 -0      jakarta-commons/cli/src/java/org/apache/commons/cli2/Attic/Option.java
  
  Index: Option.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/cli/src/java/org/apache/commons/cli2/Attic/Option.java,v
  retrieving revision 1.1.2.11
  retrieving revision 1.1.2.12
  diff -u -r1.1.2.11 -r1.1.2.12
  --- Option.java	14 Apr 2004 18:31:15 -0000	1.1.2.11
  +++ Option.java	20 Apr 2004 20:59:19 -0000	1.1.2.12
  @@ -178,4 +178,10 @@
   	 * @return the matching option or null.
   	 */
   	Option findOption(final String trigger);
  +
  +    /**
  +     * Indicates whether this option is required to be present.
  +     * @return true iff the CommandLine will be invalid without this Option
  +     */
  +    boolean isRequired();
   }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org