Lade...
 

MDI (Method Dictionary)

Das Method Dictionary beschreibt die für InstantView® sichtbaren Methoden einer Klasse.

Aus einer formalisierten Beschreibung wird mittels des ClassiX®-Programms CXDGEN C++-Code

erzeugt. Die Beschreibung enthält:

Rückgabewert generalisierter Datentyp
Funktionsname  
Parameter 1 generalisierter Datentyp
Parameter2 generalisierter Datentyp
. . .  
Parameter n generalisierter Datentyp

wobei es die folgenden (generalisierten) Datentypen gibt:

Typ C++ - Schreibweise Bemerkung Fußnote
VOID void    
STRING char *    
MULTIPLE_STRING CXB_MULTIPLE_STRING * oder CXB_MULTIPLE_STRING &    
OBJECT CX_CLASS * oder CX_CLASS &    
VOLATILE_OBJECT CX_CLASS * oder CX_CLASS & nur als Rückgabewert   1.
VECTOR<OBJECT> CX_CLASS ** letztes Element NULL  
VECTOR<INTEGER> int * letztes Element INT_MAX  
VECTOR<STRING> char ** letztes Element NULL  
COLLECTION os_collection * oder os_collection &    
MA CXS_VIEW_DESCRIPTOR * nur als erster Parameter   2.
ANY void * nur als Rückgabewert   3.
  1. Wenn eine Funktion ein transientes Objekt erzeugt, kann man fordern, dass die

    Garbage-Collection des ClassiX®-Systems dieses Objekt automatisch beseitigt, sobald es

    nicht mehr gebraucht wird. Dies geschieht, wenn man für die Funktion als Rückgabewert VOLATILE_OBJECT einträgt.
  2. für eine Zugriffsfunktion; weitere 'normale' Parameter können folgen.
  3. Funktionen, die bei verschiedenen Aufrufen Daten unterschiedlichen Typs zurückgeben,

    können mit Signatur ANY eingetragen werden. Die Funktion muss den Typ des Rückgabewertes dem ClassiX®-System mit CX_CLASS::SetTypeOfReturnValue() bekannt machen; Tabellen zur impliziten Transformation von Enumerations kann die Funktion mit CX_CLASS::RegisterEnumTransTbl() registrieren lassen. Dieses Feature wird z.B. für

    Attribute (Objekte der von CX_ATTRIBUTE abgeleiteten Klassen) benutzt.  

Beispiel:

    MDI(CX_CONDITIONED_BAG)
        OBJECT Pick(VOID)

        OBJECT Pick(VOID) EXTERN(Evaluate) // similar to CX_FORMULA
        COLLECTION Query(VOID)
        COLLECTION FindAll(VOID)
        OBJECT Amount(VOID)
        VECTOR<STRING> ColVarNames(VOID)
        VECTOR<INTEGER> ColVarNumbers(VOID)
        VECTOR<INTEGER> ColVarTypes(VOID)
        INTEGER NColumnVars(VOID)
        VOID AddColVar(STRING)
        VOID RemoveColVar(STRING)
        VOID Delete(OBJECT)

        VECTOR<STRING> GetInputVarNames(OBJECT)