jkeyes      2003/10/20 14:40:44

  Modified:    cli/src/java/org/apache/commons/cli2/validation
                        UrlValidator.java FileValidator.java
                        DateValidator.java NumberValidator.java
                        InvalidArgumentException.java ClassValidator.java
  Log:
  
- added Apache license
- fixed author tag
  
  Revision  Changes    Path
  1.2       +109 -58   
jakarta-commons-sandbox/cli/src/java/org/apache/commons/cli2/validation/UrlValidator.java
  
  Index: UrlValidator.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/cli/src/java/org/apache/commons/cli2/validation/UrlValidator.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- UrlValidator.java 18 Oct 2003 22:00:17 -0000      1.1
  +++ UrlValidator.java 20 Oct 2003 21:40:44 -0000      1.2
  @@ -1,58 +1,109 @@
  -/*
  - * Created on 25-Aug-2003
  - *
  - * To change the template for this generated file go to
  - * Window - Preferences - Java - Code Generation - Code and Comments
  - */
  -package org.apache.commons.cli2.validation;
  -
  -import java.net.MalformedURLException;
  -import java.net.URL;
  -import java.util.List;
  -import java.util.ListIterator;
  -
  -/**
  - * @author Rob
  - *
  - * To change the template for this generated type comment go to
  - * Window - Preferences - Java - Code Generation - Code and Comments
  - */
  -public class UrlValidator implements Validator {
  -
  -     private String protocol = null;
  -
  -     /* (non-Javadoc)
  -      * @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(
  -                                     "Cannot understand url: " + name);
  -                     }
  -             }
  -     }
  -
  -     /**
  -      * @return
  -      */
  -     public String getProtocol() {
  -             return protocol;
  -     }
  -
  -     /**
  -      * @param protocol
  -      */
  -     public void setProtocol(String protocol) {
  -             this.protocol = protocol;
  -     }
  -}
  +/*
  + * $Header$
  + * $Revision$
  + * $Date$
  + *
  + * ====================================================================
  + *
  + * The Apache Software License, Version 1.1
  + *
  + * Copyright (c) 2003 The Apache Software Foundation.  All rights
  + * reserved.
  + *
  + * Redistribution and use in source and binary forms, with or without
  + * modification, are permitted provided that the following conditions
  + * are met:
  + *
  + * 1. Redistributions of source code must retain the above copyright
  + *    notice, this list of conditions and the following disclaimer.
  + *
  + * 2. Redistributions in binary form must reproduce the above copyright
  + *    notice, this list of conditions and the following disclaimer in
  + *    the documentation and/or other materials provided with the
  + *    distribution.
  + *
  + * 3. The end-user documentation included with the redistribution, if
  + *    any, must include the following acknowlegement:
  + *       "This product includes software developed by the
  + *        Apache Software Foundation (http://www.apache.org/)."
  + *    Alternately, this acknowlegement may appear in the software itself,
  + *    if and wherever such third-party acknowlegements normally appear.
  + *
  + * 4. The names "The Jakarta Project", "Commons", and "Apache Software
  + *    Foundation" must not be used to endorse or promote products derived
  + *    from this software without prior written permission. For written
  + *    permission, please contact [EMAIL PROTECTED]
  + *
  + * 5. Products derived from this software may not be called "Apache"
  + *    nor may "Apache" appear in their names without prior written
  + *    permission of the Apache GroupImpl.
  + *
  + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  + * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  + * SUCH DAMAGE.
  + * ====================================================================
  + *
  + * This software consists of voluntary contributions made by many
  + * individuals on behalf of the Apache Software Foundation.  For more
  + * information on the Apache Software Foundation, please see
  + * <http://www.apache.org/>.
  + *
  + */
  +package org.apache.commons.cli2.validation;
  +
  +import java.net.MalformedURLException;
  +import java.net.URL;
  +import java.util.List;
  +import java.util.ListIterator;
  +
  +/**
  + * @author Rob Oxspring
  + */
  +public class UrlValidator implements Validator {
  +
  +     private String protocol = null;
  +
  +     /* (non-Javadoc)
  +      * @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(
  +                                     "Cannot understand url: " + name);
  +                     }
  +             }
  +     }
  +
  +     /**
  +      * @return
  +      */
  +     public String getProtocol() {
  +             return protocol;
  +     }
  +
  +     /**
  +      * @param protocol
  +      */
  +     public void setProtocol(String protocol) {
  +             this.protocol = protocol;
  +     }
  +}
  
  
  
  1.2       +204 -153  
jakarta-commons-sandbox/cli/src/java/org/apache/commons/cli2/validation/FileValidator.java
  
  Index: FileValidator.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/cli/src/java/org/apache/commons/cli2/validation/FileValidator.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- FileValidator.java        18 Oct 2003 22:00:17 -0000      1.1
  +++ FileValidator.java        20 Oct 2003 21:40:44 -0000      1.2
  @@ -1,153 +1,204 @@
  -/*
  - * Created on 25-Aug-2003
  - *
  - * To change the template for this generated file go to
  - * Window - Preferences - Java - Code Generation - Code and Comments
  - */
  -package org.apache.commons.cli2.validation;
  -
  -import java.io.File;
  -import java.util.List;
  -import java.util.ListIterator;
  -
  -/**
  - * @author Rob
  - *
  - * To change the template for this generated type comment go to
  - * Window - Preferences - Java - Code Generation - Code and Comments
  - */
  -public class FileValidator implements Validator {
  -
  -     public static FileValidator getExistingInstance() {
  -             final FileValidator validator = new FileValidator();
  -             validator.setExisting(true);
  -             return validator;
  -     }
  -
  -     public static FileValidator getExistingFileInstance() {
  -             final FileValidator validator = new FileValidator();
  -             validator.setExisting(true);
  -             validator.setFile(true);
  -             return validator;
  -     }
  -
  -     public static FileValidator getExistingDirectoryInstance() {
  -             final FileValidator validator = new FileValidator();
  -             validator.setExisting(true);
  -             validator.setDirectory(true);
  -             return validator;
  -     }
  -
  -     private boolean readable = false;
  -     private boolean writable = false;
  -     private boolean existing = false;
  -     private boolean directory = false;
  -     private boolean file = false;
  -     private boolean hidden = false;
  -
  -     /* (non-Javadoc)
  -      * @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);
  -                     } else {
  -                             i.set(f);
  -                     }
  -             }
  -     }
  -
  -     /**
  -      * @return
  -      */
  -     public boolean isDirectory() {
  -             return directory;
  -     }
  -
  -     /**
  -      * @param directory
  -      */
  -     public void setDirectory(boolean directory) {
  -             this.directory = directory;
  -     }
  -
  -     /**
  -      * @return
  -      */
  -     public boolean isExisting() {
  -             return existing;
  -     }
  -
  -     /**
  -      * @param existing
  -      */
  -     public void setExisting(boolean existing) {
  -             this.existing = existing;
  -     }
  -
  -     /**
  -      * @return
  -      */
  -     public boolean isFile() {
  -             return file;
  -     }
  -
  -     /**
  -      * @param file
  -      */
  -     public void setFile(boolean file) {
  -             this.file = file;
  -     }
  -
  -     /**
  -      * @return
  -      */
  -     public boolean isHidden() {
  -             return hidden;
  -     }
  -
  -     /**
  -      * @param hidden
  -      */
  -     public void setHidden(boolean hidden) {
  -             this.hidden = hidden;
  -     }
  -
  -     /**
  -      * @return
  -      */
  -     public boolean isReadable() {
  -             return readable;
  -     }
  -
  -     /**
  -      * @param readable
  -      */
  -     public void setReadable(boolean readable) {
  -             this.readable = readable;
  -     }
  -
  -     /**
  -      * @return
  -      */
  -     public boolean isWritable() {
  -             return writable;
  -     }
  -
  -     /**
  -      * @param writable
  -      */
  -     public void setWritable(boolean writable) {
  -             this.writable = writable;
  -     }
  -}
  +/*
  + * $Header$
  + * $Revision$
  + * $Date$
  + *
  + * ====================================================================
  + *
  + * The Apache Software License, Version 1.1
  + *
  + * Copyright (c) 2003 The Apache Software Foundation.  All rights
  + * reserved.
  + *
  + * Redistribution and use in source and binary forms, with or without
  + * modification, are permitted provided that the following conditions
  + * are met:
  + *
  + * 1. Redistributions of source code must retain the above copyright
  + *    notice, this list of conditions and the following disclaimer.
  + *
  + * 2. Redistributions in binary form must reproduce the above copyright
  + *    notice, this list of conditions and the following disclaimer in
  + *    the documentation and/or other materials provided with the
  + *    distribution.
  + *
  + * 3. The end-user documentation included with the redistribution, if
  + *    any, must include the following acknowlegement:
  + *       "This product includes software developed by the
  + *        Apache Software Foundation (http://www.apache.org/)."
  + *    Alternately, this acknowlegement may appear in the software itself,
  + *    if and wherever such third-party acknowlegements normally appear.
  + *
  + * 4. The names "The Jakarta Project", "Commons", and "Apache Software
  + *    Foundation" must not be used to endorse or promote products derived
  + *    from this software without prior written permission. For written
  + *    permission, please contact [EMAIL PROTECTED]
  + *
  + * 5. Products derived from this software may not be called "Apache"
  + *    nor may "Apache" appear in their names without prior written
  + *    permission of the Apache GroupImpl.
  + *
  + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  + * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  + * SUCH DAMAGE.
  + * ====================================================================
  + *
  + * This software consists of voluntary contributions made by many
  + * individuals on behalf of the Apache Software Foundation.  For more
  + * information on the Apache Software Foundation, please see
  + * <http://www.apache.org/>.
  + *
  + */
  +package org.apache.commons.cli2.validation;
  +
  +import java.io.File;
  +import java.util.List;
  +import java.util.ListIterator;
  +
  +/**
  + * @author Rob Oxspring
  + */
  +public class FileValidator implements Validator {
  +
  +     public static FileValidator getExistingInstance() {
  +             final FileValidator validator = new FileValidator();
  +             validator.setExisting(true);
  +             return validator;
  +     }
  +
  +     public static FileValidator getExistingFileInstance() {
  +             final FileValidator validator = new FileValidator();
  +             validator.setExisting(true);
  +             validator.setFile(true);
  +             return validator;
  +     }
  +
  +     public static FileValidator getExistingDirectoryInstance() {
  +             final FileValidator validator = new FileValidator();
  +             validator.setExisting(true);
  +             validator.setDirectory(true);
  +             return validator;
  +     }
  +
  +     private boolean readable = false;
  +     private boolean writable = false;
  +     private boolean existing = false;
  +     private boolean directory = false;
  +     private boolean file = false;
  +     private boolean hidden = false;
  +
  +     /* (non-Javadoc)
  +      * @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);
  +                     } else {
  +                             i.set(f);
  +                     }
  +             }
  +     }
  +
  +     /**
  +      * @return
  +      */
  +     public boolean isDirectory() {
  +             return directory;
  +     }
  +
  +     /**
  +      * @param directory
  +      */
  +     public void setDirectory(boolean directory) {
  +             this.directory = directory;
  +     }
  +
  +     /**
  +      * @return
  +      */
  +     public boolean isExisting() {
  +             return existing;
  +     }
  +
  +     /**
  +      * @param existing
  +      */
  +     public void setExisting(boolean existing) {
  +             this.existing = existing;
  +     }
  +
  +     /**
  +      * @return
  +      */
  +     public boolean isFile() {
  +             return file;
  +     }
  +
  +     /**
  +      * @param file
  +      */
  +     public void setFile(boolean file) {
  +             this.file = file;
  +     }
  +
  +     /**
  +      * @return
  +      */
  +     public boolean isHidden() {
  +             return hidden;
  +     }
  +
  +     /**
  +      * @param hidden
  +      */
  +     public void setHidden(boolean hidden) {
  +             this.hidden = hidden;
  +     }
  +
  +     /**
  +      * @return
  +      */
  +     public boolean isReadable() {
  +             return readable;
  +     }
  +
  +     /**
  +      * @param readable
  +      */
  +     public void setReadable(boolean readable) {
  +             this.readable = readable;
  +     }
  +
  +     /**
  +      * @return
  +      */
  +     public boolean isWritable() {
  +             return writable;
  +     }
  +
  +     /**
  +      * @param writable
  +      */
  +     public void setWritable(boolean writable) {
  +             this.writable = writable;
  +     }
  +}
  
  
  
  1.2       +161 -110  
jakarta-commons-sandbox/cli/src/java/org/apache/commons/cli2/validation/DateValidator.java
  
  Index: DateValidator.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/cli/src/java/org/apache/commons/cli2/validation/DateValidator.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- DateValidator.java        18 Oct 2003 22:00:17 -0000      1.1
  +++ DateValidator.java        20 Oct 2003 21:40:44 -0000      1.2
  @@ -1,110 +1,161 @@
  -/*
  - * Created on 25-Aug-2003
  - *
  - * To change the template for this generated file go to
  - * Window - Preferences - Java - Code Generation - Code and Comments
  - */
  -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;
  -
  -/**
  - * @author Rob
  - *
  - * To change the template for this generated type comment go to
  - * Window - Preferences - Java - Code Generation - Code and Comments
  - */
  -public class DateValidator implements Validator {
  -
  -     public static DateValidator getDateInstance() {
  -             return new DateValidator(DateFormat.getDateInstance());
  -     }
  -
  -     public static DateValidator getTimeInstance() {
  -             return new DateValidator(DateFormat.getTimeInstance());
  -     }
  -
  -     public static DateValidator getDateTimeInstance() {
  -             return new DateValidator(DateFormat.getDateTimeInstance());
  -     }
  -
  -     public final DateFormat[] formats;
  -
  -     private Date minimum;
  -     private Date maximum;
  -
  -     public DateValidator() {
  -             this(DateFormat.getInstance());
  -     }
  -
  -     public DateValidator(final DateFormat format) {
  -             this.formats = new DateFormat[] { format };
  -     }
  -
  -     public DateValidator(final List formats) {
  -             this.formats =
  -                     (DateFormat[]) formats.toArray(new DateFormat[formats.size()]);
  -     }
  -
  -     /* (non-Javadoc)
  -      * @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();
  -
  -                     Date date = null;
  -                     for (int f = 0; f < formats.length && date == null; ++f) {
  -                             final ParsePosition pp = new ParsePosition(0);
  -                             date = formats[f].parse(value, pp);
  -                             if (pp.getIndex() < value.length()) {
  -                                     date = null;
  -                             }
  -                     }
  -
  -                     if ((minimum != null && date.getTime() < minimum.getTime())
  -                             || (maximum != null && date.getTime() > 
maximum.getTime())) {
  -                             throw new InvalidArgumentException("Out of range: " + 
value);
  -                     }
  -
  -                     if (date == null) {
  -                             throw new InvalidArgumentException(value);
  -                     }
  -
  -                     i.set(date);
  -             }
  -     }
  -
  -     /**
  -      * @return
  -      */
  -     public Date getMaximum() {
  -             return maximum;
  -     }
  -
  -     /**
  -      * @param maximum
  -      */
  -     public void setMaximum(Date maximum) {
  -             this.maximum = maximum;
  -     }
  -
  -     /**
  -      * @return
  -      */
  -     public Date getMinimum() {
  -             return minimum;
  -     }
  -
  -     /**
  -      * @param minimum
  -      */
  -     public void setMinimum(Date minimum) {
  -             this.minimum = minimum;
  -     }
  -
  -}
  +/*
  + * $Header$
  + * $Revision$
  + * $Date$
  + *
  + * ====================================================================
  + *
  + * The Apache Software License, Version 1.1
  + *
  + * Copyright (c) 2003 The Apache Software Foundation.  All rights
  + * reserved.
  + *
  + * Redistribution and use in source and binary forms, with or without
  + * modification, are permitted provided that the following conditions
  + * are met:
  + *
  + * 1. Redistributions of source code must retain the above copyright
  + *    notice, this list of conditions and the following disclaimer.
  + *
  + * 2. Redistributions in binary form must reproduce the above copyright
  + *    notice, this list of conditions and the following disclaimer in
  + *    the documentation and/or other materials provided with the
  + *    distribution.
  + *
  + * 3. The end-user documentation included with the redistribution, if
  + *    any, must include the following acknowlegement:
  + *       "This product includes software developed by the
  + *        Apache Software Foundation (http://www.apache.org/)."
  + *    Alternately, this acknowlegement may appear in the software itself,
  + *    if and wherever such third-party acknowlegements normally appear.
  + *
  + * 4. The names "The Jakarta Project", "Commons", and "Apache Software
  + *    Foundation" must not be used to endorse or promote products derived
  + *    from this software without prior written permission. For written
  + *    permission, please contact [EMAIL PROTECTED]
  + *
  + * 5. Products derived from this software may not be called "Apache"
  + *    nor may "Apache" appear in their names without prior written
  + *    permission of the Apache GroupImpl.
  + *
  + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  + * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  + * SUCH DAMAGE.
  + * ====================================================================
  + *
  + * This software consists of voluntary contributions made by many
  + * individuals on behalf of the Apache Software Foundation.  For more
  + * information on the Apache Software Foundation, please see
  + * <http://www.apache.org/>.
  + *
  + */
  +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;
  +
  +/**
  + * @author Rob Oxspring
  + */
  +public class DateValidator implements Validator {
  +
  +    public static DateValidator getDateInstance() {
  +        return new DateValidator(DateFormat.getDateInstance());
  +    }
  +
  +    public static DateValidator getTimeInstance() {
  +        return new DateValidator(DateFormat.getTimeInstance());
  +    }
  +
  +    public static DateValidator getDateTimeInstance() {
  +        return new DateValidator(DateFormat.getDateTimeInstance());
  +    }
  +
  +    public final DateFormat[] formats;
  +
  +    private Date minimum;
  +    private Date maximum;
  +
  +    public DateValidator() {
  +        this(DateFormat.getInstance());
  +    }
  +
  +    public DateValidator(final DateFormat format) {
  +        this.formats = new DateFormat[] { format };
  +    }
  +
  +    public DateValidator(final List formats) {
  +        this.formats =
  +            (DateFormat[]) formats.toArray(new DateFormat[formats.size()]);
  +    }
  +
  +    /* (non-Javadoc)
  +     * @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();
  +
  +            Date date = null;
  +            for (int f = 0; f < formats.length && date == null; ++f) {
  +                final ParsePosition pp = new ParsePosition(0);
  +                date = formats[f].parse(value, pp);
  +                if (pp.getIndex() < value.length()) {
  +                    date = null;
  +                }
  +            }
  +
  +            if ((minimum != null && date.getTime() < minimum.getTime())
  +                || (maximum != null && date.getTime() > maximum.getTime())) {
  +                throw new InvalidArgumentException("Out of range: " + value);
  +            }
  +
  +            if (date == null) {
  +                throw new InvalidArgumentException(value);
  +            }
  +
  +            i.set(date);
  +        }
  +    }
  +
  +    /**
  +     * @return
  +     */
  +    public Date getMaximum() {
  +        return maximum;
  +    }
  +
  +    /**
  +     * @param maximum
  +     */
  +    public void setMaximum(Date maximum) {
  +        this.maximum = maximum;
  +    }
  +
  +    /**
  +     * @return
  +     */
  +    public Date getMinimum() {
  +        return minimum;
  +    }
  +
  +    /**
  +     * @param minimum
  +     */
  +    public void setMinimum(Date minimum) {
  +        this.minimum = minimum;
  +    }
  +
  +}
  
  
  
  1.2       +160 -109  
jakarta-commons-sandbox/cli/src/java/org/apache/commons/cli2/validation/NumberValidator.java
  
  Index: NumberValidator.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/cli/src/java/org/apache/commons/cli2/validation/NumberValidator.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- NumberValidator.java      18 Oct 2003 22:00:17 -0000      1.1
  +++ NumberValidator.java      20 Oct 2003 21:40:44 -0000      1.2
  @@ -1,109 +1,160 @@
  -/*
  - * Created on 25-Aug-2003
  - *
  - * To change the template for this generated file go to
  - * Window - Preferences - Java - Code Generation - Code and Comments
  - */
  -package org.apache.commons.cli2.validation;
  -
  -import java.text.NumberFormat;
  -import java.text.ParsePosition;
  -import java.util.List;
  -import java.util.ListIterator;
  -
  -/**
  - * @author Rob
  - *
  - * To change the template for this generated type comment go to
  - * Window - Preferences - Java - Code Generation - Code and Comments
  - */
  -public class NumberValidator implements Validator {
  -
  -     public static NumberValidator getCurrencyInstance() {
  -             return new NumberValidator(NumberFormat.getCurrencyInstance());
  -     }
  -
  -     public static NumberValidator getIntegerInstance() {
  -             return new NumberValidator(NumberFormat.getIntegerInstance());
  -     }
  -
  -     public static NumberValidator getPercentInstance() {
  -             return new NumberValidator(NumberFormat.getPercentInstance());
  -     }
  -
  -     public static NumberValidator getNumberInstance() {
  -             return new NumberValidator(NumberFormat.getNumberInstance());
  -     }
  -
  -     private final NumberFormat format;
  -     private Number minimum = null;
  -     private Number maximum = null;
  -
  -     public NumberValidator() {
  -             this(NumberFormat.getInstance());
  -     }
  -
  -     public NumberValidator(final NumberFormat format) {
  -             this.format = format;
  -     }
  -
  -     /* (non-Javadoc)
  -      * @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("Out of range: " + 
value);
  -                     }
  -
  -                     i.set(number);
  -             }
  -     }
  -
  -     /**
  -      * @return
  -      */
  -     public NumberFormat getFormat() {
  -             return format;
  -     }
  -
  -     /**
  -      * @return
  -      */
  -     public Number getMaximum() {
  -             return maximum;
  -     }
  -
  -     /**
  -      * @param maximum
  -      */
  -     public void setMaximum(Number maximum) {
  -             this.maximum = maximum;
  -     }
  -
  -     /**
  -      * @return
  -      */
  -     public Number getMinimum() {
  -             return minimum;
  -     }
  -
  -     /**
  -      * @param minimum
  -      */
  -     public void setMinimum(Number minimum) {
  -             this.minimum = minimum;
  -     }
  -
  -}
  +/*
  + * $Header$
  + * $Revision$
  + * $Date$
  + *
  + * ====================================================================
  + *
  + * The Apache Software License, Version 1.1
  + *
  + * Copyright (c) 2003 The Apache Software Foundation.  All rights
  + * reserved.
  + *
  + * Redistribution and use in source and binary forms, with or without
  + * modification, are permitted provided that the following conditions
  + * are met:
  + *
  + * 1. Redistributions of source code must retain the above copyright
  + *    notice, this list of conditions and the following disclaimer.
  + *
  + * 2. Redistributions in binary form must reproduce the above copyright
  + *    notice, this list of conditions and the following disclaimer in
  + *    the documentation and/or other materials provided with the
  + *    distribution.
  + *
  + * 3. The end-user documentation included with the redistribution, if
  + *    any, must include the following acknowlegement:
  + *       "This product includes software developed by the
  + *        Apache Software Foundation (http://www.apache.org/)."
  + *    Alternately, this acknowlegement may appear in the software itself,
  + *    if and wherever such third-party acknowlegements normally appear.
  + *
  + * 4. The names "The Jakarta Project", "Commons", and "Apache Software
  + *    Foundation" must not be used to endorse or promote products derived
  + *    from this software without prior written permission. For written
  + *    permission, please contact [EMAIL PROTECTED]
  + *
  + * 5. Products derived from this software may not be called "Apache"
  + *    nor may "Apache" appear in their names without prior written
  + *    permission of the Apache GroupImpl.
  + *
  + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  + * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  + * SUCH DAMAGE.
  + * ====================================================================
  + *
  + * This software consists of voluntary contributions made by many
  + * individuals on behalf of the Apache Software Foundation.  For more
  + * information on the Apache Software Foundation, please see
  + * <http://www.apache.org/>.
  + *
  + */
  +package org.apache.commons.cli2.validation;
  +
  +import java.text.NumberFormat;
  +import java.text.ParsePosition;
  +import java.util.List;
  +import java.util.ListIterator;
  +
  +/**
  + * @author Rob Oxspring
  + */
  +public class NumberValidator implements Validator {
  +
  +     public static NumberValidator getCurrencyInstance() {
  +             return new NumberValidator(NumberFormat.getCurrencyInstance());
  +     }
  +
  +     public static NumberValidator getIntegerInstance() {
  +             return new NumberValidator(NumberFormat.getIntegerInstance());
  +     }
  +
  +     public static NumberValidator getPercentInstance() {
  +             return new NumberValidator(NumberFormat.getPercentInstance());
  +     }
  +
  +     public static NumberValidator getNumberInstance() {
  +             return new NumberValidator(NumberFormat.getNumberInstance());
  +     }
  +
  +     private final NumberFormat format;
  +     private Number minimum = null;
  +     private Number maximum = null;
  +
  +     public NumberValidator() {
  +             this(NumberFormat.getInstance());
  +     }
  +
  +     public NumberValidator(final NumberFormat format) {
  +             this.format = format;
  +     }
  +
  +     /* (non-Javadoc)
  +      * @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("Out of range: " + 
value);
  +                     }
  +
  +                     i.set(number);
  +             }
  +     }
  +
  +     /**
  +      * @return
  +      */
  +     public NumberFormat getFormat() {
  +             return format;
  +     }
  +
  +     /**
  +      * @return
  +      */
  +     public Number getMaximum() {
  +             return maximum;
  +     }
  +
  +     /**
  +      * @param maximum
  +      */
  +     public void setMaximum(Number maximum) {
  +             this.maximum = maximum;
  +     }
  +
  +     /**
  +      * @return
  +      */
  +     public Number getMinimum() {
  +             return minimum;
  +     }
  +
  +     /**
  +      * @param minimum
  +      */
  +     public void setMinimum(Number minimum) {
  +             this.minimum = minimum;
  +     }
  +
  +}
  
  
  
  1.2       +71 -19    
jakarta-commons-sandbox/cli/src/java/org/apache/commons/cli2/validation/InvalidArgumentException.java
  
  Index: InvalidArgumentException.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/cli/src/java/org/apache/commons/cli2/validation/InvalidArgumentException.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- InvalidArgumentException.java     18 Oct 2003 22:00:17 -0000      1.1
  +++ InvalidArgumentException.java     20 Oct 2003 21:40:44 -0000      1.2
  @@ -1,19 +1,71 @@
  -/*
  - * Created on 25-Aug-2003
  - *
  - * To change the template for this generated file go to
  - * Window - Preferences - Java - Code Generation - Code and Comments
  - */
  -package org.apache.commons.cli2.validation;
  -
  -/**
  - * @author Rob
  - *
  - * To change the template for this generated type comment go to
  - * Window - Preferences - Java - Code Generation - Code and Comments
  - */
  -public class InvalidArgumentException extends Exception {
  -     public InvalidArgumentException(final String value) {
  -             super(value);
  -     }
  -}
  +/*
  + * $Header$
  + * $Revision$
  + * $Date$
  + *
  + * ====================================================================
  + *
  + * The Apache Software License, Version 1.1
  + *
  + * Copyright (c) 2003 The Apache Software Foundation.  All rights
  + * reserved.
  + *
  + * Redistribution and use in source and binary forms, with or without
  + * modification, are permitted provided that the following conditions
  + * are met:
  + *
  + * 1. Redistributions of source code must retain the above copyright
  + *    notice, this list of conditions and the following disclaimer.
  + *
  + * 2. Redistributions in binary form must reproduce the above copyright
  + *    notice, this list of conditions and the following disclaimer in
  + *    the documentation and/or other materials provided with the
  + *    distribution.
  + *
  + * 3. The end-user documentation included with the redistribution, if
  + *    any, must include the following acknowlegement:
  + *       "This product includes software developed by the
  + *        Apache Software Foundation (http://www.apache.org/)."
  + *    Alternately, this acknowlegement may appear in the software itself,
  + *    if and wherever such third-party acknowlegements normally appear.
  + *
  + * 4. The names "The Jakarta Project", "Commons", and "Apache Software
  + *    Foundation" must not be used to endorse or promote products derived
  + *    from this software without prior written permission. For written
  + *    permission, please contact [EMAIL PROTECTED]
  + *
  + * 5. Products derived from this software may not be called "Apache"
  + *    nor may "Apache" appear in their names without prior written
  + *    permission of the Apache GroupImpl.
  + *
  + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  + * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  + * SUCH DAMAGE.
  + * ====================================================================
  + *
  + * This software consists of voluntary contributions made by many
  + * individuals on behalf of the Apache Software Foundation.  For more
  + * information on the Apache Software Foundation, please see
  + * <http://www.apache.org/>.
  + *
  + */
  +package org.apache.commons.cli2.validation;
  +
  +/**
  + * @author Rob Oxspring
  + */
  +public class InvalidArgumentException extends Exception {
  +
  +     public InvalidArgumentException(final String message) {
  +             super(message);
  +     }
  +}
  
  
  
  1.2       +185 -128  
jakarta-commons-sandbox/cli/src/java/org/apache/commons/cli2/validation/ClassValidator.java
  
  Index: ClassValidator.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/cli/src/java/org/apache/commons/cli2/validation/ClassValidator.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ClassValidator.java       18 Oct 2003 22:00:17 -0000      1.1
  +++ ClassValidator.java       20 Oct 2003 21:40:44 -0000      1.2
  @@ -1,128 +1,185 @@
  -/*
  - * Created on 25-Aug-2003
  - *
  - * To change the template for this generated file go to
  - * Window - Preferences - Java - Code Generation - Code and Comments
  - */
  -package org.apache.commons.cli2.validation;
  -
  -import java.util.List;
  -import java.util.ListIterator;
  -
  -/**
  - * @author Rob
  - *
  - * To change the template for this generated type comment go to
  - * Window - Preferences - Java - Code Generation - Code and Comments
  - */
  -public class ClassValidator implements Validator {
  -
  -     private boolean loadable = false;
  -     private boolean instance = false;
  -
  -     private ClassLoader loader;
  -
  -     /* (non-Javadoc)
  -      * @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();
  -
  -                     if (!isPotentialClassName(name)) {
  -                             throw new InvalidArgumentException("Bad class name: " 
+ name);
  -                     }
  -
  -                     if (loadable || instance) {
  -                             if (loader == null) {
  -                                     loader = getClass().getClassLoader();
  -                             }
  -                             try {
  -                                     final Class clazz = loader.loadClass(name);
  -                                     if(instance){
  -                                             i.set(clazz.newInstance());
  -                                     }
  -                                     else{
  -                                             i.set(clazz);
  -                                     }
  -                             } catch (ClassNotFoundException cnfe) {
  -                                     throw new InvalidArgumentException(
  -                                             "Class not found: " + name);
  -                             } catch (IllegalAccessException iae) {
  -                                     throw new InvalidArgumentException(
  -                                             "Cannot create instance: " + name);
  -                             } catch (InstantiationException iae) {
  -                                     throw new InvalidArgumentException(
  -                                             "Cannot create instance: " + name);
  -                             }
  -                     }
  -             }
  -     }
  -
  -     protected boolean isPotentialClassName(final String name) {
  -             final char[] chars = name.toCharArray();
  -
  -             boolean expectingStart = true;
  -
  -             for (int i = 0; i < chars.length; ++i) {
  -                     final char c = chars[i];
  -                     if (expectingStart) {
  -                             if (!Character.isJavaIdentifierStart(c)) {
  -                                     return false;
  -                             } else {
  -                                     expectingStart = false;
  -                             }
  -                     } else {
  -                             if (c == '.') {
  -                                     expectingStart = true;
  -                             } else if (!Character.isJavaIdentifierPart(c)) {
  -                                     return false;
  -                             }
  -                     }
  -             }
  -             return !expectingStart;
  -     }
  -
  -     /**
  -      * @return
  -      */
  -     public boolean isLoadable() {
  -             return loadable;
  -     }
  -
  -     /**
  -      * @param loadable
  -      */
  -     public void setLoadable(boolean loadable) {
  -             this.loadable = loadable;
  -     }
  -
  -     /**
  -      * @return
  -      */
  -     public ClassLoader getLoader() {
  -             return loader;
  -     }
  -
  -     /**
  -      * @param loader
  -      */
  -     public void setLoader(ClassLoader loader) {
  -             this.loader = loader;
  -     }
  -
  -     /**
  -      * @return
  -      */
  -     public boolean isInstance() {
  -             return instance;
  -     }
  -
  -     /**
  -      * @param instance
  -      */
  -     public void setInstance(boolean instance) {
  -             this.instance = instance;
  -     }
  -
  -}
  +/*
  + * $Header$
  + * $Revision$
  + * $Date$
  + *
  + * ====================================================================
  + *
  + * The Apache Software License, Version 1.1
  + *
  + * Copyright (c) 2003 The Apache Software Foundation.  All rights
  + * reserved.
  + *
  + * Redistribution and use in source and binary forms, with or without
  + * modification, are permitted provided that the following conditions
  + * are met:
  + *
  + * 1. Redistributions of source code must retain the above copyright
  + *    notice, this list of conditions and the following disclaimer.
  + *
  + * 2. Redistributions in binary form must reproduce the above copyright
  + *    notice, this list of conditions and the following disclaimer in
  + *    the documentation and/or other materials provided with the
  + *    distribution.
  + *
  + * 3. The end-user documentation included with the redistribution, if
  + *    any, must include the following acknowlegement:
  + *       "This product includes software developed by the
  + *        Apache Software Foundation (http://www.apache.org/)."
  + *    Alternately, this acknowlegement may appear in the software itself,
  + *    if and wherever such third-party acknowlegements normally appear.
  + *
  + * 4. The names "The Jakarta Project", "Commons", and "Apache Software
  + *    Foundation" must not be used to endorse or promote products derived
  + *    from this software without prior written permission. For written
  + *    permission, please contact [EMAIL PROTECTED]
  + *
  + * 5. Products derived from this software may not be called "Apache"
  + *    nor may "Apache" appear in their names without prior written
  + *    permission of the Apache GroupImpl.
  + *
  + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  + * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  + * SUCH DAMAGE.
  + * ====================================================================
  + *
  + * This software consists of voluntary contributions made by many
  + * individuals on behalf of the Apache Software Foundation.  For more
  + * information on the Apache Software Foundation, please see
  + * <http://www.apache.org/>.
  + *
  + */
  +package org.apache.commons.cli2.validation;
  +
  +import java.util.List;
  +import java.util.ListIterator;
  +
  +/**
  + * @author Rob Oxspring
  + */
  +public class ClassValidator implements Validator {
  +
  +    private boolean loadable = false;
  +    private boolean instance = false;
  +
  +    private ClassLoader loader;
  +
  +    /* (non-Javadoc)
  +     * @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();
  +
  +            if (!isPotentialClassName(name)) {
  +                throw new InvalidArgumentException("Bad class name: " + name);
  +            }
  +
  +            if (loadable || instance) {
  +                if (loader == null) {
  +                    loader = getClass().getClassLoader();
  +                }
  +                try {
  +                    final Class clazz = loader.loadClass(name);
  +                    if (instance) {
  +                        i.set(clazz.newInstance());
  +                    }
  +                    else {
  +                        i.set(clazz);
  +                    }
  +                }
  +                catch (ClassNotFoundException cnfe) {
  +                    throw new InvalidArgumentException(
  +                        "Class not found: " + name);
  +                }
  +                catch (IllegalAccessException iae) {
  +                    throw new InvalidArgumentException(
  +                        "Cannot create instance: " + name);
  +                }
  +                catch (InstantiationException iae) {
  +                    throw new InvalidArgumentException(
  +                        "Cannot create instance: " + name);
  +                }
  +            }
  +        }
  +    }
  +
  +    protected boolean isPotentialClassName(final String name) {
  +        final char[] chars = name.toCharArray();
  +
  +        boolean expectingStart = true;
  +
  +        for (int i = 0; i < chars.length; ++i) {
  +            final char c = chars[i];
  +            if (expectingStart) {
  +                if (!Character.isJavaIdentifierStart(c)) {
  +                    return false;
  +                }
  +                else {
  +                    expectingStart = false;
  +                }
  +            }
  +            else {
  +                if (c == '.') {
  +                    expectingStart = true;
  +                }
  +                else if (!Character.isJavaIdentifierPart(c)) {
  +                    return false;
  +                }
  +            }
  +        }
  +        return !expectingStart;
  +    }
  +
  +    /**
  +     * @return
  +     */
  +    public boolean isLoadable() {
  +        return loadable;
  +    }
  +
  +    /**
  +     * @param loadable
  +     */
  +    public void setLoadable(boolean loadable) {
  +        this.loadable = loadable;
  +    }
  +
  +    /**
  +     * @return
  +     */
  +    public ClassLoader getLoader() {
  +        return loader;
  +    }
  +
  +    /**
  +     * @param loader
  +     */
  +    public void setLoader(ClassLoader loader) {
  +        this.loader = loader;
  +    }
  +
  +    /**
  +     * @return
  +     */
  +    public boolean isInstance() {
  +        return instance;
  +    }
  +
  +    /**
  +     * @param instance
  +     */
  +    public void setInstance(boolean instance) {
  +        this.instance = instance;
  +    }
  +
  +}
  
  
  

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

Reply via email to