Interfaces and classes for data transfer between the kernel and extensions.

The classes and interfaces of this package appear as parameter and result types of the interfaces in the kernel.extension package. Parameter objects resemble additional context data provided to the extension, while result objects are required from the extension.

On the kernel level the context information is usually empty, i.e., the respective interface is only a marker interface. Higher layers of the tool architecture may extend these interfaces with additional pieces of information. Here, the kernel is only the mediator between plugable parts of the tool.

Some of the result objects provide additional methods, which are used by the kernel at a later time after requesting it from the extension (e.g. once the ITopLevelElement is known to the kernel, the runAsCommand method will be called whenever some change to the model must be applied).