- Index

< Previous |  | Next >

# Interface Editor

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.

## Interface Tab

The Interface tab has two panels and two controls:

- Constants, Named Schemas, and Table Schemas

- Streams and Query Tables

- Allow Implemenations to Override

### Constants, Named Schemas, and Table Schemas

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 application module when you base the module on the interface.

### Streams and Query Tables

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:

1. Open the Add Stream dialog (or the Edit Input Stream or Edit Output Stream dialog) with either of these methods:

   1. Click Add Stream, or select an existing stream definition and click Edit.

   2. 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.

2. 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:

1. Open the Add Query Table dialog (or the Edit Query Table dialog) with either of these methods:

   1. Click Add Query Table, or select an existing table definition and click Edit.

   2. 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.

2. For each Query Table, specify:

   - A name for this table.

   - Whether this table is to be a placeholder or shared Query Table. 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.

### Allow Implementations to Override

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.

### EventFlow Package

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.

## Imports Tab

The Imports tab has two panels:

- Manage Module Imports

- Extend Interfaces

### Manage Module Imports

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 applications, 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 application'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.

### Extend Interfaces

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 Add Interface button to search the current project's module search path for StreamBase interface files. The Choose Interfaces dialog offers one option check box:

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.

## Description Tab

Use the Description tab to add an optional description to document the purpose of this interface. The description is stored in the XML definition of the interface.

Back to Top ^