package gnu.dtools.ritopt; /** * OptionEvent.java * * Version: * $Id: OptionEvent.java 1318 2005-11-08 04:53:29Z mortenalver $ */ /** * An event indicating that an option has been invoked. * When an OptionListener is notified by a NotifyOption, it passes * an OptionEvent object to all registered listeners. This includes * the target NotifyOption, a command (NotifyOption passes the long * option by default), and the option value.<p> * * <hr> * * <pre> * Copyright (C) Damian Ryan Eads, 2001. All Rights Reserved. * * ritopt is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * ritopt 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with ritopt; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * </pre> * * @author Damian Eads */ public class OptionEvent { /** * The command string associated with this option processing event. */ private String command; /** * The value of the option processing event. */ private String value; /** * The target Option in which the option processing event occurred. */ private Option target; /** * Constructs an option event with the command set to "Default", the * value set to the empty string, and the target set to null. */ public OptionEvent() { this( "Default", "", null ); } /** * Constructs an option event with the command set to the value passed, * the value set to the empty string, and the target set to null. * * @param command The value to set the command string. */ public OptionEvent( String command ) { this( command, "", null ); } /** * Constructs an option event with the command and value set to the * values passed, and the target set to null. * * @param command The value to set the command string. * @param value The value to set the option value. */ public OptionEvent( String command, String value ) { this( command, value, null ); } /** * Constructs an option event with the command set to the long or short * option (whichever exists), the value set to the current value of * the option, and the target option set to the option passed. If * neither the short or long option exist, a value of "Default" is * assigned. * * @param option The option to initialize this OptionEvent. */ public OptionEvent( Option option ) { this.target = option; this.value = option.getStringValue(); String longOption = option.getLongOption(); char shortOption = option.getShortOption(); if ( longOption != null ) { command = longOption; } else if ( shortOption != '\0' ) { command = new Character( shortOption ).toString(); } else { command = "Default"; } } /** * Constructs an option event with the command, value, and target * set to the values passed. * * @param command The value to set the command string. * @param value The value to set the option value. * @param target The target option in which the option processing * event occurred. */ public OptionEvent( String command, String value, Option target ) { this.command = command; this.value = value; this.target = target; } /** * Returns the command string associated with the option. * * @return The command string associated with the option. */ public String getCommand() { return command; } /** * Returns the value associated with the target option. * * @return The value associated with the target option. */ public String getValue() { return value; } /** * Returns the target option of the option processing event. * * @return The target option. */ public Option getTarget() { return target; } /** * Sets the command string to the value passed. * * @param command The value to set the command string. */ public void setCommand( String command ) { this.command = command; } /** * Sets the value of this option event. This value generally should be * equal to the value of the target option. * * @param value The value of the option event. */ public void setValue( String value ) { this.value = value; } /** * Sets the target option of the option processing event. * * @param target The target option. */ public void setTarget( Option target ) { this.target = target; } }