jkeyes 2003/10/31 14:12:54 Modified: cli/src/java/org/apache/commons/cli2 DefaultOption.java Log: - removed TABs Revision Changes Path 1.5 +216 -208 jakarta-commons-sandbox/cli/src/java/org/apache/commons/cli2/DefaultOption.java Index: DefaultOption.java =================================================================== RCS file: /home/cvs/jakarta-commons-sandbox/cli/src/java/org/apache/commons/cli2/DefaultOption.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- DefaultOption.java 29 Oct 2003 17:32:12 -0000 1.4 +++ DefaultOption.java 31 Oct 2003 22:12:54 -0000 1.5 @@ -1,62 +1,50 @@ /* - * $Header$ - * $Revision$ + * $Header$ + * $Revision$ * $Date$ - * + * * ==================================================================== - * + * * The Apache Software License, Version 1.1 - * - * Copyright (c) 2003 The Apache Software Foundation. All rights - * reserved. - * + * + * 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. + * 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/>. - * + * + * 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; @@ -75,175 +63,195 @@ public static final String DEFAULT_LONG_PREFIX = "--"; public static final boolean DEFAULT_BURST_ENABLED = true; - private final String preferredName; - private final Set aliases; - private final Set burstAliases; - private final boolean required; - private final Set triggers = new HashSet(); - - private final String shortPrefix; - private final String longPrefix; - private final boolean burstEnabled; - - private final int burstLength; - - protected DefaultOption( - final String shortPrefix, - final String longPrefix, - final boolean burstEnabled, - final String preferredName, - final String description, - final Set aliases, - final Set burstAliases, - final boolean required, - final Argument argument, - final Group children, + private final String preferredName; + private final Set aliases; + private final Set burstAliases; + private final boolean required; + private final Set triggers = new HashSet(); + + private final String shortPrefix; + private final String longPrefix; + private final boolean burstEnabled; + + private final int burstLength; + + protected DefaultOption( + final String shortPrefix, + final String longPrefix, + final boolean burstEnabled, + final String preferredName, + final String description, + final Set aliases, + final Set burstAliases, + final boolean required, + final Argument argument, + final Group children, final int id) { - super(argument, children, description, id); + super(argument, children, description, id); - this.longPrefix = longPrefix; - this.shortPrefix = shortPrefix; - this.burstEnabled = burstEnabled; - - this.burstLength = shortPrefix.length() + 1; - - this.preferredName = preferredName; - if (aliases == null) { - this.aliases = Collections.EMPTY_SET; - } else { - this.aliases = aliases; - } - - if (burstAliases == null) { - this.burstAliases = Collections.EMPTY_SET; - } else { - this.burstAliases = burstAliases; - } - this.required = required; - - this.triggers.add(preferredName); - this.triggers.addAll(this.aliases); - this.triggers.addAll(this.burstAliases); - } - - /* (non-Javadoc) + this.longPrefix = longPrefix; + this.shortPrefix = shortPrefix; + this.burstEnabled = burstEnabled; + + this.burstLength = shortPrefix.length() + 1; + + this.preferredName = preferredName; + if (aliases == null) { + this.aliases = Collections.EMPTY_SET; + } + else { + this.aliases = aliases; + } + + if (burstAliases == null) { + this.burstAliases = Collections.EMPTY_SET; + } + else { + this.burstAliases = burstAliases; + } + this.required = required; + + this.triggers.add(preferredName); + this.triggers.addAll(this.aliases); + this.triggers.addAll(this.burstAliases); + } + + /* + * (non-Javadoc) + * * @see org.apache.commons.cli3.Option#canProcess(java.lang.String) */ - public boolean canProcess(final String argument) { - return argument != null - && (super.canProcess(argument) - || (argument.length() >= burstLength - && burstAliases.contains(argument.substring(0, burstLength)))); - } - - /* (non-Javadoc) - * @see org.apache.commons.cli2.Parent#processParent(org.apache.commons.cli2.CommandLine, java.util.ListIterator) - */ - public void processParent(CommandLine commandLine, ListIterator arguments) - throws OptionException { - - final String argument = (String) arguments.next(); - - if (triggers.contains(argument)) { - commandLine.addOption(this); - arguments.set(preferredName); - } else if (burstEnabled && argument.length() >= burstLength) { - final String burst = argument.substring(0, burstLength); - - if (burstAliases.contains(burst)) { - commandLine.addOption(this); - - //HMM test bursting all vs bursting one by one. - arguments.set(preferredName); - - if(getArgument()==null){ - arguments.add(shortPrefix + argument.substring(burstLength)); + public boolean canProcess(final String argument) { + return argument != null + && (super.canProcess(argument) + || (argument.length() >= burstLength + && burstAliases.contains(argument.substring(0, burstLength)))); + } + + /* + * (non-Javadoc) + * + * @see org.apache.commons.cli2.Parent#processParent(org.apache.commons.cli2.CommandLine, + * java.util.ListIterator) + */ + public void processParent(CommandLine commandLine, ListIterator arguments) + throws OptionException { + + final String argument = (String) arguments.next(); + + if (triggers.contains(argument)) { + commandLine.addOption(this); + arguments.set(preferredName); + } + else if (burstEnabled && argument.length() >= burstLength) { + final String burst = argument.substring(0, burstLength); + + if (burstAliases.contains(burst)) { + commandLine.addOption(this); + + //HMM test bursting all vs bursting one by one. + arguments.set(preferredName); + + if (getArgument() == null) { + arguments.add( + shortPrefix + argument.substring(burstLength)); } - else{ + else { arguments.add(argument.substring(burstLength)); } - - arguments.previous(); - } else { - throw new BurstException(this, argument); - } - } else { - throw new UnexpectedOptionException(this, argument); - } - } - /* (non-Javadoc) + arguments.previous(); + } + else { + throw new BurstException(this, argument); + } + } + else { + throw new UnexpectedOptionException(this, argument); + } + } + + /* + * (non-Javadoc) + * * @see org.apache.commons.cli2.Option#triggers() */ - public Set triggers() { - return triggers; - } - /* (non-Javadoc) + public Set triggers() { + return triggers; + } + /* + * (non-Javadoc) + * * @see org.apache.commons.cli2.Option#prefixes() */ - public Set prefixes() { - final Set prefixes = new HashSet(super.prefixes()); + public Set prefixes() { + final Set prefixes = new HashSet(super.prefixes()); - prefixes.add(shortPrefix); - prefixes.add(longPrefix); + prefixes.add(shortPrefix); + prefixes.add(longPrefix); - return prefixes; - } + return prefixes; + } - /* (non-Javadoc) + /* + * (non-Javadoc) + * * @see org.apache.commons.cli2.Option#validate(org.apache.commons.cli2.CommandLine) */ - public void validate(CommandLine commandLine) throws OptionException { - if (required && !commandLine.hasOption(this)) { - throw new MissingOptionException(this); - } - - super.validate(commandLine); - } - - /* (non-Javadoc) - * @see org.apache.commons.cli2.Option#appendUsage(java.lang.StringBuffer, java.util.Set, java.util.Comparator) - */ - public void appendUsage( - final StringBuffer buffer, - final Set helpSettings, - final Comparator comp) { - - // do we display optionality - final boolean optional = - !required && helpSettings.contains(HelpSetting.DISPLAY_OPTIONAL); - final boolean displayAliases = - helpSettings.contains(HelpSetting.DISPLAY_ALIASES); - - if (optional) { - buffer.append('['); - } - buffer.append(preferredName); - - if (displayAliases && !aliases.isEmpty()) { - buffer.append(" ("); - - final List list = new ArrayList(aliases); - Collections.sort(list); - - for (final Iterator i = list.iterator(); i.hasNext();) { - final String alias = (String) i.next(); - buffer.append(alias); - if (i.hasNext()) { - buffer.append(','); - } - } - buffer.append(')'); - } - - super.appendUsage(buffer, helpSettings, comp); - - if (optional) { - buffer.append(']'); - } - } - - public String getPreferredName() { - return preferredName; - } + public void validate(CommandLine commandLine) throws OptionException { + if (required && !commandLine.hasOption(this)) { + throw new MissingOptionException(this); + } + + super.validate(commandLine); + } + + /* + * (non-Javadoc) + * + * @see org.apache.commons.cli2.Option#appendUsage(java.lang.StringBuffer, + * java.util.Set, java.util.Comparator) + */ + public void appendUsage( + final StringBuffer buffer, + final Set helpSettings, + final Comparator comp) { + + // do we display optionality + final boolean optional = + !required && helpSettings.contains(HelpSetting.DISPLAY_OPTIONAL); + final boolean displayAliases = + helpSettings.contains(HelpSetting.DISPLAY_ALIASES); + + if (optional) { + buffer.append('['); + } + buffer.append(preferredName); + + if (displayAliases && !aliases.isEmpty()) { + buffer.append(" ("); + + final List list = new ArrayList(aliases); + Collections.sort(list); + + for (final Iterator i = list.iterator(); i.hasNext();) { + final String alias = (String) i.next(); + buffer.append(alias); + if (i.hasNext()) { + buffer.append(','); + } + } + buffer.append(')'); + } + + super.appendUsage(buffer, helpSettings, comp); + + if (optional) { + buffer.append(']'); + } + } + + public String getPreferredName() { + return preferredName; + } }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]