Extensions

Extensions

There are two main types of Extensions:

Plugins

Event Handlers

See also:

Plugins - general technical information

Plugin loading, invocation and discovery

Create a plugin

Report error messages from plugins

Plugins

Web Determinations and the Determinations Server provide a plugin architecture to enable the default behavior of the application to be customized on a per project basis.

For information on creating a plugin, go to Create a plugin; this will help you understand the processes involved in creating the more specific extensions listed below.

Each of the following plugin types allows a specific component in the interview to be extended:

 

There are also the following Custom Validators that can be used for validating controls and screens:

 

Only the Document Generator plugin can have multiple plugin implementations within the same Web Determinations interview; for example, it is possible to write several Document Generators (PDF, custom XML, MSExcel, and so on) to provide different options in generating documents of the current Interview.

All other plugin types can only have one implementation in an interview; for example, the interview can only use one DataAdaptorPlugin implementation, so if there are several DataAdaptorPlugins in Web Determinations, the plugin developer must ensure that they register themselves to an Interview exclusively to each other. More information on plugin authoring can be found in Understanding the InterviewSession

Plugins are created by extending Java/.Net interfaces and deploying them into a specific folder in the Web Determinations web application. It is important to note that while default component behavior is being overridden by writing and providing custom plugins, it is necessary to understand how Web Determinations uses plugins because they cannot alter the way each plugin type is used.

More information about each plugin type can be found in their respective plugin information articles, including their 'variety' class; for example, Data Adaptors are Engine Session plugins.

See also:

Plugins - general technical information

Event Handlers

Event Handlers provide the most flexibility for extending Web Determinations, since plugin extensions only override a certain set of components. Web Determinations provides a set of events fired at specific points in an Interview that can be hooked into to provide project-specific functionality.

When Web Determinations goes through an interview, events are fired at certain points throughout the session.  When these events are fired, the Event Handlers for that specific event are called to provide their added functionality. Each event is different to each other in terms of what interview data it exposes and what point in the Web Determinations session it is called.

Each event will expose data to its Event Handler/s so that a handler has enough knowledge about the context of when the event was fired, and also enough accessibility/permission to modify certain parts of Web Determinations session data and thus provide functionality.

An Event Handler might be written for a specific event by extending the EventHandler (Java/.Net) Interface of the event and deploying it to Web Determinations which will then call that Event Handler when the event is fired.

It is important to be familiar with when a particular event is fired, what the expected usage of the event is, and the interview data it exposes.

For more details about each event and event handling, go to Events and Event Handlers.