Contents
Use the Interface Editor to define a StreamBase interface, or to edit the definition of an existing interface. StreamBase interfaces are described in Using Interfaces.
The Interface Editor has three tabs as listed in the Contents above.
The Interface tab has two panels and two controls:
Use the controls in this panel in exactly the same way as the same-named panel of the Definitions tab of the EventFlow Editor. See Constants, Named Schemas, and Table Schemas for instructions.
Use this panel to define constants, named schemas, and table schemas for the current interface. Constants and schemas defined in an interface are automatically imported into an EventFlow module when you base the module on the interface.
Use this panel to define the essence of a StreamBase interface, which is the set of input streams, output streams, and Query Tables that must be used by any module or interface that implements this interface.
Note
Before defining streams and tables, you must first define or import the named schemas and table schemas that your streams and tables will use.
The following rules apply when defining the components of an interface:
-
The schemas of all input streams must be defined by named schemas.
-
The output streams of an interface use the declared output schema feature, which must be defined by a named schema.
-
All Query Tables in the interface must be defined with table schemas.
Use the following steps to add a stream to an interface definition:
-
Open the Add Stream dialog (or the Edit Input Stream or Edit Output Stream dialog) with either of these methods:
-
Click
, or select an existing stream definition and click . -
Right-click anywhere in the Streams and Query Tables panel, and select Add Stream from the context menu.
The resulting dialog preselects Type: Input or Type: Output to match the currently selected stream, if any.
-
-
For each stream, specify:
-
A name for this stream.
-
Whether this is an input or output stream.
-
The named schema on which the stream is based.
-
An optional description to document the purpose of this stream definition.
-
Use the following steps to add a Query Table to an interface definition:
-
Open the Add Query Table dialog (or the Edit Query Table dialog) with either of these methods:
-
Click
, or select an existing table definition and click . -
Right-click anywhere in the Streams and Query Tables panel, and select Add Query Table from the context menu.
If the current selection is a placeholder table, the resulting dialog preselects Type: Placeholder. If the current selection is a shared table, the dialog preselects Type: Shared.
-
-
For each Query Table, specify:
-
A name for this table.
-
Whether this table is to be a placeholder or shared Query Table, or both. Placeholder tables define and stand in for a real Query Table in the module that implements this interface. Shared tables are actual Query Tables that can be accessed by more than one module. You can only define a shared Query Table for an interface that will be used as a template. Shared Query Tables cannot be defined in interfaces that are referenced by an Extension Point operator. See Using Interfaces with Extension Points for further information.
-
The table schema on which the table is based.
-
An optional description to document the purpose of this table definition.
-
Mark this interface as hygienic by clearing the check box for the Allow implementations control:
Select the check box to mark this interface as non-hygienic:
See Hygienic Modules for more on hygienic versus non-hygienic interfaces.
The read-only EventFlow Package field shows the Maven package name for this StreamBase interface file. The package name is determined by the file's location in the Maven project structure. If you copy this file to another project, the package name changes accordingly.
The package name is stored as part of the underlying EventFlow XML, and is managed automatically by Studio.
The Imports tab has two panels:
See Importing Resources from One Module to Another for instructions on using this panel.
Use this panel to import all or a selection of the named schemas, constants, and table schemas from a module to the current interface. The modules from which you import must be in the current project's module search path.
For large, multi-module fragments, this feature allows you to define commonly used schemas and constants in one or more central modules, and then import them from the central modules to the fragment's interfaces.
Before using this feature, make sure the modules of interest are in the current module's module search path as managed by Maven.
Use the Extend Interfaces panel of the Imports tab to use one or more existing StreamBase interfaces as templates to define portions of the current interface. You can nest interface definitions to any depth, basing one interface on a second, which is partially defined by a third, and so on.
Use the module search path for StreamBase interface files. The Choose Interfaces dialog offers one option check box:
button to search the current project's- Import the definitions and imports from the interface
-
Automatically imports the constants, named schemas, and table schemas defined in the external interface to the current interface, including any constants and schemas that are themselves imported into the external interface's definition.
See Using Interfaces for more on StreamBase Interfaces.