org.pentaho.platform.api.action
Interface IStreamingAction

All Superinterfaces:
IAction
All Known Implementing Classes:
ChartAction

public interface IStreamingAction
extends IAction

The interface for Actions that want to stream content to the caller. A "streaming" output is a special type of action definition output that will result in an OutputStream being set on the Action. It is generally recommended that if your Action bean yields any content for user consumption, that it implement IStreamingAction. This guarantees that your Action will have the option of:

From the perspective of the Action Sequence itself, an output is considered a "streaming" output if the attribute "type" is set to "content", e.g. The output may or may not have a globally defined destination to which it corresponds. If the output does correspond to a globally defined output with a destination, then the source of the OutputStream will be determined by the IOutputHandler provided during the execution of the Action Sequence by the ISolutionEngine.

In the case that an output is considered "streaming", it will basically be treated similar to an input in that it will be set on the Action with a setter method. For example, if an action definition declares a streaming output called "reportContent", then the platform will attempt to call a method on the Action called "setReportContentStream(OutputStream os)". Note that the post-fix "Stream" will be added to the name of your output. Streaming outputs will not be queried once the Action has finished executing like a normal non-streaming output would.

Since:
3.6
Author:
aphillips
See Also:
IAction

Method Summary
 String getMimeType(String streamPropertyName)
          Requests the mimetype of the content that the Action will write to the provided stream name.
 
Methods inherited from interface org.pentaho.platform.api.action.IAction
execute
 

Method Detail

getMimeType

String getMimeType(String streamPropertyName)
Requests the mimetype of the content that the Action will write to the provided stream name. To use the example in the above javadoc, this streamPropertyName would be "reportContent".

Parameters:
streamPropertyName - the action definition output name representing the streamed output, e.g. "reportContent"
Returns:
the mimeType for the stream indicated by streamPropertyName