The Switch configurator needs a mechanism to communicate with the third-party application with the following basic requirements:
Pass on the values of the properties to configure the behavior of an action.
Start an action on some input file(s).
Detect termination of an action.
Locate the output file(s).
Determine success/warning/error status.
The third-party application should clearly document how Switch can discriminate between:
Successful execution versus failure to execute an action.
Messages that should be passed on to the Switch execution log versus messages that are irrelevant to the Switch user (or output that can safely be ignored).
The "level" of messages passed on to the Switch execution log: info/warning/error.
If required, Switch can serialize all communication with a third-party application, even if many instances of the same configurator are active simultaneously. See Execution modes for more information.
Switch can also automatically terminate a third-party application if an action does not complete within a certain amount of time (which is configurable as a user preference).
If a third-party application is available on both Mac and Windows, it is acceptable (but not necessarily preferable) to use a different communication mechanism on each platform. For example, the Adobe Acrobat Distiller configurator uses COM on Windows and AppleScript on Mac. In other words, a Switch configurator can include platform-specific code, as long as the user's view of the configurator's properties and behavior is the same on both platforms.
Platform-specific behavior is achieved by including an implementation in two different scripting languages (see script package and selecting a scripting language) or through the Environment.isMac() and Environment.isWindows() functions.