Package org.knime.base.node.util.exttool

Provides functionality for nodes that want to launch external programs.
The CommandExecution can be used to run the external program.

See:
          Description

Class Summary
CommandExecution Wraps a Java runtime process.
ExtToolOutputNodeModel Implements a NodeModel for nodes that launch external commands.
ExtToolOutputNodeView<T extends ExtToolOutputNodeModel> Base class for both output views.
ExtToolStderrNodeView<T extends ExtToolOutputNodeModel> The view showing the output to standard error.
ExtToolStdoutNodeView<T extends ExtToolOutputNodeModel> The view showing the output to standard output.
ViewUpdateNotice Object sent to the node views to notify them about a new line that should be displayed.
 

Enum Summary
ViewUpdateNotice.ViewType the different types of view reacting to update notifications.
 

Package org.knime.base.node.util.exttool Description

Provides functionality for nodes that want to launch external programs.
The CommandExecution can be used to run the external program. It will pick up its output (to standard out and to standard error out), log it to the log file, and keep the last 500 lines in two buffers. It will try to destroy the process if the user cancels (through the execution context). And it will return the exit code from the external program.
The two views provided display a text field and react to ViewUpdateNotice events. One is meant to display output to standard error, the other to standard output.
The provided NodeModel is meant to clue it all together, and here is how: Create your own NodeModel by extending ExtToolOutputNodeModel. In the execute method use the CommandExecution to execute the external program. Register your NodeModel as Observer with it, to see the output in the views during execution (addObserver). Provide the execution context you get in the parameter list. If the execution succeeds (and returns with an OK exit code) save the output through the #setExternalOutput(LinkedList) and #setExternalErrorOutput(LinkedList) methods. You get the output from the CommandExecution object. If the execution throws an Exception, or exists with an error exit code, save the output with the methods #setFailedExternalOutput(LinkedList) and #setFailedExternalErrorOutput(LinkedList). The NodeModel takes care of saving and loading these buffers when the workflow is saved/loaded (don't forget to call the super implementation if you override the save/load internals methods).
To provide views to display the output, in your NodeFactory create instances of ExtToolStdoutNodeView (for a view of the output to standard out) and/or ExtToolStderrNodeView (for a view of the output to standard error).



Copyright, 2003 - 2010. All rights reserved.
University of Konstanz, Germany.
Chair for Bioinformatics and Information Mining, Prof. Dr. Michael R. Berthold.
You may not modify, publish, transmit, transfer or sell, reproduce, create derivative works from, distribute, perform, display, or in any way exploit any of the content, in whole or in part, except as otherwise expressly permitted in writing by the copyright owner or as specified in the license file distributed with this product.