Mix-in interfaces
While your tool must implement one of the supported tool interfaces—InputTool
, OutputTool
, TransformTool
, or GeneralTool
—it may also implement extra "mix-in" interfaces to indicate to RPDM that it supports optional behavior. The optional interfaces start with the word "Has" or "Is" to indicate what optional behavior is being implemented. While explained in more detail elsewhere, these mix-in interfaces are summarized here.
HasDynamicConnectors
Implement net.redpoint.dataflow.transform.HasDynamicConnectors
to indicate that your tool can add or remove data flow connectors depending on the configuration state. For example, your tool might have an option to read a table from either an input connection or from a file. It would return a different List<InputConnectorInfo>
depending on this configuration setting.
HasDynamicUI
Implement net.redpoint.dataflow.transform.HasDynamicUI
to indicate that your tool is capable of one or both of these things:
Responding to user actions such as button press, dropdown selection, or other configuration change.
Filling in "dynamic content" from external sources, such as populating a
@DropList
-annotated control with a list of database tables. Typically, such controls are also annotated with one of the@Dynamic
annotations.
IsWebServiceEnabled
Implement net.redpoint.dataflow.transform.IsWebServiceEnabled
to indicate that your SDK tool can run in a web service. This mostly means implementing the additional web service lifecycle methods webServicePrepare()
and webServiceCleanup()
, which are called before and after every request. Your tool will still get its prepare()
call during web service startup, and get a cleanup()
call during shutdown. In between, the web service lifecycle calls will be repeated, as indicated below:
Even if your tool is web service enabled, it may not always be running as a web service. To detect the web service state, set a boolean
flag in the webServicePrepare()
method. This can be used to tune batch behavior (optimized for large data, with threads and pipelines) from web-service behavior (reusing objects and connections, avoiding parallelism).
HasContextHelp
Implement net.redpoint.dataflow.transform.HasContextHelp
to indicate that your SDK tool has associated contextual help. Override the getContextHelpTopic
method so it returns the context help topic with which the tool is associated (e.g. CONTEXT_InternationalPhone
).
Presently, HasContextHelp
only supports linking to an existing Data Management HTML Help topic. In the future, support for embedded topic content will be introduced, allowing third-party SDK tools developers to add their own contextual help to Data Management's help system.