Class NotifyOption

  • All Implemented Interfaces:
    OptionModifiable, OptionNotifier

    public class NotifyOption
    extends Option
    implements OptionNotifier
    The NotifyOption class is used to register options that when invoked notify a listener. This provides an interface for event-driven options processing. In order for a class to be notified, it must implement the OptionListener interface.

    When the option is invoked, the corresponding short, long, and option values are put in an OptionEvent object, and passed to all registered listeners.

    A class must implement the OptionListener interface in order to receive notification of option events.

    For a more detailed explanation please refer to the tutorial. The following is a simple example of how a NotifyOption is used.

    
     import gnu.dtools.ritopt.*;
    
     public class TellMe implements OptionListener {
    
        public static void main( String args[] ) {
           TellMe m = new TellMe();
           Options processor = new Options();
           NotifyOption say = new NotifyOption( m );
           processor.register( "say", 's', say );
           processor.process();
        }
    
        public void optionInvoked( OptionEvent e ) {
           if ( e.getCommand().equals( "say" ) ) {
               String say = e.getValue();
               if ( Utility.trim( say ).length() == 0 ) say = "nothing";
               System.err.println( "You told me to say " + nothing + "." );
           }
        }
     }
    
     cookies@crazymonster$ javac TellMe.java
     cookies@crazymonster$ java TellMe
     cookies@crazymonster$ java TellMe
     cookies@crazymonster$ java TellMe --say -s
     You told me to say nothing.
     You told me to say nothing.
     cookies@crazymonster$ java TellMe --say hello
     You told me to say hello.
     cookies@crazymonster$ java TellMe --say "I'm sorry"
     You told me to say I'm sorry.
     cookies@crazymonster$ java TellMe --say="not until tomorrow" -s "I'm crazy"
     You told me to say not until tomorrow.
     You told me to say I'm crazy.
     

     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
     
    • Constructor Detail

      • NotifyOption

        public NotifyOption()
        Construct a NotifyOption with an empty list of listeners. Set the initial value to null.
      • NotifyOption

        public NotifyOption​(OptionListener listener)
        Construct a NotifyOption and register the passed listener.
        Parameters:
        listener - The listener to register.
      • NotifyOption

        public NotifyOption​(OptionListener listener,
                            java.lang.String command)
        Construct a NotifyOption and register the passed listener. Initialize the command to the value passed.
        Parameters:
        listener - The listener to register.
        command - The value of the command.
      • NotifyOption

        public NotifyOption​(OptionListener listener,
                            java.lang.String command,
                            java.lang.String value)
        Construct a NotifyOption and register the passed listener. Initialize the command to the value passed.
        Parameters:
        listener - The listener to register.
        command - The value of the command.
        value - The default value of the option.
      • NotifyOption

        public NotifyOption​(NotifyOption op)
        Construct a NotifyOption by copying the NotifyOption passed.
        Parameters:
        op - The notify option to copy.
      • NotifyOption

        public NotifyOption​(java.lang.String value)
        Construct a NotifyOption, and initialize its default value to the value passed.
        Parameters:
        value - The default value of this option.
      • NotifyOption

        public NotifyOption​(java.lang.String value,
                            java.lang.String longOption)
        Constructs a NotifyOption option initialized with the value and long option passed.
        Parameters:
        value - The initial value of this notify option.
        longOption - The long option associated with this notify option.
      • NotifyOption

        public NotifyOption​(java.lang.String value,
                            char shortOption)
        Constructs a character option initialized with the value and short option passed.
        Parameters:
        value - The initial value of this NotifyOption option.
        shortOption - The short option associated with this option.
      • NotifyOption

        public NotifyOption​(java.lang.String value,
                            java.lang.String longOption,
                            char shortOption)
        Constructs an NotifyOption option initialized with the value, short and long option passed.
        Parameters:
        shortOption - The short option associated with this option.
        longOption - The long option associated with this option.
        value - The initial value of this NotifyOption option.
    • Method Detail

      • getObject

        public java.lang.Object getObject()
        Return the value as an object.
        Specified by:
        getObject in class Option
        Returns:
        This value as an option.
      • setValue

        public void setValue​(java.lang.String value)
                      throws OptionModificationException
        Modify this option based on a string representation.
        Parameters:
        value - String representation of the object.
        Throws:
        OptionModificationException - Thrown if an error occurs during modification of an option.
      • getValue

        public java.lang.String getValue()
        Return this option as a string.
        Returns:
        This option as a string.
      • getStringValue

        public java.lang.String getStringValue()
        Return this option as a string.
        Specified by:
        getStringValue in class Option
        Returns:
        This option as a string.
      • getTypeName

        public java.lang.String getTypeName()
        Returns the type name of this option. For an NotifyOption, "NOTIFY" is returned.
        Specified by:
        getTypeName in class Option
        Returns:
        The type name of this option.
      • addOptionListener

        public void addOptionListener​(OptionListener listener)
        Adds an OptionListener to the notification list.
        Specified by:
        addOptionListener in interface OptionNotifier
        Parameters:
        listener - The OptionListener to add.
      • removeOptionListener

        public void removeOptionListener​(OptionListener listener)
        Removes an OptionListener from the notification list.
        Specified by:
        removeOptionListener in interface OptionNotifier
        Parameters:
        listener - The OptionListener to remove.
      • setOptionCommand

        public void setOptionCommand​(java.lang.String command)
        Sets the command sent when an option is invoked.
        Specified by:
        setOptionCommand in interface OptionNotifier
        Parameters:
        command - The command to send.
      • toString

        public java.lang.String toString()
        Returns a string representation of this object.
        Overrides:
        toString in class java.lang.Object
        Returns:
        A string representation of this object.