Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.singularsys.jepexamples.consoles
Class Console

    java.lang.Object
      java.awt.Component
          java.awt.Container
              java.awt.Panel
                  java.applet.Applet
                      com.singularsys.jepexamples.consoles.Console

All Implemented Interfaces:
  java.awt.event.KeyListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible

Direct Known Subclasses:
  BigDecimalConsole, CPConsole, PostfixDumperConsole, PostfixEvaluationConsole, PrintConsole, VectorConsole

    public class Console

extends java.applet.Applet
implements java.awt.event.KeyListener

This class implements a simple command line utility for evaluating mathematical expressions.

       Usage: java org.lsmp.djepExamples.Console [expression]

If an argument is passed, it is interpreted as an expression and evaluated. Otherwise, a prompt is printed, and the user can enter expressions to be evaluated.

This class and its subclasses can also be run as a java applet which displays a textarea for interactive input.

This class has been designed to be sub classed to allow different consol applications. The methods

     public void initialise()
     public void processEquation(Node node) throws Exception
     public boolean testSpecialCommands(String command)
     public void printPrompt()
     public void printIntroText()
     public void printHelp()

can all be overwritten.

Furthermore main should be overwritten. For example

            public static void main(String args[]) {
                    Console c = new DJepConsole();
                    c.run(args);
            }

The main input loop is approximately

     initialise();
     printIntroText();
     print(getPrompt());
     String command;
     while((command = getCommand()) != null)
     {
            if(command.equals("quit") || command.equals("exit"))
                    break;
            if(!testSpecialCommands(command)) continue;
       try {
              Node n = j.parse(command);
              processEquation(n);
       } catch(Exception e) {}
            print(getPrompt());
     }

See Also:
  Serialized Form

Nested Class Summary
`static class` | `Console.SPEC_ACTION`

Nested classes/interfaces inherited from class java.applet.Applet
`java.applet.Applet.AccessibleApplet`

Nested classes/interfaces inherited from class java.awt.Panel
`java.awt.Panel.AccessibleAWTPanel`

Nested classes/interfaces inherited from class java.awt.Container
`java.awt.Container.AccessibleAWTContainer`

Nested classes/interfaces inherited from class java.awt.Component
`java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy`

Field Summary
`protected Jep` | `jep` Main JEP object
`protected java.awt.TextArea` | `ta` Text area for user input in applets.

Fields inherited from class java.awt.Component
`BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT`

Fields inherited from interface java.awt.image.ImageObserver
`ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH`

Constructor Summary
`Console()` Constructor

Method Summary
`java.lang.String` | `getAppletInfo()`
`protected java.lang.String` | `getCommand()` Get a command from the input.
`java.lang.String` | `getPrompt()` Prints the prompt string.
`boolean` | `handleError(java.lang.Exception e)` Handle an error in the parse and evaluate routines.
`void` | `init()` Applet initialization
`void` | `initialise()` sets up all the needed objects.
`void` | `inputLoop()` The main input loop for interactive operation.
`void` | `keyPressed(java.awt.event.KeyEvent arg0)`
`void` | `keyReleased(java.awt.event.KeyEvent event)` Handles keyRelease events
`void` | `keyTyped(java.awt.event.KeyEvent arg0)`
`static void` | `main(java.lang.String[] args)` Creates a new Console object and calls run()
`void` | `print(java.lang.Object o)` Prints a line of text no newline.
`void` | `printFuns()` Prints a list of defined functions.
`void` | `printHelp()` Print help message.
`void` | `printIntroText()` Prints introductory text.
`void` | `println(java.lang.Object o)` Prints a line of text no newline.
`void` | `printOps()` Prints a list of defined operators.
`void` | `printStdHelp()` Prints a standard help message.
`void` | `printVars()` Prints a list of variable.
`boolean` | `processCommand(java.lang.String command)` Process a single command.
`void` | `processEquation(Node node)` Performs the required operation on a node.
`void` | `run(java.lang.String[] args)` The main entry point with command line arguments
`java.lang.String[]` | `split(java.lang.String s)` Splits a string on spaces.
`Console.SPEC_ACTION` | `testSpecialCommands(java.lang.String command)` Checks for special commands.

Methods inherited from class java.applet.Applet
`destroy, getAccessibleContext, getAppletContext, getAudioClip, getAudioClip, getCodeBase, getDocumentBase, getImage, getImage, getLocale, getParameter, getParameterInfo, isActive, newAudioClip, play, play, resize, resize, setStub, showStatus, start, stop`

Methods inherited from class java.awt.Panel
`addNotify`

Methods inherited from class java.awt.Container
`add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getInsets, getLayout, getListeners, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, paramString, preferredSize, print, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, removeNotify, setComponentZOrder, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, setLayout, transferFocusBackward, transferFocusDownCycle, update, validate, validateTree`

Methods inherited from class java.awt.Component
`action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusUpCycle`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### jep

    protected Jep jep

  Main JEP object

### ta

    protected java.awt.TextArea ta

  Text area for user input in applets.

Constructor Detail

### Console

    public Console()

  Constructor

Method Detail

### init

    public void init()

  Applet initialization

  Overrides:
    `init` in class `java.applet.Applet`

### initialise

    public void initialise()

  sets up all the needed objects.

### main

    public static void main(java.lang.String[] args)

  Creates a new Console object and calls run()

### run

    public void run(java.lang.String[] args)

  The main entry point with command line arguments

### inputLoop

    public void inputLoop()

  The main input loop for interactive operation. Repeatedly calls getCommand() and processCommand().

### processCommand

    public boolean processCommand(java.lang.String command)

  Process a single command.
  1. Tests for exit, quit, and help.
  2. Tests for any special commands used by sub classes. `testSpecialCommands(String)`
  3. Parses the command.
  4. Processes the node. `processEquation(Node)`
  6. Checks for errors. `handleError(Exception)`

  Parameters:
    `command` - The line to be processed
  Returns:
    false if un-recoverable error or 'quit' or 'exit'

### processEquation

    public void processEquation(Node node)
                         throws ParseException

  Performs the required operation on a node. Typically evaluates the node and prints the value.

  Parameters:
    `node` - Node representing expression
  Throws:
    `ParseException` - if a Parse or evaluation error

### getCommand

    protected java.lang.String getCommand()

  Get a command from the input.

  Returns:
    null if an IO error or EOF occurs.

### getPrompt

    public java.lang.String getPrompt()

  Prints the prompt string.

### printStdHelp

    public final void printStdHelp()

  Prints a standard help message. Type 'quit' or 'exit' to quit, 'help' for help.

### printHelp

    public void printHelp()

  Print help message.

### printIntroText

    public void printIntroText()

  Prints introductory text.

### printFuns

    public void printFuns()

  Prints a list of defined functions.

### printOps

    public void printOps()

  Prints a list of defined operators.

### printVars

    public void printVars()

  Prints a list of variable.

### testSpecialCommands

    public Console.SPEC_ACTION testSpecialCommands(java.lang.String command)

  Checks for special commands. For example a subclass may have a verbose mode switched on of off using the command

      verbose on

  This method can be used detected this input, perform required actions and skip normal processing by returning true. In general sub classes should call the superclass methods to test for special commands that class implements

  Parameters:
    `command` -
  Returns:
    SPEC_ACTION.CONTINUE - continue processing this equation, SPEC_ACTION.BREAK - stop processing this equation and get the next line of input, SPEC_ACTION.EXIT stop the program
  See Also:
    `split(String)`

### handleError

    public boolean handleError(java.lang.Exception e)

  Handle an error in the parse and evaluate routines.

  Parameters:
    `e` -
  Returns:
    false if the error cannot be recovered and the program should exit

### split

    public java.lang.String[] split(java.lang.String s)

  Splits a string on spaces.

  Parameters:
    `s` - the input string
  Returns:
    an array of the tokens in the string

### print

    public void print(java.lang.Object o)

  Prints a line of text no newline. Subclasses should call this method rather than System.out.print to allow for output to different places.

### println

    public void println(java.lang.Object o)

  Prints a line of text no newline. Subclasses should call this method rather than System.out.print to allow for output to different places.

### keyReleased

    public void keyReleased(java.awt.event.KeyEvent event)

  Handles keyRelease events

  Specified by:
    `keyReleased` in interface `java.awt.event.KeyListener`

### keyPressed

    public void keyPressed(java.awt.event.KeyEvent arg0)

  Specified by:
    `keyPressed` in interface `java.awt.event.KeyListener`

### keyTyped

    public void keyTyped(java.awt.event.KeyEvent arg0)

  Specified by:
    `keyTyped` in interface `java.awt.event.KeyListener`

### getAppletInfo

    public java.lang.String getAppletInfo()

  Overrides:
    `getAppletInfo` in class `java.applet.Applet`

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2007 Singular Systems http://www.singularsys.com/jep