/*
* xtc - The eXTensible Compiler
* Copyright (C) 2005, 2007 Robert Grimm
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
* version 2.1 as published by the Free Software Foundation.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* USA.
*/
package xtc.util;
/**
* A command line option.
*
* @author Robert Grimm
* @version $Revision: 1.6 $
*/
class Option {
/** The kind. */
public static enum Kind { BOOLEAN, WORD, INTEGER, FILE, DIRECTORY, ATTRIBUTE }
/** The kind. */
public final Kind kind;
/** The external name. */
public final String external;
/** The internal name. */
public final String internal;
/** The default value, which must be consistent with the kind. */
public final Object value;
/** The flag for multiple occurrences. */
public final boolean multiple;
/** The description. */
public final String description;
/**
* Create a new option.
*
* @param kind The kind.
* @param external The external name.
* @param internal The internal name.
* @param value The default value, which may be <code>null</code>.
* @param multiple The flag for multiple occurrences.
* @param description The description.
*/
public Option(Kind kind, String external, String internal, Object value,
boolean multiple, String description) {
this.kind = kind;
this.external = external;
this.internal = internal;
this.value = value;
this.multiple = multiple;
this.description = description;
}
}