Thomas Karl Osten GMD Tour IDL to Smalltalk Generator Help

Home Page
Site Map


Work History
Job Tour
GMD Tour


 <    > 

Contents
Survey

DPE 1
DPE 1 Tools
Generator 1
Monitoring
DPE 2
DPE 2 Tools
Generator 2
   Help
GUI Kit
Subscription 2
ODL Editor

GMD

Tangram specific DST based IDL to Smalltalk Generator Help

TnIDLSmalltalkGenerator V.1.32 alpha (in Application Version: 3.48) (or higher)

Platform: ParcPlace Digitalk VisualWorks for Smalltalk-80 Release 2.5.1 with Distributed Smalltalk Release 5.5., ENVY Release 3.01.
This tool is under construction, please report bugs to tko.

-------------------------------

Contents:

Description
Input
Output
Example
Settings
    Target application (input field)
    Top interface superclass
    Top CO superclass
    Struct superclass
    Union superclass
    set interface inheritance policy
    [set module name abbreviations]
    [set interface superclass exclusion list]
    [set interface - CO list]
    [set CO ODL name list]
    set class name project prefix
    set automatic CO classname prefix
Options
    [set file out comments]
    [set file out log]
    [set Transcript log]
    set verbose
References

Description

IDL Smalltalk Generator 2

ISG generates Smalltalk code (classes and methods) for applications of the TINA Platform framework using IDL (Interface Definition Language) files as input.
This generator reuses methods of IDL2SSK (for details see IDL to Smalltalk Skeleton - Generator V. 3.6) with a GUI enabling the user to select single IDL elements.
ISG supports interface inheritance and interactive superclass definition.


Input

IDL (as DSTRepository method), CORBA 2.0 compatible (see [1]).


Output

Generated code

Class         protocol                    method
-------------------------------------------------------------------------

Struct        instance:
                      accessing           setting/getting of dictionary values
                                          including       legal value template as comment

Union         instance:
                      testing             testing of discriminator (case) parameters

TnXYZModule   class:
                      exception signals   exception signal access
                      exceptions          exception raising
                      enumerations        constants access
                      defaults            prefixes access

Interface     instance:
                      accessing           delegating to core
                      operations          delegating to core

Core object   class:
                      defaults            initialInterfaceType
                                          requiredInterfaceTypes
                                          standardInterfaceTypes
                                          supportedInterfaceTypes
                                          ODLName
                      exception signals   exception signal access
                      exceptions          exception raising
                      enumerations        constants access

              instance:
                      accessing           setting/getting of attributes
                      operations          method skeletons/stubs
                                          including  exception templates as comment
                                                     in/out parameter templates as comment

Example

ENVY-Application: Tn_Ass_Generated V. 1.5 (Generated in July 1997)

IDL: Modules (DSTRepository methods):

    Ass,
    Ret_RP,
    TINA_RP_commonTypes,
    CosTrading,
    TINA_RP_accessCommonTypes,
    TINA_RP_accessInitialTypes,
    TINA_RP_streamTypes.
    Size (uncommented IDL) approx. 35 k.

Smalltalk:

    Classes and method skeleton code of Version 1.5 are completely generated.
    Size approx. 170 k.

In November/December 1997 the Service Session (size approx. 160 k) and Accounting skeletons, as well as parts of the UserAgentManager Application of the TINA Platform project have been generated by this tool too. So many bugs could be detected by khi, som, ali and jek.


Settings

    For settings marked with [ brackets ] the gui only supports a read only mode until now (a help text displayed when choosing the menu item). Modifications have to be done altering the source code of methods in protocol "to be replaced by GUI ops".

  • Target Application
    The name of the ENVY application (or ST-category) to generate into.

  • Superclasses
    To set the (abstract) superclasses for structs, unions, interfaces and core objects.

  • set interface inheritance policy

      #first
      If interfaces are specified using an inheritance line, the first interface in this line will be taken as superclass for the generated interface class.

      #default
      Independent of the specified parent-interfaces, the default interface superclass will be taken.

      The default setting is #first.
      If the superclass does not exist, it will be generated too.

  • [set Interface CO list]
    A dictionary specifiing for every interface the name of it's CO (if an interface has an entry here, no CO class name asking dialog will be needed during generation).

  • [set Interface superclass exclusion list]
    A list of names of interface superclasses (specified by their short IDL name e.g. 'i_InterfaceAccess') which shall not be used as (Smalltalk) implementation superclasses for an interface, if these interfaces are part of the IDL-inheritance declaration of an interface.

  • [set CO ODL name list]
    A dictionary specifiing for every CO it's ODL name (if a CO has no entry here, a dummy name will be used while generating).

  • [set IDL name abbreviations list]
    A list of short terms (used to replace the long IDL module names) in class name prefixes and parameter names. If no short replacement is defined, the long name will be taken (without special characters: blank, slash, backslash, period, hyphen, underscore).

  • set classname project prefix
    The letters to be placed at the beginning of each class name (to distinguish all project classes easily and avoid name collisions with existing classes).

  • set automatic CO name prefix

      The prefix for a CO may be automatically assigned to the name (as specified by dialog or using the Interface CO list) using the options:

      #no prefix
      CO class names will be used as specified.

      #project prefix
      CO class names get the project prefix only.

      #project prefix and module name abbr.
      CO class names receive the project prefix followed by the module name (or mostly it's abbreviation).
      The default is #project prefix and module name abbr.


Options

    Options with [ brackets ] are not realized yet.

  • [set file out comments]

  • [set file out log]

  • [set Transcript log]

  • set verbose
    If this option is off, no warnings will occur, if classes or methods to generate already exist.
    The default setting is #on.


References

    [1] Distributed Smalltalk Release 5.5, IDL Programmer's Reference Rev. 1.0, ParcPlace-Digitalk, 1996.

(c) GMD FOKUS Tangram tko 97-12-08