You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ba...@apache.org on 2008/03/22 03:49:46 UTC

svn commit: r639941 [7/17] - in /commons/proper/cli/trunk: ./ src/java/org/apache/commons/cli2/ src/java/org/apache/commons/cli2/builder/ src/java/org/apache/commons/cli2/commandline/ src/java/org/apache/commons/cli2/option/ src/java/org/apache/commons...

Modified: commons/proper/cli/trunk/src/java/org/apache/commons/cli2/validation/DateValidator.java
URL: http://svn.apache.org/viewvc/commons/proper/cli/trunk/src/java/org/apache/commons/cli2/validation/DateValidator.java?rev=639941&r1=639940&r2=639941&view=diff
==============================================================================
--- commons/proper/cli/trunk/src/java/org/apache/commons/cli2/validation/DateValidator.java (original)
+++ commons/proper/cli/trunk/src/java/org/apache/commons/cli2/validation/DateValidator.java Fri Mar 21 19:49:41 2008
@@ -1,308 +1 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.commons.cli2.validation;
-
-import java.text.DateFormat;
-import java.text.ParsePosition;
-
-import java.util.Date;
-import java.util.List;
-import java.util.ListIterator;
-
-import org.apache.commons.cli2.resource.ResourceConstants;
-import org.apache.commons.cli2.resource.ResourceHelper;
-
-/**
- * The <code>DateValidator</code> validates the argument values
- * are date or time value(s).
- *
- * The following example shows how to validate that
- * an argument value(s) is a Date of the following
- * type: d/M/yy (see {@link java.text.DateFormat}).
- *
- * <pre>
- * DateFormat date = new SimpleDateFormat("d/M/yy");
- * ...
- * ArgumentBuilder builder = new ArgumentBuilder();
- * Argument dateFormat =
- *     builder.withName("date");
- *            .withValidator(new DateValidator(dateFormat));
- * </pre>
- *
- * The following example shows how to validate that
- * an argument value(s) is a time of the following
- * type: HH:mm:ss (see {@link java.text.DateFormat}).
- *
- * <pre>
- * DateFormat timeFormat = new SimpleDateFormat("HH:mm:ss");
- * ...
- * ArgumentBuilder builder = new ArgumentBuilder();
- * Argument time =
- *     builder.withName("time");
- *            .withValidator(new DateValidator(timeFormat));
- * </pre>
- *
- * @author John Keyes
- *
- * @see java.text.DateFormat
- */
-public class DateValidator implements Validator {
-    /** i18n */
-    private static final ResourceHelper resources = ResourceHelper.getResourceHelper();
-
-    /** an array of permitted DateFormats */
-    private DateFormat[] formats;
-
-    /** minimum Date allowed i.e: a valid date occurs later than this date */
-    private Date minimum;
-
-    /** maximum Date allowed i.e: a valid date occurs earlier than this date */
-    private Date maximum;
-
-    /** leniant parsing */
-    private boolean isLenient;
-
-    /**
-     * Creates a Validator for the default date/time format
-     */
-    public DateValidator() {
-        this(DateFormat.getInstance());
-    }
-
-    /**
-     * Creates a Validator for the specified DateFormat.
-     *
-     * @param format
-     *            a DateFormat which dates must conform to
-     */
-    public DateValidator(final DateFormat format) {
-        setFormat(format);
-    }
-
-    /**
-     * Creates a Validator for the List of specified DateFormats.
-     *
-     * @param formats
-     *            a List of DateFormats which dates must conform to
-     */
-    public DateValidator(final List formats) {
-        setFormats(formats);
-    }
-
-    /**
-     * Creates a Validator for dates.
-     *
-     * @return DateValidator a Validator for dates
-     */
-    public static DateValidator getDateInstance() {
-        return new DateValidator(DateFormat.getDateInstance());
-    }
-
-    /**
-     * Creates a Validator for times.
-     *
-     * @return DateValidator a Validator for times
-     */
-    public static DateValidator getTimeInstance() {
-        return new DateValidator(DateFormat.getTimeInstance());
-    }
-
-    /**
-     * Creates a Validator for date/times
-     *
-     * @return DateValidator a Validator for date/times
-     */
-    public static DateValidator getDateTimeInstance() {
-        return new DateValidator(DateFormat.getDateTimeInstance());
-    }
-
-    /**
-     * Validate each String value in the specified List against this instances
-     * permitted DateFormats.
-     *
-     * If a value is valid then it's <code>String</code> value in the list is
-     * replaced with it's <code>Date</code> value.
-     *
-     * @see org.apache.commons.cli2.validation.Validator#validate(java.util.List)
-     */
-    public void validate(final List values)
-        throws InvalidArgumentException {
-        // for each value
-        for (final ListIterator i = values.listIterator(); i.hasNext();) {
-            final String value = (String) i.next();
-
-            Date date = null;
-
-            // create a resuable ParsePosition instance
-            final ParsePosition pp = new ParsePosition(0);
-
-            // for each permitted DateFormat
-            for (int f = 0; (f < this.formats.length) && (date == null); ++f) {
-                // reset the parse position
-                pp.setIndex(0);
-                date = this.formats[f].parse(value, pp);
-
-                // if the wrong number of characters have been parsed
-                if (pp.getIndex() < value.length()) {
-                    date = null;
-                }
-            }
-
-            // if date has not been set throw an InvalidArgumentException
-            if (date == null) {
-                throw new InvalidArgumentException(value);
-            }
-
-            // if the date is outside the bounds
-            if (isDateEarlier(date) || isDateLater(date)) {
-                throw new InvalidArgumentException(resources.getMessage(ResourceConstants.DATEVALIDATOR_DATE_OUTOFRANGE,
-                                                                        value));
-            }
-
-            // replace the value in the list with the actual Date
-            i.set(date);
-        }
-    }
-
-    /**
-     * Sets whether this validator uses lenient parsing.
-     *
-     * @param lenient whether this validator uses lenient parsing
-     */
-    public void setLenient(final boolean lenient) {
-        for (int i = 0; i < this.formats.length; i++) {
-            this.formats[i].setLenient(lenient);
-        }
-
-        this.isLenient = lenient;
-    }
-
-    /**
-     * Returns whether this validator uses lenient parsing.
-     *
-     * @return whether this validator uses lenient parsing
-     */
-    public boolean isLenient() {
-        return this.isLenient;
-    }
-
-    /**
-     * Returns the maximum date permitted.
-     *
-     * @return Date the maximum date permitted. If no maximum date has been
-     *         specified then return <code>null</code>.
-     */
-    public Date getMaximum() {
-        return maximum;
-    }
-
-    /**
-     * Sets the maximum Date to the specified value.
-     *
-     * @param maximum
-     *            the maximum Date permitted
-     */
-    public void setMaximum(final Date maximum) {
-        this.maximum = maximum;
-    }
-
-    /**
-     * Returns the minimum date permitted.
-     *
-     * @return Date the minimum date permitted. If no minimum date has been
-     *         specified then return <code>null</code>.
-     */
-    public Date getMinimum() {
-        return minimum;
-    }
-
-    /**
-     * Sets the minimum Date to the specified value.
-     *
-     * @param minimum
-     *            the minimum Date permitted
-     */
-    public void setMinimum(Date minimum) {
-        this.minimum = minimum;
-    }
-
-    /**
-     * Returns whether the specified Date is later than the maximum date.
-     *
-     * @param date
-     *            the Date to evaluate
-     *
-     * @return boolean whether <code>date</code> is earlier than the maximum
-     *         date
-     */
-    private boolean isDateLater(Date date) {
-        return (maximum != null) && (date.getTime() > maximum.getTime());
-    }
-
-    /**
-     * Returns whether the specified Date is earlier than the minimum date.
-     *
-     * @param date
-     *            the Date to evaluate
-     *
-     * @return boolean whether <code>date</code> is earlier than the minimum
-     *         date
-     */
-    private boolean isDateEarlier(Date date) {
-        return (minimum != null) && (date.getTime() < minimum.getTime());
-    }
-
-    /**
-     * Sets the date format permitted.
-     *
-     * @param format
-     *              the format to use
-     */
-    public void setFormat(final DateFormat format) {
-        setFormats(new DateFormat[] { format });
-    }
-
-    /**
-     * Sets the date formats permitted.
-     *
-     * @param formats
-     *               the List of DateFormats to use
-     */
-    public void setFormats(final List formats) {
-        setFormats((DateFormat[]) formats.toArray(new DateFormat[formats.size()]));
-    }
-
-    /**
-     * Sets the date formats permitted.
-     *
-     * @param formats
-     *               the array of DateFormats to use
-     */
-    public void setFormats(final DateFormat[] formats) {
-        this.formats = formats;
-        setLenient(this.isLenient);
-    }
-
-    /**
-     * Gets the date formats permitted.
-     *
-     * @return the permitted formats
-     */
-    public DateFormat[] getFormats() {
-        return this.formats;
-    }
-}
+/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.  See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License.  You may obtain a copy of the License at * *     http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package org.apache.commons.cli2.validation;import java.text.DateFormat;import java.text.ParsePosition;import java.util.Date;import java.util.List;import java.util.ListIterator;import org.apache.commons.c
 li2.resource.ResourceConstants;import org.apache.commons.cli2.resource.ResourceHelper;/** * The <code>DateValidator</code> validates the argument values * are date or time value(s). * * The following example shows how to validate that * an argument value(s) is a Date of the following * type: d/M/yy (see {@link java.text.DateFormat}). * * <pre> * DateFormat date = new SimpleDateFormat("d/M/yy"); * ... * ArgumentBuilder builder = new ArgumentBuilder(); * Argument dateFormat = *     builder.withName("date"); *            .withValidator(new DateValidator(dateFormat)); * </pre> * * The following example shows how to validate that * an argument value(s) is a time of the following * type: HH:mm:ss (see {@link java.text.DateFormat}). * * <pre> * DateFormat timeFormat = new SimpleDateFormat("HH:mm:ss"); * ... * ArgumentBuilder builder = new ArgumentBuilder(); * Argument time = *     builder.withName("time"); *            .withValidator(new DateValidator(timeFormat)); * </pre> * * @au
 thor John Keyes * * @see java.text.DateFormat */public class DateValidator implements Validator {    /** i18n */    private static final ResourceHelper resources = ResourceHelper.getResourceHelper();    /** an array of permitted DateFormats */    private DateFormat[] formats;    /** minimum Date allowed i.e: a valid date occurs later than this date */    private Date minimum;    /** maximum Date allowed i.e: a valid date occurs earlier than this date */    private Date maximum;    /** leniant parsing */    private boolean isLenient;    /**     * Creates a Validator for the default date/time format     */    public DateValidator() {        this(DateFormat.getInstance());    }    /**     * Creates a Validator for the specified DateFormat.     *     * @param format     *            a DateFormat which dates must conform to     */    public DateValidator(final DateFormat format) {        setFormat(format);    }    /**     * Creates a Validator for the List of specified DateFormat
 s.     *     * @param formats     *            a List of DateFormats which dates must conform to     */    public DateValidator(final List formats) {        setFormats(formats);    }    /**     * Creates a Validator for dates.     *     * @return DateValidator a Validator for dates     */    public static DateValidator getDateInstance() {        return new DateValidator(DateFormat.getDateInstance());    }    /**     * Creates a Validator for times.     *     * @return DateValidator a Validator for times     */    public static DateValidator getTimeInstance() {        return new DateValidator(DateFormat.getTimeInstance());    }    /**     * Creates a Validator for date/times     *     * @return DateValidator a Validator for date/times     */    public static DateValidator getDateTimeInstance() {        return new DateValidator(DateFormat.getDateTimeInstance());    }    /**     * Validate each String value in the specified List against this instances     * permitted DateFormat
 s.     *     * If a value is valid then it's <code>String</code> value in the list is     * replaced with it's <code>Date</code> value.     *     * @see org.apache.commons.cli2.validation.Validator#validate(java.util.List)     */    public void validate(final List values)        throws InvalidArgumentException {        // for each value        for (final ListIterator i = values.listIterator(); i.hasNext();) {            final String value = (String) i.next();            Date date = null;            // create a resuable ParsePosition instance            final ParsePosition pp = new ParsePosition(0);            // for each permitted DateFormat            for (int f = 0; (f < this.formats.length) && (date == null); ++f) {                // reset the parse position                pp.setIndex(0);                date = this.formats[f].parse(value, pp);                // if the wrong number of characters have been parsed                if (pp.getIndex() < value.length()) {         
            date = null;                }            }            // if date has not been set throw an InvalidArgumentException            if (date == null) {                throw new InvalidArgumentException(value);            }            // if the date is outside the bounds            if (isDateEarlier(date) || isDateLater(date)) {                throw new InvalidArgumentException(resources.getMessage(ResourceConstants.DATEVALIDATOR_DATE_OUTOFRANGE,                                                                        value));            }            // replace the value in the list with the actual Date            i.set(date);        }    }    /**     * Sets whether this validator uses lenient parsing.     *     * @param lenient whether this validator uses lenient parsing     */    public void setLenient(final boolean lenient) {        for (int i = 0; i < this.formats.length; i++) {            this.formats[i].setLenient(lenient);        }        this.isLenient = lenient; 
    }    /**     * Returns whether this validator uses lenient parsing.     *     * @return whether this validator uses lenient parsing     */    public boolean isLenient() {        return this.isLenient;    }    /**     * Returns the maximum date permitted.     *     * @return Date the maximum date permitted. If no maximum date has been     *         specified then return <code>null</code>.     */    public Date getMaximum() {        return maximum;    }    /**     * Sets the maximum Date to the specified value.     *     * @param maximum     *            the maximum Date permitted     */    public void setMaximum(final Date maximum) {        this.maximum = maximum;    }    /**     * Returns the minimum date permitted.     *     * @return Date the minimum date permitted. If no minimum date has been     *         specified then return <code>null</code>.     */    public Date getMinimum() {        return minimum;    }    /**     * Sets the minimum Date to the specified value. 
     *     * @param minimum     *            the minimum Date permitted     */    public void setMinimum(Date minimum) {        this.minimum = minimum;    }    /**     * Returns whether the specified Date is later than the maximum date.     *     * @param date     *            the Date to evaluate     *     * @return boolean whether <code>date</code> is earlier than the maximum     *         date     */    private boolean isDateLater(Date date) {        return (maximum != null) && (date.getTime() > maximum.getTime());    }    /**     * Returns whether the specified Date is earlier than the minimum date.     *     * @param date     *            the Date to evaluate     *     * @return boolean whether <code>date</code> is earlier than the minimum     *         date     */    private boolean isDateEarlier(Date date) {        return (minimum != null) && (date.getTime() < minimum.getTime());    }    /**     * Sets the date format permitted.     *     * @param format     *         
      the format to use     */    public void setFormat(final DateFormat format) {        setFormats(new DateFormat[] { format });    }    /**     * Sets the date formats permitted.     *     * @param formats     *               the List of DateFormats to use     */    public void setFormats(final List formats) {        setFormats((DateFormat[]) formats.toArray(new DateFormat[formats.size()]));    }    /**     * Sets the date formats permitted.     *     * @param formats     *               the array of DateFormats to use     */    public void setFormats(final DateFormat[] formats) {        this.formats = formats;        setLenient(this.isLenient);    }    /**     * Gets the date formats permitted.     *     * @return the permitted formats     */    public DateFormat[] getFormats() {        return this.formats;    }}
\ No newline at end of file

Modified: commons/proper/cli/trunk/src/java/org/apache/commons/cli2/validation/EnumValidator.java
URL: http://svn.apache.org/viewvc/commons/proper/cli/trunk/src/java/org/apache/commons/cli2/validation/EnumValidator.java?rev=639941&r1=639940&r2=639941&view=diff
==============================================================================
--- commons/proper/cli/trunk/src/java/org/apache/commons/cli2/validation/EnumValidator.java (original)
+++ commons/proper/cli/trunk/src/java/org/apache/commons/cli2/validation/EnumValidator.java Fri Mar 21 19:49:41 2008
@@ -1,120 +1 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.commons.cli2.validation;
-
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.commons.cli2.resource.ResourceConstants;
-import org.apache.commons.cli2.resource.ResourceHelper;
-
-/**
- * The <code>EnumValidator</code> validates the string argument
- * values are valid.
- *
- * The following example shows how to limit the valid values
- * for the color argument to 'red', 'green', or 'blue'.
- *
- * <pre>
- * Set values = new HashSet();
- * values.add("red");
- * values.add("green");
- * values.add("blue");
- * ...
- * ArgumentBuilder builder = new ArgumentBuilder();
- * Argument color =
- *     builder.withName("color");
- *            .withValidator(new EnumValidator(values));
- * </pre>
- *
- * @author John Keyes
- */
-public class EnumValidator implements Validator {
-    /** List of permitted values */
-    private Set validValues;
-
-    /**
-     * Creates a new EnumValidator for the specified values.
-     *
-     * @param values The list of permitted values
-     */
-    public EnumValidator(final Set values) {
-        setValidValues(values);
-    }
-
-    /**
-     * Validate the list of values against the list of permitted values.
-     *
-     * @see org.apache.commons.cli2.validation.Validator#validate(java.util.List)
-     */
-    public void validate(final List values)
-        throws InvalidArgumentException {
-        for (final Iterator iter = values.iterator(); iter.hasNext();) {
-            final String value = (String) iter.next();
-
-            if (!this.validValues.contains(value)) {
-                throw new InvalidArgumentException(ResourceHelper.getResourceHelper().getMessage(ResourceConstants.ENUM_ILLEGAL_VALUE,
-                                                                                                 new Object[] {
-                                                                                                     value,
-                                                                                                     getValuesAsString()
-                                                                                                 }));
-            }
-        }
-    }
-
-    /**
-     * Returns the permitted values in a comma separated String
-     *
-     * @return String formatted list of values
-     */
-    String getValuesAsString() {
-        final StringBuffer buff = new StringBuffer();
-
-        buff.append("[");
-
-        for (final Iterator iter = this.validValues.iterator(); iter.hasNext();) {
-            buff.append("'").append(iter.next()).append("'");
-
-            if (iter.hasNext()) {
-                buff.append(", ");
-            }
-        }
-
-        buff.append("]");
-
-        return buff.toString();
-    }
-
-    /**
-     * Returns the Set of valid argument values.
-     *
-     * @return Returns the Set of valid argument values.
-     */
-    public Set getValidValues() {
-        return validValues;
-    }
-
-    /**
-     * Specifies the Set of valid argument values.
-     *
-     * @param validValues The Set of valid argument values.
-     */
-    protected void setValidValues(Set validValues) {
-        this.validValues = validValues;
-    }
-}
+/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.  See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License.  You may obtain a copy of the License at * *     http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package org.apache.commons.cli2.validation;import java.util.Iterator;import java.util.List;import java.util.Set;import org.apache.commons.cli2.resource.ResourceConstants;import org.apache.commons.cli2.re
 source.ResourceHelper;/** * The <code>EnumValidator</code> validates the string argument * values are valid. * * The following example shows how to limit the valid values * for the color argument to 'red', 'green', or 'blue'. * * <pre> * Set values = new HashSet(); * values.add("red"); * values.add("green"); * values.add("blue"); * ... * ArgumentBuilder builder = new ArgumentBuilder(); * Argument color = *     builder.withName("color"); *            .withValidator(new EnumValidator(values)); * </pre> * * @author John Keyes */public class EnumValidator implements Validator {    /** List of permitted values */    private Set validValues;    /**     * Creates a new EnumValidator for the specified values.     *     * @param values The list of permitted values     */    public EnumValidator(final Set values) {        setValidValues(values);    }    /**     * Validate the list of values against the list of permitted values.     *     * @see org.apache.commons.cli2.validation.Valid
 ator#validate(java.util.List)     */    public void validate(final List values)        throws InvalidArgumentException {        for (final Iterator iter = values.iterator(); iter.hasNext();) {            final String value = (String) iter.next();            if (!this.validValues.contains(value)) {                throw new InvalidArgumentException(ResourceHelper.getResourceHelper().getMessage(ResourceConstants.ENUM_ILLEGAL_VALUE,                                                                                                 new Object[] {                                                                                                     value,                                                                                                     getValuesAsString()                                                                                                 }));            }        }    }    /**     * Returns the permitted values in a comma separated String     *     * @return 
 String formatted list of values     */    String getValuesAsString() {        final StringBuffer buff = new StringBuffer();        buff.append("[");        for (final Iterator iter = this.validValues.iterator(); iter.hasNext();) {            buff.append("'").append(iter.next()).append("'");            if (iter.hasNext()) {                buff.append(", ");            }        }        buff.append("]");        return buff.toString();    }    /**     * Returns the Set of valid argument values.     *     * @return Returns the Set of valid argument values.     */    public Set getValidValues() {        return validValues;    }    /**     * Specifies the Set of valid argument values.     *     * @param validValues The Set of valid argument values.     */    protected void setValidValues(Set validValues) {        this.validValues = validValues;    }}
\ No newline at end of file

Modified: commons/proper/cli/trunk/src/java/org/apache/commons/cli2/validation/FileValidator.java
URL: http://svn.apache.org/viewvc/commons/proper/cli/trunk/src/java/org/apache/commons/cli2/validation/FileValidator.java?rev=639941&r1=639940&r2=639941&view=diff
==============================================================================
--- commons/proper/cli/trunk/src/java/org/apache/commons/cli2/validation/FileValidator.java (original)
+++ commons/proper/cli/trunk/src/java/org/apache/commons/cli2/validation/FileValidator.java Fri Mar 21 19:49:41 2008
@@ -1,265 +1 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.commons.cli2.validation;
-
-import java.io.File;
-import java.util.List;
-import java.util.ListIterator;
-
-/**
- * The <code>FileValidator</code> validates the string argument
- * values are files.  If the value is a file, the string value in
- * the {@link java.util.List} of values is replaced with the
- * {@link java.io.File} instance.
- *
- * The following attributes can also be specified using the 
- * appropriate settors:
- * <ul>
- *  <li>writable</li>
- *  <li>readable</li>
- *  <li>hidden</li>
- *  <li>existing</li>
- *  <li>is a file</li>
- *  <li>is a directory</li>
- * </ul>
- *
- * The following example shows how to limit the valid values
- * for the config attribute to files that are readable, writeable,
- * and that already existing.
- *
- * <pre>
- * ...
- * ArgumentBuilder builder = new ArgumentBuilder();
- * FileValidator validator = FileValidator.getExistingFileInstance();
- * validator.setReadable(true);
- * validator.setWritable(true);
- * 
- * Argument age = 
- *     builder.withName("config");
- *            .withValidator(validator);
- * </pre>
- * 
- * @author Rob Oxspring
- * @author John Keyes
- */
-public class FileValidator implements Validator {
-
-    /**
-     * Returns a <code>FileValidator</code> for existing files/directories.
-     *
-     * @return a <code>FileValidator</code> for existing files/directories.
-     */
-    public static FileValidator getExistingInstance() {
-        final FileValidator validator = new FileValidator();
-        validator.setExisting(true);
-        return validator;
-    }
-
-    /**
-     * Returns a <code>FileValidator</code> for existing files.
-     *
-     * @return a <code>FileValidator</code> for existing files.
-     */
-    public static FileValidator getExistingFileInstance() {
-        final FileValidator validator = new FileValidator();
-        validator.setExisting(true);
-        validator.setFile(true);
-        return validator;
-    }
-
-    /**
-     * Returns a <code>FileValidator</code> for existing directories.
-     *
-     * @return a <code>FileValidator</code> for existing directories.
-     */
-    public static FileValidator getExistingDirectoryInstance() {
-        final FileValidator validator = new FileValidator();
-        validator.setExisting(true);
-        validator.setDirectory(true);
-        return validator;
-    }
-
-    /** whether the argument value is readable */
-    private boolean readable = false;
-    
-    /** whether the argument value is writable */
-    private boolean writable = false;
-    
-    /** whether the argument value exists */
-    private boolean existing = false;
-    
-    /** whether the argument value is a directory */
-    private boolean directory = false;
-    
-    /** whether the argument value is a file */
-    private boolean file = false;
-
-    /** whether the argument value is a hidden file or directory */
-    private boolean hidden = false;
-
-    /**
-     * Validate the list of values against the list of permitted values.
-     * If a value is valid, replace the string in the <code>values</code>
-     * {@link java.util.List} with the {@link java.io.File} instance.
-     * 
-     * @see org.apache.commons.cli2.validation.Validator#validate(java.util.List)
-     */
-    public void validate(final List values) throws InvalidArgumentException {
-        for (final ListIterator i = values.listIterator(); i.hasNext();) {
-            final String name = (String)i.next();
-            final File f = new File(name);
-
-            if ((existing && !f.exists())
-                || (file && !f.isFile())
-                || (directory && !f.isDirectory())
-                || (hidden && !f.isHidden())
-                || (readable && !f.canRead())
-                || (writable && !f.canWrite())) {
-
-                throw new InvalidArgumentException(name);
-            }
-            
-            i.set(f);
-        }
-    }
-
-    /**
-     * Returns whether the argument values must represent directories.
-     *
-     * @return whether the argument values must represent directories.
-     */
-    public boolean isDirectory() {
-        return directory;
-    }
-
-    /**
-     * Specifies whether the argument values must represent directories.
-     *
-     * @param directory specifies whether the argument values must 
-     * represent directories.
-     */
-    public void setDirectory(boolean directory) {
-        this.directory = directory;
-    }
-
-    /**
-     * Returns whether the argument values must represent existing 
-     * files/directories.
-     *
-     * @return whether the argument values must represent existing 
-     * files/directories.
-     */
-    public boolean isExisting() {
-        return existing;
-    }
-
-    /**
-     * Specifies whether the argument values must represent existing 
-     * files/directories.
-     *
-     * @param existing specifies whether the argument values must 
-     * represent existing files/directories.
-     */
-    public void setExisting(boolean existing) {
-        this.existing = existing;
-    }
-
-    /**
-     * Returns whether the argument values must represent directories.
-     *
-     * @return whether the argument values must represent directories.
-     */
-    public boolean isFile() {
-        return file;
-    }
-
-    /**
-     * Specifies whether the argument values must represent files.
-     *
-     * @param file specifies whether the argument values must 
-     * represent files.
-     */
-    public void setFile(boolean file) {
-        this.file = file;
-    }
-
-    /**
-     * Returns whether the argument values must represent hidden 
-     * files/directories.
-     *
-     * @return whether the argument values must represent hidden 
-     * files/directories.
-     */
-    public boolean isHidden() {
-        return hidden;
-    }
-
-    /**
-     * Specifies whether the argument values must represent hidden 
-     * files/directories.
-     *
-     * @param hidden specifies whether the argument values must 
-     * represent hidden files/directories.
-     */
-    public void setHidden(boolean hidden) {
-        this.hidden = hidden;
-    }
-
-    /**
-     * Returns whether the argument values must represent readable 
-     * files/directories.
-     *
-     * @return whether the argument values must represent readable 
-     * files/directories.
-     */
-    public boolean isReadable() {
-        return readable;
-    }
-
-    /**
-     * Specifies whether the argument values must represent readable 
-     * files/directories.
-     *
-     * @param readable specifies whether the argument values must 
-     * represent readable files/directories.
-     */
-    public void setReadable(boolean readable) {
-        this.readable = readable;
-    }
-
-    /**
-     * Returns whether the argument values must represent writable 
-     * files/directories.
-     *
-     * @return whether the argument values must represent writable 
-     * files/directories.
-     */
-    public boolean isWritable() {
-        return writable;
-    }
-
-    /**
-     * Specifies whether the argument values must represent writable 
-     * files/directories.
-     *
-     * @param writable specifies whether the argument values must 
-     * represent writable files/directories.
-     */
-    public void setWritable(boolean writable) {
-        this.writable = writable;
-    }
-}
+/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.  See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License.  You may obtain a copy of the License at * *     http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package org.apache.commons.cli2.validation;import java.io.File;import java.util.List;import java.util.ListIterator;/** * The <code>FileValidator</code> validates the string argument * values are files.  
 If the value is a file, the string value in * the {@link java.util.List} of values is replaced with the * {@link java.io.File} instance. * * The following attributes can also be specified using the * appropriate settors: * <ul> *  <li>writable</li> *  <li>readable</li> *  <li>hidden</li> *  <li>existing</li> *  <li>is a file</li> *  <li>is a directory</li> * </ul> * * The following example shows how to limit the valid values * for the config attribute to files that are readable, writeable, * and that already existing. * * <pre> * ... * ArgumentBuilder builder = new ArgumentBuilder(); * FileValidator validator = FileValidator.getExistingFileInstance(); * validator.setReadable(true); * validator.setWritable(true); * * Argument age = *     builder.withName("config"); *            .withValidator(validator); * </pre> * * @author Rob Oxspring * @author John Keyes */public class FileValidator implements Validator {    /**     * Returns a <code>FileValidator</code> for existing file
 s/directories.     *     * @return a <code>FileValidator</code> for existing files/directories.     */    public static FileValidator getExistingInstance() {        final FileValidator validator = new FileValidator();        validator.setExisting(true);        return validator;    }    /**     * Returns a <code>FileValidator</code> for existing files.     *     * @return a <code>FileValidator</code> for existing files.     */    public static FileValidator getExistingFileInstance() {        final FileValidator validator = new FileValidator();        validator.setExisting(true);        validator.setFile(true);        return validator;    }    /**     * Returns a <code>FileValidator</code> for existing directories.     *     * @return a <code>FileValidator</code> for existing directories.     */    public static FileValidator getExistingDirectoryInstance() {        final FileValidator validator = new FileValidator();        validator.setExisting(true);        validator.setDire
 ctory(true);        return validator;    }    /** whether the argument value is readable */    private boolean readable = false;    /** whether the argument value is writable */    private boolean writable = false;    /** whether the argument value exists */    private boolean existing = false;    /** whether the argument value is a directory */    private boolean directory = false;    /** whether the argument value is a file */    private boolean file = false;    /** whether the argument value is a hidden file or directory */    private boolean hidden = false;    /**     * Validate the list of values against the list of permitted values.     * If a value is valid, replace the string in the <code>values</code>     * {@link java.util.List} with the {@link java.io.File} instance.     *     * @see org.apache.commons.cli2.validation.Validator#validate(java.util.List)     */    public void validate(final List values) throws InvalidArgumentException {        for (final ListIterato
 r i = values.listIterator(); i.hasNext();) {            final String name = (String)i.next();            final File f = new File(name);            if ((existing && !f.exists())                || (file && !f.isFile())                || (directory && !f.isDirectory())                || (hidden && !f.isHidden())                || (readable && !f.canRead())                || (writable && !f.canWrite())) {                throw new InvalidArgumentException(name);            }            i.set(f);        }    }    /**     * Returns whether the argument values must represent directories.     *     * @return whether the argument values must represent directories.     */    public boolean isDirectory() {        return directory;    }    /**     * Specifies whether the argument values must represent directories.     *     * @param directory specifies whether the argument values must     * represent directories.     */    public void setDirectory(boolean directory) {        this.directo
 ry = directory;    }    /**     * Returns whether the argument values must represent existing     * files/directories.     *     * @return whether the argument values must represent existing     * files/directories.     */    public boolean isExisting() {        return existing;    }    /**     * Specifies whether the argument values must represent existing     * files/directories.     *     * @param existing specifies whether the argument values must     * represent existing files/directories.     */    public void setExisting(boolean existing) {        this.existing = existing;    }    /**     * Returns whether the argument values must represent directories.     *     * @return whether the argument values must represent directories.     */    public boolean isFile() {        return file;    }    /**     * Specifies whether the argument values must represent files.     *     * @param file specifies whether the argument values must     * represent files.     */    public voi
 d setFile(boolean file) {        this.file = file;    }    /**     * Returns whether the argument values must represent hidden     * files/directories.     *     * @return whether the argument values must represent hidden     * files/directories.     */    public boolean isHidden() {        return hidden;    }    /**     * Specifies whether the argument values must represent hidden     * files/directories.     *     * @param hidden specifies whether the argument values must     * represent hidden files/directories.     */    public void setHidden(boolean hidden) {        this.hidden = hidden;    }    /**     * Returns whether the argument values must represent readable     * files/directories.     *     * @return whether the argument values must represent readable     * files/directories.     */    public boolean isReadable() {        return readable;    }    /**     * Specifies whether the argument values must represent readable     * files/directories.     *     * @param r
 eadable specifies whether the argument values must     * represent readable files/directories.     */    public void setReadable(boolean readable) {        this.readable = readable;    }    /**     * Returns whether the argument values must represent writable     * files/directories.     *     * @return whether the argument values must represent writable     * files/directories.     */    public boolean isWritable() {        return writable;    }    /**     * Specifies whether the argument values must represent writable     * files/directories.     *     * @param writable specifies whether the argument values must     * represent writable files/directories.     */    public void setWritable(boolean writable) {        this.writable = writable;    }}
\ No newline at end of file

Modified: commons/proper/cli/trunk/src/java/org/apache/commons/cli2/validation/InvalidArgumentException.java
URL: http://svn.apache.org/viewvc/commons/proper/cli/trunk/src/java/org/apache/commons/cli2/validation/InvalidArgumentException.java?rev=639941&r1=639940&r2=639941&view=diff
==============================================================================
--- commons/proper/cli/trunk/src/java/org/apache/commons/cli2/validation/InvalidArgumentException.java (original)
+++ commons/proper/cli/trunk/src/java/org/apache/commons/cli2/validation/InvalidArgumentException.java Fri Mar 21 19:49:41 2008
@@ -1,34 +1 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.commons.cli2.validation;
-
-/**
- * An exception indicating validation failure.
- *
- * @author Rob Oxspring
- * @author John Keyes
- */
-public class InvalidArgumentException extends Exception {
-
-    /**
-     * Creates a new exception
-     * @param message the reason for failure
-     */
-    public InvalidArgumentException(final String message) {
-        super(message);
-    }
-}
+/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.  See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License.  You may obtain a copy of the License at * *     http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package org.apache.commons.cli2.validation;/** * An exception indicating validation failure. * * @author Rob Oxspring * @author John Keyes */public class InvalidArgumentException extends Exception {    /
 **     * Creates a new exception     * @param message the reason for failure     */    public InvalidArgumentException(final String message) {        super(message);    }}
\ No newline at end of file

Modified: commons/proper/cli/trunk/src/java/org/apache/commons/cli2/validation/NumberValidator.java
URL: http://svn.apache.org/viewvc/commons/proper/cli/trunk/src/java/org/apache/commons/cli2/validation/NumberValidator.java?rev=639941&r1=639940&r2=639941&view=diff
==============================================================================
--- commons/proper/cli/trunk/src/java/org/apache/commons/cli2/validation/NumberValidator.java (original)
+++ commons/proper/cli/trunk/src/java/org/apache/commons/cli2/validation/NumberValidator.java Fri Mar 21 19:49:41 2008
@@ -1,200 +1 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.commons.cli2.validation;
-
-import java.text.NumberFormat;
-import java.text.ParsePosition;
-
-import java.util.List;
-import java.util.ListIterator;
-
-import org.apache.commons.cli2.resource.ResourceConstants;
-import org.apache.commons.cli2.resource.ResourceHelper;
-
-/**
- * The <code>NumberValidator</code> validates the string argument
- * values are numbers.  If the value is a number, the string value in
- * the {@link java.util.List} of values is replaced with the
- * {@link java.lang.Number} instance.
- *
- * A maximum and minimum value can also be specified using
- * the {@link #setMaximum setMaximum}, and the
- * {@link #setMinimum setMinimum} methods.
- *
- * The following example shows how to limit the valid values
- * for the age attribute to integers less than 100.
- *
- * <pre>
- * ...
- * ArgumentBuilder builder = new ArgumentBuilder();
- * NumberValidator validator = NumberValidator.getIntegerInstance();
- * validator.setMaximum(new Integer(100));
- *
- * Argument age =
- *     builder.withName("age");
- *            .withValidator(validator);
- * </pre>
- *
- * @author Rob Oxspring
- * @author John Keyes
- */
-public class NumberValidator implements Validator {
-    /** the <code>NumberFormat</code> being used. */
-    private NumberFormat format;
-
-    /** the lower bound for argument values. */
-    private Number minimum = null;
-
-    /** the upper bound for argument values */
-    private Number maximum = null;
-
-    /**
-     * Creates a new NumberValidator based on the specified NumberFormat
-     * @param format the format of numbers to accept
-     */
-    public NumberValidator(final NumberFormat format) {
-        setFormat(format);
-    }
-
-    /**
-     * Returns a <code>NumberValidator</code> for a currency format
-     * for the current default locale.
-     * @return a <code>NumberValidator</code> for a currency format
-     * for the current default locale.
-     */
-    public static NumberValidator getCurrencyInstance() {
-        return new NumberValidator(NumberFormat.getCurrencyInstance());
-    }
-
-    /**
-     * Returns a <code>NumberValidator</code> for an integer number format
-     * for the current default locale.
-     * @return a <code>NumberValidator</code> for an integer number format
-     * for the current default locale.
-     */
-    public static NumberValidator getIntegerInstance() {
-        final NumberFormat format = NumberFormat.getNumberInstance();
-        format.setParseIntegerOnly(true);
-
-        return new NumberValidator(format);
-    }
-
-    /**
-     * Returns a <code>NumberValidator</code> for a percentage format
-     * for the current default locale.
-     * @return a <code>NumberValidator</code> for a percentage format
-     * for the current default locale.
-     */
-    public static NumberValidator getPercentInstance() {
-        return new NumberValidator(NumberFormat.getPercentInstance());
-    }
-
-    /**
-     * Returns a <code>NumberValidator</code> for a general-purpose
-     * number format for the current default locale.
-     * @return a <code>NumberValidator</code> for a general-purpose
-     * number format for the current default locale.
-     */
-    public static NumberValidator getNumberInstance() {
-        return new NumberValidator(NumberFormat.getNumberInstance());
-    }
-
-    /**
-     * Validate the list of values against the list of permitted values.
-     * If a value is valid, replace the string in the <code>values</code>
-     * {@link java.util.List} with the {@link java.lang.Number} instance.
-     *
-     * @see org.apache.commons.cli2.validation.Validator#validate(java.util.List)
-     */
-    public void validate(final List values)
-        throws InvalidArgumentException {
-        for (final ListIterator i = values.listIterator(); i.hasNext();) {
-            final String value = (String) i.next();
-
-            final ParsePosition pp = new ParsePosition(0);
-            final Number number = format.parse(value, pp);
-
-            if (pp.getIndex() < value.length()) {
-                throw new InvalidArgumentException(value);
-            }
-
-            if (((minimum != null) && (number.doubleValue() < minimum.doubleValue())) ||
-                    ((maximum != null) && (number.doubleValue() > maximum.doubleValue()))) {
-                throw new InvalidArgumentException(ResourceHelper.getResourceHelper().getMessage(ResourceConstants.NUMBERVALIDATOR_NUMBER_OUTOFRANGE,
-                                                                                                 new Object[] {
-                                                                                                     value
-                                                                                                 }));
-            }
-
-            i.set(number);
-        }
-    }
-
-    /**
-     * Return the format being used to validate argument values against.
-     *
-     * @return the format being used to validate argument values against.
-     */
-    public NumberFormat getFormat() {
-        return format;
-    }
-
-    /**
-     * Specify the format being used to validate argument values against.
-     *
-     * @param format the format being used to validate argument values against.
-     */
-    protected void setFormat(NumberFormat format) {
-        this.format = format;
-    }
-
-    /**
-     * Return the maximum value allowed for an argument value.
-     *
-     * @return the maximum value allowed for an argument value.
-     */
-    public Number getMaximum() {
-        return maximum;
-    }
-
-    /**
-     * Specify the maximum value allowed for an argument value.
-     *
-     * @param maximum the maximum value allowed for an argument value.
-     */
-    public void setMaximum(Number maximum) {
-        this.maximum = maximum;
-    }
-
-    /**
-     * Return the minimum value allowed for an argument value.
-     *
-     * @return the minimum value allowed for an argument value.
-     */
-    public Number getMinimum() {
-        return minimum;
-    }
-
-    /**
-     * Specify the minimum value allowed for an argument value.
-     *
-     * @param minimum the minimum value allowed for an argument value.
-     */
-    public void setMinimum(Number minimum) {
-        this.minimum = minimum;
-    }
-}
+/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.  See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License.  You may obtain a copy of the License at * *     http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package org.apache.commons.cli2.validation;import java.text.NumberFormat;import java.text.ParsePosition;import java.util.List;import java.util.ListIterator;import org.apache.commons.cli2.resource.Resourc
 eConstants;import org.apache.commons.cli2.resource.ResourceHelper;/** * The <code>NumberValidator</code> validates the string argument * values are numbers.  If the value is a number, the string value in * the {@link java.util.List} of values is replaced with the * {@link java.lang.Number} instance. * * A maximum and minimum value can also be specified using * the {@link #setMaximum setMaximum}, and the * {@link #setMinimum setMinimum} methods. * * The following example shows how to limit the valid values * for the age attribute to integers less than 100. * * <pre> * ... * ArgumentBuilder builder = new ArgumentBuilder(); * NumberValidator validator = NumberValidator.getIntegerInstance(); * validator.setMaximum(new Integer(100)); * * Argument age = *     builder.withName("age"); *            .withValidator(validator); * </pre> * * @author Rob Oxspring * @author John Keyes */public class NumberValidator implements Validator {    /** the <code>NumberFormat</code> being used. */
     private NumberFormat format;    /** the lower bound for argument values. */    private Number minimum = null;    /** the upper bound for argument values */    private Number maximum = null;    /**     * Creates a new NumberValidator based on the specified NumberFormat     * @param format the format of numbers to accept     */    public NumberValidator(final NumberFormat format) {        setFormat(format);    }    /**     * Returns a <code>NumberValidator</code> for a currency format     * for the current default locale.     * @return a <code>NumberValidator</code> for a currency format     * for the current default locale.     */    public static NumberValidator getCurrencyInstance() {        return new NumberValidator(NumberFormat.getCurrencyInstance());    }    /**     * Returns a <code>NumberValidator</code> for an integer number format     * for the current default locale.     * @return a <code>NumberValidator</code> for an integer number format     * for the current
  default locale.     */    public static NumberValidator getIntegerInstance() {        final NumberFormat format = NumberFormat.getNumberInstance();        format.setParseIntegerOnly(true);        return new NumberValidator(format);    }    /**     * Returns a <code>NumberValidator</code> for a percentage format     * for the current default locale.     * @return a <code>NumberValidator</code> for a percentage format     * for the current default locale.     */    public static NumberValidator getPercentInstance() {        return new NumberValidator(NumberFormat.getPercentInstance());    }    /**     * Returns a <code>NumberValidator</code> for a general-purpose     * number format for the current default locale.     * @return a <code>NumberValidator</code> for a general-purpose     * number format for the current default locale.     */    public static NumberValidator getNumberInstance() {        return new NumberValidator(NumberFormat.getNumberInstance());    }    /**     
 * Validate the list of values against the list of permitted values.     * If a value is valid, replace the string in the <code>values</code>     * {@link java.util.List} with the {@link java.lang.Number} instance.     *     * @see org.apache.commons.cli2.validation.Validator#validate(java.util.List)     */    public void validate(final List values)        throws InvalidArgumentException {        for (final ListIterator i = values.listIterator(); i.hasNext();) {            final String value = (String) i.next();            final ParsePosition pp = new ParsePosition(0);            final Number number = format.parse(value, pp);            if (pp.getIndex() < value.length()) {                throw new InvalidArgumentException(value);            }            if (((minimum != null) && (number.doubleValue() < minimum.doubleValue())) ||                    ((maximum != null) && (number.doubleValue() > maximum.doubleValue()))) {                throw new InvalidArgumentException(Resour
 ceHelper.getResourceHelper().getMessage(ResourceConstants.NUMBERVALIDATOR_NUMBER_OUTOFRANGE,                                                                                                 new Object[] {                                                                                                     value                                                                                                 }));            }            i.set(number);        }    }    /**     * Return the format being used to validate argument values against.     *     * @return the format being used to validate argument values against.     */    public NumberFormat getFormat() {        return format;    }    /**     * Specify the format being used to validate argument values against.     *     * @param format the format being used to validate argument values against.     */    protected void setFormat(NumberFormat format) {        this.format = format;    }    /**     * Return the maximum value a
 llowed for an argument value.     *     * @return the maximum value allowed for an argument value.     */    public Number getMaximum() {        return maximum;    }    /**     * Specify the maximum value allowed for an argument value.     *     * @param maximum the maximum value allowed for an argument value.     */    public void setMaximum(Number maximum) {        this.maximum = maximum;    }    /**     * Return the minimum value allowed for an argument value.     *     * @return the minimum value allowed for an argument value.     */    public Number getMinimum() {        return minimum;    }    /**     * Specify the minimum value allowed for an argument value.     *     * @param minimum the minimum value allowed for an argument value.     */    public void setMinimum(Number minimum) {        this.minimum = minimum;    }}
\ No newline at end of file

Modified: commons/proper/cli/trunk/src/java/org/apache/commons/cli2/validation/UrlValidator.java
URL: http://svn.apache.org/viewvc/commons/proper/cli/trunk/src/java/org/apache/commons/cli2/validation/UrlValidator.java?rev=639941&r1=639940&r2=639941&view=diff
==============================================================================
--- commons/proper/cli/trunk/src/java/org/apache/commons/cli2/validation/UrlValidator.java (original)
+++ commons/proper/cli/trunk/src/java/org/apache/commons/cli2/validation/UrlValidator.java Fri Mar 21 19:49:41 2008
@@ -1,115 +1 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.commons.cli2.validation;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import java.util.List;
-import java.util.ListIterator;
-
-import org.apache.commons.cli2.resource.ResourceConstants;
-import org.apache.commons.cli2.resource.ResourceHelper;
-
-/**
- * The <code>UrlValidator</code> validates the string argument
- * values are URLs.  If the value is a URL, the string value in
- * the {@link java.util.List} of values is replaced with the
- * {@link java.net.URL} instance.
- *
- * URLs can also be validated based on their scheme by using
- * the {@link #setProtocol setProtocol} method, or by using the specified
- * {@link #UrlValidator(java.lang.String) constructor}.
- *
- * The following example shows how to limit the valid values
- * for the site argument to 'https' URLs.
- *
- * <pre>
- * ...
- * ArgumentBuilder builder = new ArgumentBuilder();
- * Argument site =
- *     builder.withName("site");
- *            .withValidator(new URLValidator("https"));
- * </pre>
- *
- * @author Rob Oxspring
- * @author John Keyes
- */
-public class UrlValidator implements Validator {
-    /** allowed protocol */
-    private String protocol = null;
-
-    /**
-     * Creates a UrlValidator.
-     */
-    public UrlValidator() {
-    }
-
-    /**
-     * Creates a UrlValidator for the specified protocol.
-     */
-    public UrlValidator(final String protocol) {
-        setProtocol(protocol);
-    }
-
-    /**
-     * Validate the list of values against the list of permitted values.
-     * If a value is valid, replace the string in the <code>values</code>
-     * {@link java.util.List} with the { java.net.URL} instance.
-     *
-     * @see org.apache.commons.cli2.validation.Validator#validate(java.util.List)
-     */
-    public void validate(final List values)
-        throws InvalidArgumentException {
-        for (final ListIterator i = values.listIterator(); i.hasNext();) {
-            final String name = (String) i.next();
-
-            try {
-                final URL url = new URL(name);
-
-                if ((protocol != null) && !protocol.equals(url.getProtocol())) {
-                    throw new InvalidArgumentException(name);
-                }
-
-                i.set(url);
-            } catch (final MalformedURLException mue) {
-                throw new InvalidArgumentException(ResourceHelper.getResourceHelper().getMessage(ResourceConstants.URLVALIDATOR_MALFORMED_URL,
-                                                                                                 new Object[] {
-                                                                                                     name
-                                                                                                 }));
-            }
-        }
-    }
-
-    /**
-     * Returns the protocol that must be used by a valid URL.
-     *
-     * @return the protocol that must be used by a valid URL.
-     */
-    public String getProtocol() {
-        return protocol;
-    }
-
-    /**
-     * Specifies the protocol that a URL must have to be valid.
-     *
-     * @param protocol the protocol that a URL must have to be valid.
-     */
-    public void setProtocol(String protocol) {
-        this.protocol = protocol;
-    }
-}
+/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.  See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License.  You may obtain a copy of the License at * *     http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package org.apache.commons.cli2.validation;import java.net.MalformedURLException;import java.net.URL;import java.util.List;import java.util.ListIterator;import org.apache.commons.cli2.resource.ResourceCo
 nstants;import org.apache.commons.cli2.resource.ResourceHelper;/** * The <code>UrlValidator</code> validates the string argument * values are URLs.  If the value is a URL, the string value in * the {@link java.util.List} of values is replaced with the * {@link java.net.URL} instance. * * URLs can also be validated based on their scheme by using * the {@link #setProtocol setProtocol} method, or by using the specified * {@link #UrlValidator(java.lang.String) constructor}. * * The following example shows how to limit the valid values * for the site argument to 'https' URLs. * * <pre> * ... * ArgumentBuilder builder = new ArgumentBuilder(); * Argument site = *     builder.withName("site"); *            .withValidator(new URLValidator("https")); * </pre> * * @author Rob Oxspring * @author John Keyes */public class UrlValidator implements Validator {    /** allowed protocol */    private String protocol = null;    /**     * Creates a UrlValidator.     */    public UrlValidator() {
     }    /**     * Creates a UrlValidator for the specified protocol.     */    public UrlValidator(final String protocol) {        setProtocol(protocol);    }    /**     * Validate the list of values against the list of permitted values.     * If a value is valid, replace the string in the <code>values</code>     * {@link java.util.List} with the { java.net.URL} instance.     *     * @see org.apache.commons.cli2.validation.Validator#validate(java.util.List)     */    public void validate(final List values)        throws InvalidArgumentException {        for (final ListIterator i = values.listIterator(); i.hasNext();) {            final String name = (String) i.next();            try {                final URL url = new URL(name);                if ((protocol != null) && !protocol.equals(url.getProtocol())) {                    throw new InvalidArgumentException(name);                }                i.set(url);            } catch (final MalformedURLException mue) {         
        throw new InvalidArgumentException(ResourceHelper.getResourceHelper().getMessage(ResourceConstants.URLVALIDATOR_MALFORMED_URL,                                                                                                 new Object[] {                                                                                                     name                                                                                                 }));            }        }    }    /**     * Returns the protocol that must be used by a valid URL.     *     * @return the protocol that must be used by a valid URL.     */    public String getProtocol() {        return protocol;    }    /**     * Specifies the protocol that a URL must have to be valid.     *     * @param protocol the protocol that a URL must have to be valid.     */    public void setProtocol(String protocol) {        this.protocol = protocol;    }}
\ No newline at end of file

Modified: commons/proper/cli/trunk/src/java/org/apache/commons/cli2/validation/Validator.java
URL: http://svn.apache.org/viewvc/commons/proper/cli/trunk/src/java/org/apache/commons/cli2/validation/Validator.java?rev=639941&r1=639940&r2=639941&view=diff
==============================================================================
--- commons/proper/cli/trunk/src/java/org/apache/commons/cli2/validation/Validator.java (original)
+++ commons/proper/cli/trunk/src/java/org/apache/commons/cli2/validation/Validator.java Fri Mar 21 19:49:41 2008
@@ -1,43 +1 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.commons.cli2.validation;
-
-import java.util.List;
-
-/**
- * The validation interface for validating argument values(s).
- *
- * A validator can replace the argument string value with a
- * specific class instance e.g. the {@link UrlValidator} replaces
- * the string value with a {@link java.net.URL} instance.
- *
- * @author Rob Oxspring
- * @author John Keyes
- */
-public interface Validator {
-
-    /**
-     * Validate the specified values (List of Strings).
-     * 
-     * @param values The values to validate.
-     * 
-     * @throws InvalidArgumentException If any of the 
-     * specified values are not valid.
-     */
-    void validate(final List values) throws InvalidArgumentException;
-
-}
+/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.  See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License.  You may obtain a copy of the License at * *     http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package org.apache.commons.cli2.validation;import java.util.List;/** * The validation interface for validating argument values(s). * * A validator can replace the argument string value with a * specific 
 class instance e.g. the {@link UrlValidator} replaces * the string value with a {@link java.net.URL} instance. * * @author Rob Oxspring * @author John Keyes */public interface Validator {    /**     * Validate the specified values (List of Strings).     *     * @param values The values to validate.     *     * @throws InvalidArgumentException If any of the     * specified values are not valid.     */    void validate(final List values) throws InvalidArgumentException;}
\ No newline at end of file

Modified: commons/proper/cli/trunk/src/test/org/apache/commons/cli2/CLITestCase.java
URL: http://svn.apache.org/viewvc/commons/proper/cli/trunk/src/test/org/apache/commons/cli2/CLITestCase.java?rev=639941&r1=639940&r2=639941&view=diff
==============================================================================
--- commons/proper/cli/trunk/src/test/org/apache/commons/cli2/CLITestCase.java (original)
+++ commons/proper/cli/trunk/src/test/org/apache/commons/cli2/CLITestCase.java Fri Mar 21 19:49:41 2008
@@ -1,85 +1 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.commons.cli2;
-
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-public abstract class CLITestCase extends TestCase {
-
-	public static List list() {
-	    return Collections.EMPTY_LIST;
-	}
-
-	public static List list(final Object args[]) {
-	    return new LinkedList(Arrays.asList(args));
-	}
-
-	public static List list(final Object arg0) {
-	    return list(new Object[] { arg0 });
-	}
-
-	public static List list(final Object arg0, final Object arg1) {
-	    return list(new Object[] { arg0, arg1 });
-	}
-
-	public static List list(final Object arg0, final Object arg1, final Object arg2) {
-	    return list(new Object[] { arg0, arg1, arg2 });
-	}
-
-	public static List list(final Object arg0, final Object arg1, final Object arg2, final Object arg3) {
-	    return list(new Object[] { arg0, arg1, arg2, arg3 });
-	}
-
-	public static List list(final Object arg0, final Object arg1, final Object arg2, final Object arg3, final Object arg4) {
-	    return list(new Object[] { arg0, arg1, arg2, arg3, arg4 });
-	}
-
-	public static List list(final Object arg0, final Object arg1, final Object arg2, final Object arg3, final Object arg4, final Object arg5) {
-	    return list(new Object[] { arg0, arg1, arg2, arg3, arg4, arg5 });
-	}
-
-	public static void assertListContentsEqual(final List expected, final List found) {
-	
-	    final Iterator e = expected.iterator();
-	    final Iterator f = found.iterator();
-	
-	    while (e.hasNext() && f.hasNext()) {
-	        assertEquals(e.next(), f.next());
-	    }
-	
-	    if (e.hasNext()) {
-	        fail("Expected more elements");
-	    }
-	
-	    if (f.hasNext()) {
-	        fail("Found more elements");
-	    }
-	}
-
-	public static void assertContentsEqual(final Collection expected, final Collection found) {
-	    assertTrue(expected.containsAll(found));
-	    assertTrue(found.containsAll(expected));
-	    assertEquals(expected.size(), found.size());
-	}
-}
+/** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.  See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License.  You may obtain a copy of the License at * *     http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package org.apache.commons.cli2;import java.util.Arrays;import java.util.Collection;import java.util.Collections;import java.util.Iterator;import java.util.LinkedList;import java.util.List;import junit.
 framework.TestCase;public abstract class CLITestCase extends TestCase {	public static List list() {	    return Collections.EMPTY_LIST;	}	public static List list(final Object args[]) {	    return new LinkedList(Arrays.asList(args));	}	public static List list(final Object arg0) {	    return list(new Object[] { arg0 });	}	public static List list(final Object arg0, final Object arg1) {	    return list(new Object[] { arg0, arg1 });	}	public static List list(final Object arg0, final Object arg1, final Object arg2) {	    return list(new Object[] { arg0, arg1, arg2 });	}	public static List list(final Object arg0, final Object arg1, final Object arg2, final Object arg3) {	    return list(new Object[] { arg0, arg1, arg2, arg3 });	}	public static List list(final Object arg0, final Object arg1, final Object arg2, final Object arg3, final Object arg4) {	    return list(new Object[] { arg0, arg1, arg2, arg3, arg4 });	}	public static List list(final Object arg0, final Object arg1, final Ob
 ject arg2, final Object arg3, final Object arg4, final Object arg5) {	    return list(new Object[] { arg0, arg1, arg2, arg3, arg4, arg5 });	}	public static void assertListContentsEqual(final List expected, final List found) {	    final Iterator e = expected.iterator();	    final Iterator f = found.iterator();	    while (e.hasNext() && f.hasNext()) {	        assertEquals(e.next(), f.next());	    }	    if (e.hasNext()) {	        fail("Expected more elements");	    }	    if (f.hasNext()) {	        fail("Found more elements");	    }	}	public static void assertContentsEqual(final Collection expected, final Collection found) {	    assertTrue(expected.containsAll(found));	    assertTrue(found.containsAll(expected));	    assertEquals(expected.size(), found.size());	}}
\ No newline at end of file