org.apache.axis.utils.CLOptionDescriptor Maven / Gradle / Ivy
/*
* Copyright 2001-2004 The Apache Software Foundation.
*
* Licensed 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.
*/
// This file is pulled from package org.apache.avalon.excalibur.cli Excalibur
// version 4.1 (Jan 30, 2002). Only the package name has been changed.
package org.apache.axis.utils;
/**
* Basic class describing an type of option.
* Typically, one creates a static array of CLOptionDescriptor
s,
* and passes it to {@link CLArgsParser#CLArgsParser(String[], CLOptionDescriptor[])}.
*
* @author Peter Donald
* @since 4.0
*/
public final class CLOptionDescriptor
{
/** Flag to say that one argument is required */
public static final int ARGUMENT_REQUIRED = 1 << 1;
/** Flag to say that the argument is optional */
public static final int ARGUMENT_OPTIONAL = 1 << 2;
/** Flag to say this option does not take arguments */
public static final int ARGUMENT_DISALLOWED = 1 << 3;
/** Flag to say this option requires 2 arguments */
public static final int ARGUMENTS_REQUIRED_2 = 1 << 4;
/** Flag to say this option may be repeated on the command line */
public static final int DUPLICATES_ALLOWED = 1 << 5;
private final int m_id;
private final int m_flags;
private final String m_name;
private final String m_description;
private final int[] m_incompatible;
/**
* Constructor.
*
* @param name the name/long option
* @param flags the flags
* @param id the id/character option
* @param description description of option usage
*/
public CLOptionDescriptor( final String name,
final int flags,
final int id,
final String description )
{
this( name, flags, id, description,
((flags & CLOptionDescriptor.DUPLICATES_ALLOWED) > 0)
? new int[] {}
: new int[] { id } );
}
/**
* Constructor.
*
* @param name the name/long option
* @param flags the flags
* @param id the id/character option
* @param description description of option usage
*/
public CLOptionDescriptor( final String name,
final int flags,
final int id,
final String description,
final int[] incompatable )
{
m_id = id;
m_name = name;
m_flags = flags;
m_description = description;
m_incompatible = incompatable;
}
/**
* @deprecated Use the correctly spelled {@link #getIncompatible} instead.
*/
protected final int[] getIncompatble()
{
return getIncompatible();
}
protected final int[] getIncompatible()
{
return m_incompatible;
}
/**
* Retrieve textual description.
*
* @return the description
*/
public final String getDescription()
{
return m_description;
}
/**
* Retrieve flags about option.
* Flags include details such as whether it allows parameters etc.
*
* @return the flags
*/
public final int getFlags()
{
return m_flags;
}
/**
* Retrieve the id for option.
* The id is also the character if using single character options.
*
* @return the id
*/
public final int getId()
{
return m_id;
}
/**
* Retrieve name of option which is also text for long option.
*
* @return name/long option
*/
public final String getName()
{
return m_name;
}
/**
* Convert to String.
*
* @return the converted value to string.
*/
public final String toString()
{
return
new StringBuffer()
.append("[OptionDescriptor ").append(m_name)
.append(", ").append(m_id).append(", ").append(m_flags)
.append(", ").append(m_description).append(" ]").toString();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy