PIRL.Conductor.Maestro

## Class Kapellmeister

- java.lang.Object
- - java.awt.Component
  - - java.awt.Container
    - - java.awt.Window
      - - java.awt.Frame
        - - javax.swing.JFrame
          - - PIRL.Conductor.Maestro.Kapellmeister

All Implemented Interfaces:
  ImageObserver, MenuContainer, Serializable, EventListener, Accessible, RootPaneContainer, WindowConstants, Message_Delivered_Listener

    public class Kapellmeister
    extends JFrame
    implements Message_Delivered_Listener

A Kapellmeister is a management tool for Theaters where Conductors are located.

A Kapellmeister provides a GUI for the management of Theater locations. The Kapelmeister maintains a list of all Theaters it knows about along with the connected and disconnected status for the Stage_Manager at the Theater location. A summary status report from any connected Stage_Manager may be obtained for a selected Theater location.

The Stage_Manager at each Theater location is used to communicate with a set of Conductors assigned to the Theater. A Kapellmeister provides a table of all Conductors, and the Theater of each, along with the current processing status of each Conductor. A Profile table in the form of a matrix displays the counts of Conductors in each of the possible processing states, along with the total number of Conductors, for each unique combination of Theater and named Conductor, The name of a Conductor is typically the same as the name of the pipeline it is managing.

A Manager window may be opened onto any Conductor. The Manager offers detailed monitoring and management of the Conductor operation. A Kapellmeister provides basic start, stop, error reset, and quit controls that may be applied to selections of Conductors. The Kapelmeister can be used to define new Conductor instances to be run at any Theater location.

A file that defines the current Conductors and Theaters Profile may be generated by a Kapellmeister. A Profile file may be read by a Kapellmeister to produce the defined Conductor instances on all the specified Theaters. Defined Conductor instances that are not already present will be started; those that are already present will be quit, or stopped if they are currently running (they may optionally be aborted). Profile files, which are in Parameter Value Language text format, may be written by users as desired. Profile files that only specify Theater locations may be used to profide a Kapellmeister with a list of Theater locations to connect to and simply discover the Conductors that are operating there. A Profile file or a set of Theater locations may be specified on the Kapellmeister command line or interactively specified using the GUI.

All Conductor state information is provided directory from the operating Conductors via the Stage_Mangers; no Database tables or other intermediary information repositories are used. Conductor state information arrives and is posted to the Kapellmeister and Manager displays in real-time; no data polling cycles are used.

Connection to a Stage_Manager at a Theater location typically must be authenticated with a secure, public-private, encoded key exchange. The keys are based on a password - a character string of any length - that is known to the Stage_Manager and made known to a Kapellmeister.

A Configuration file is used to provide parameter values, including a default Stage_Manager password, that initialize various Stage_Manager communication variables and initial GUI control states.

See Also:
  `Theater`, `Stage_Manager`, `Profile`, Serialized Form

### Nested Class Summary

### Nested classes/interfaces inherited from class javax.swing.JFrame

`JFrame.AccessibleJFrame`

### Nested classes/interfaces inherited from class java.awt.Frame

`Frame.AccessibleAWTFrame`

### Nested classes/interfaces inherited from class java.awt.Window

`Window.AccessibleAWTWindow, Window.Type`

### Nested classes/interfaces inherited from class java.awt.Container

`Container.AccessibleAWTContainer`

### Nested classes/interfaces inherited from class java.awt.Component

`Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy`

### Field Summary

Fields
`static String` `ADDRESS_PARAMETER_NAME`
`static String` `CATALOG_PARAMETER_NAME`
`static String` `CONDUCTOR_NAME` The name of Conductor identities from the Stage_Manager.
`static String` `CONDUCTORS_PARAMETER_NAME`
`static String` `CONFIGURATION_SOURCE_PARAMETER_NAME`
`static String` `CONFIRM_CONDUCTOR_ABORT_PARAMETER_NAME`
`static String` `DATABASE_SERVER_PARAMETER_NAME`
`static String` `DEFAULT_CONFIGURATION_FILENAME` The default Configuration source filename.
`static int` `EXIT_COMMAND_LINE_SYNTAX` Command line syntax problem exit status (1).
`static int` `EXIT_CONFIG_FILE_PROBLEM` The log file could not be opened for writing exit status.
`static int` `EXIT_SUCCESS` Success exit status (0).
`static int` `EXIT_UNEXPECTED_EXCEPTION` An unexpected exception occured.
`static int` `EXIT_UNRECOVERABLE_ERROR` A fatal unrecoverable error was encountered.
`static String` `ID` Class identification name with source code version and date.
`static String` `Kapellmeister_Icon_Source`
`static Message` `KAPELLMEISTER_IDENTITY` The Messenger client identity Message.
`static String` `KAPELLMEISTER_NAME` The name included in the `KAPELLMEISTER_IDENTITY` and used to `find Configuration parameters`.
`static String` `MASKED_PASSWORD` Value used to display the Configuration password parameters.
`static SimpleAttributeSet` `MESSAGE_DELIVERED_STYLE` Message monitor auto-styling attributes.
`static SimpleAttributeSet` `MESSAGE_SENT_STYLE` Message monitor auto-styling attributes.
`static String` `PASSWORD_PARAMETER_NAME`
`static String` `PIPELINE_PARAMETER_NAME`
`static String` `PORT_PARAMETER_NAME`
`static String` `PROFILE_WAIT_TO_START_PARAMETER_NAME`
`static String` `RECEIVE_TIMEOUT_PARAMETER_NAME`
`static String` `THEATER_KEY_PARAMETER_NAME`
`static String` `THEATER_LOCATION_PARAMETER_NAME`
`static String` `THEATERS_PARAMETER_NAME`
`static String` `TOOLTIPS_PARAMETER_NAME`

### Fields inherited from class javax.swing.JFrame

`accessibleContext, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled`

### Fields inherited from class java.awt.Frame

`CROSSHAIR_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR`

### Fields inherited from class java.awt.Component

`BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT`

### Fields inherited from interface javax.swing.WindowConstants

`DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE`

### Fields inherited from interface java.awt.image.ImageObserver

`ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH`

### Constructor Summary

Constructors
Constructor and Description
`Kapellmeister()` Constructs a Kapellmeister using the default configuration.
`Kapellmeister(Configuration configuration)`
`Kapellmeister(Vector<String> sources)`
`Kapellmeister(Vector<String> sources, Configuration configuration)`

### Method Summary

Methods
`boolean` `Config_Flag(String name, boolean default_value)` Get the boolean value of a configuration parameter.
`String` `Config_Pathname(String name)` Get the configuration pathname for a parameter name.
`String` `Config_Value(String name)` Get the String value of a configuration parameter.
`protected boolean` `Config_Value(String name, Object value)` Set a parameter in the configuration.
`void` `Configure(Configuration configuration)` Configure the Kapellmeister.
`Kapellmeister` `CWD(File file)` Sets the current working directory for finding Profile files.
`Kapellmeister` `CWD(String pathname)` Sets the current working directory for finding Profile files.
`int` `Default_Theater_Port()` Get the default Stage_Manager socket communications port number.
`Kapellmeister` `Default_Theater_Port(int port)` Set the default Stage_Manager socket communications port number.
`Message` `Listener_Identity()` Get the idenity of this Messenger client.
`static void` `main(String[] args)`
`void` `Message_Delivered(Message_Delivered_Event event)` Take delivery of a Message and queue it for disposition.
`int` `Receive_Timeout()` Get the maximum amount of time, in seconds, that will be used when waiting for a Theater protocol Message to be received.
`Kapellmeister` `Receive_Timeout(int timeout)` Set the maximum amount of time, in seconds, that will be used when waiting for a Theater protocol Message to be received.
`static void` `Usage()`

### Methods inherited from class javax.swing.JFrame

`addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update`

### Methods inherited from class java.awt.Frame

`addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setBackground, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setOpacity, setResizable, setShape, setState, setTitle, setUndecorated`

### Methods inherited from class java.awt.Window

`addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, setVisible, show, toBack, toFront`

### Methods inherited from class java.awt.Container

`add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusDownCycle, 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, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface java.awt.MenuContainer

`getFont, postEvent`

### Field Detail

#### ID

    public static final String ID

Class identification name with source code version and date.

See Also:
  Constant Field Values

#### KAPELLMEISTER_NAME

    public static final String KAPELLMEISTER_NAME

The name included in the `KAPELLMEISTER_IDENTITY` and used to `find Configuration parameters`.

See Also:
  Constant Field Values

#### KAPELLMEISTER_IDENTITY

    public static final Message KAPELLMEISTER_IDENTITY

The Messenger client identity Message.

The identity contains the `KAPELLMEISTER_NAME` `Identity`, a `Message.CLASS_ID_PARAMETER_NAME` parameter with the `ID` value, and a `Configuration.HOST` parameter with the `Host.FULL_HOSTNAME` value.

#### DEFAULT_CONFIGURATION_FILENAME

    public static final String DEFAULT_CONFIGURATION_FILENAME

The default Configuration source filename.

See Also:
  Constant Field Values

#### THEATERS_PARAMETER_NAME

    public static final String THEATERS_PARAMETER_NAME

See Also:
  Constant Field Values

#### THEATER_LOCATION_PARAMETER_NAME

    public static final String THEATER_LOCATION_PARAMETER_NAME

See Also:
  Constant Field Values

#### ADDRESS_PARAMETER_NAME

    public static final String ADDRESS_PARAMETER_NAME

See Also:
  Constant Field Values

#### THEATER_KEY_PARAMETER_NAME

    public static final String THEATER_KEY_PARAMETER_NAME

See Also:
  Constant Field Values

#### CONDUCTORS_PARAMETER_NAME

    public static final String CONDUCTORS_PARAMETER_NAME

See Also:
  Constant Field Values

#### PIPELINE_PARAMETER_NAME

    public static final String PIPELINE_PARAMETER_NAME

See Also:
  Constant Field Values

#### CATALOG_PARAMETER_NAME

    public static final String CATALOG_PARAMETER_NAME

See Also:
  Constant Field Values

#### CONFIGURATION_SOURCE_PARAMETER_NAME

    public static final String CONFIGURATION_SOURCE_PARAMETER_NAME

See Also:
  Constant Field Values

#### DATABASE_SERVER_PARAMETER_NAME

    public static final String DATABASE_SERVER_PARAMETER_NAME

See Also:
  Constant Field Values

#### CONFIRM_CONDUCTOR_ABORT_PARAMETER_NAME

    public static final String CONFIRM_CONDUCTOR_ABORT_PARAMETER_NAME

See Also:
  Constant Field Values

#### PROFILE_WAIT_TO_START_PARAMETER_NAME

    public static final String PROFILE_WAIT_TO_START_PARAMETER_NAME

See Also:
  Constant Field Values

#### PORT_PARAMETER_NAME

    public static final String PORT_PARAMETER_NAME

See Also:
  Constant Field Values

#### RECEIVE_TIMEOUT_PARAMETER_NAME

    public static final String RECEIVE_TIMEOUT_PARAMETER_NAME

See Also:
  Constant Field Values

#### PASSWORD_PARAMETER_NAME

    public static final String PASSWORD_PARAMETER_NAME

See Also:
  Constant Field Values

#### TOOLTIPS_PARAMETER_NAME

    public static final String TOOLTIPS_PARAMETER_NAME

See Also:
  Constant Field Values

#### Kapellmeister_Icon_Source

    public static String Kapellmeister_Icon_Source

#### MASKED_PASSWORD

    public static final String MASKED_PASSWORD

Value used to display the Configuration password parameters.

See Also:
  Constant Field Values

#### CONDUCTOR_NAME

    public static final String CONDUCTOR_NAME

The name of Conductor identities from the Stage_Manager.

See Also:
  Constant Field Values

#### MESSAGE_DELIVERED_STYLE

    public static final SimpleAttributeSet MESSAGE_DELIVERED_STYLE

Message monitor auto-styling attributes.

#### MESSAGE_SENT_STYLE

    public static final SimpleAttributeSet MESSAGE_SENT_STYLE

Message monitor auto-styling attributes.

#### EXIT_SUCCESS

    public static final int EXIT_SUCCESS

Success exit status (0).

See Also:
  Constant Field Values

#### EXIT_COMMAND_LINE_SYNTAX

    public static final int EXIT_COMMAND_LINE_SYNTAX

Command line syntax problem exit status (1).

See Also:
  Constant Field Values

#### EXIT_CONFIG_FILE_PROBLEM

    public static final int EXIT_CONFIG_FILE_PROBLEM

The log file could not be opened for writing exit status.

See Also:
  Constant Field Values

#### EXIT_UNRECOVERABLE_ERROR

    public static final int EXIT_UNRECOVERABLE_ERROR

A fatal unrecoverable error was encountered.

See Also:
  Constant Field Values

#### EXIT_UNEXPECTED_EXCEPTION

    public static final int EXIT_UNEXPECTED_EXCEPTION

An unexpected exception occured.

See Also:
  Constant Field Values

### Constructor Detail

#### Kapellmeister

    public Kapellmeister()
                  throws Configuration_Exception

Constructs a Kapellmeister using the default configuration.

The `DEFAULT_CONFIGURATION_FILENAME` will be

Throws:
  `Configuration_Exception`

#### Kapellmeister

    public Kapellmeister(Vector<String> sources)
                  throws Configuration_Exception

Throws:
  `Configuration_Exception`

#### Kapellmeister

    public Kapellmeister(Configuration configuration)
                  throws Configuration_Exception

Throws:
  `Configuration_Exception`

#### Kapellmeister

    public Kapellmeister(Vector<String> sources,
                 Configuration configuration)
                  throws Configuration_Exception

Throws:
  `Configuration_Exception`

### Method Detail

#### Default_Theater_Port

    public int Default_Theater_Port()

Get the default Stage_Manager socket communications port number.

Returns:
  The communications port number.
See Also:
  `Default_Theater_Port(int)`

#### Default_Theater_Port

    public Kapellmeister Default_Theater_Port(int port)

Set the default Stage_Manager socket communications port number.

Parameters:
  `port` - The `default port` for Stage_Manager communications.
Returns:
  This Kapellmeister.

#### Receive_Timeout

    public int Receive_Timeout()

Get the maximum amount of time, in seconds, that will be used when waiting for a Theater protocol Message to be received.

Returns:
  The timeout value.
See Also:
  `Receive_Timeout(int)`

#### Receive_Timeout

    public Kapellmeister Receive_Timeout(int timeout)

Set the maximum amount of time, in seconds, that will be used when waiting for a Theater protocol Message to be received.

Parameters:
  `timeout` - The `default timeout value` which is also applied to all Theaters in the Theaters list.
Returns:
  This Kapellmeister.

#### Configure

    public void Configure(Configuration configuration)
                   throws Configuration_Exception

Configure the Kapellmeister.

Parameter names are case insensitive. All parameters are optional. Parameters will first be sought in the `KAPELLMEISTER_NAME` group.

`PORT_PARAMETER_NAME`
  The `default Stage_Manager communcations socket port number`.
`RECEIVE_TIMEOUT_PARAMETER_NAME`
  The `maximum amount of time, in seconds, that will be used when waiting for a Theater protocol Message to be received`.
`Dispatcher.PASSWORD_PARAMETER_NAME`
  The password required by the Stage_Manager to authenticate client connections. If `Dispatcher.UNAUTHENTICATED_CONNECTIONS_ALLOWED` is true unauthenticated connections with no password will be accepted.
`TOOLTIPS_PARAMETER_NAME`
  If true, enabled, yes, on, or 1 GUI tooltips will be enabled.

Parameters:
  `configuration` - A Configuration. If null, an attempt will be made to obtain a Configuration using the `DEFAULT_CONFIGURATION_FILENAME` source.
Throws:
  `Configuration_Exception`

#### Config_Value

    public String Config_Value(String name)

Get the String value of a configuration parameter.

Parameters:
  `name` - The name of the parameter from which to obtain the value. If the name is not an absolute pathname it will be `qualified` before use.
Returns:
  A String value. This will be null if the parameter could not be found in the `configuration`.

#### Config_Flag

    public boolean Config_Flag(String name,
                      boolean default_value)

Get the boolean value of a configuration parameter.

Parameters:
  `name` - The name of the parameter from which to obtain the value. If the name is not an absolute pathname it will be `qualified` before use.
  `default_value` - The default value to be returned if the named parameter is not present in the Configuration.
Returns:
  The `enabled` state of the parameter, or the default value if the parameter is not present in the Configuration.

#### Config_Value

    protected boolean Config_Value(String name,
                       Object value)
                            throws Configuration_Exception

Set a parameter in the configuration.

The parameter is set in the `parameter group` appropriate for the application.

Parameters:
  `name` - The name of the Assignment parameter to have its value set. If the name is not an absolute pathname it will be `qualified` before use.
  `value` - An Object to use for the parameter's value. <b.N.B.: If null, the parameter will have no value; it will be a Token.
Returns:
  true if an existing parameter by the same name was replaced; false if the parameter is being set for the first time.
Throws:
  `Configuration_Exception` - If there was a problem setting the parameter.

#### Config_Pathname

    public String Config_Pathname(String name)

Get the configuration pathname for a parameter name.

If the name is not an `absolute pathname` the `KAPELLMEISTER_NAME` group name is prepended to the name to form an absolute pathname.

Parameters:
  `name` - A parameter name String.
Returns:
  The possibily modified abosulte pathname String.

#### CWD

    public Kapellmeister CWD(String pathname)
                      throws FileNotFoundException

Sets the current working directory for finding Profile files.

Parameters:
  `pathname` - A host filesystem pathname. If null, the "user.dir" System property will be used.
Returns:
  This Kapellmeister.
Throws:
  `FileNotFoundException` - If neither the file nor the file's parent refers to an existing directory.
See Also:
  `CWD(File)`

#### CWD

    public Kapellmeister CWD(File file)
                      throws FileNotFoundException

Sets the current working directory for finding Profile files.

Parameters:
  `file` - A File to which to set the CWD. If null, the "user.dir" System property will be used. If the file does not refer to an existing directory, the file's parent will be used.
Returns:
  This Kapellmeister.
Throws:
  `FileNotFoundException` - If neither the file nor the file's parent refers to an existing directory.

#### Listener_Identity

    public Message Listener_Identity()

Get the idenity of this Messenger client.

Specified by:
  `Listener_Identity` in interface `Message_Delivered_Listener`
Returns:
  A copy of the `KAPELLMEISTER_IDENTITY` Message.

#### Message_Delivered

    public void Message_Delivered(Message_Delivered_Event event)

Take delivery of a Message and queue it for disposition.

N.B.: This method is public as a side-effect of implementing the Message_Delivered_Listener interface.

The Message_Delivered_Event is added to a queue and the message disposition method is scheduled for execution on the Swing event thread where the Message_Delivered_Event will be retrieved from the queue and examined for appropriate disposition.

Specified by:
  `Message_Delivered` in interface `Message_Delivered_Listener`
Parameters:
  `event` - The Message_Delivered_Event that arrived from a Messenger.
See Also:
  `Message_Delivered_Event`

#### main

    public static void main(String[] args)

#### Usage

    public static void Usage()