CX_META_CLASS
Klassenhierarchie
- CX_CLASS
- CX_META_CLASS
Beschreibung:
Die Objekte dieser Klasse beschreiben die Klassen in InstantView. Sie werden vom Objekt-Manager verwaltet. Ist eine Metaklasse nicht beim Objekt-Manager registriert, so können über den Bezeichner dieser Klasse keine Objekte angelegt werden, weil dem Bezeichner keine Klassen-ID zugeordnet werden kann.
Um das CX_META_CLASS-Objekt zu einer Klasse zu erhalten, benutzt man die Methode CX_OBJECT_MANAGER::GetMetaClass.
Um eine neues Objekte von CX_META_CLASS zu erzeugen, ist CX_OBJECT_MANAGER::NewMetaClass und nicht CreateTransObject zu verwenden. Ein ausführliches Beispiel zur Definition einer Metaklasse zur Laufzeit findet sich hier. Da Pseudoklassen über ihre Superklassen instanziiert werden, muss diese im DDI-Feld "superClass" gesetzt sein, damit eine Pseudoklasse instanziiert werden kann.
230331 lassen sich neue Klassen/Storages und Files einfacher per CX_OBJECT_MANAGER::ParseMetaInfoAdditive zur Laufzeit definieren.
Code-Beispiel:
Funktion | MA* | Parameter | Rückgabe | Kurzbeschreibung |
---|---|---|---|---|
Derived |
|
Direkt abgeleitete Klassen | ||
DerivedN | INTEGER |
|
Abgeleitete Klassen bis zur n. Stufe | |
Destroy | Metaklasse entfernen | |||
DisplayHelp | Hilfe zur Klasse anzeigen | |||
GetDDI 233480 |
VECTOR<CX_VESSEL> | Liefert das DDI der Klasse | ||
GetHelpURL 233506 |
STRING | Hilfe-URL ausgeben | ||
GetMDI 233480 |
VECTOR<CX_VESSEL> | Liefert das MDI der Klasse | ||
Integrate | Klasse im Objektmanager anmelden | |||
IsCreatable 212620 |
INTEGER | TRUE falls Objekte der Klasse per CreateTransObject angelegt werden können. | ||
IsPseudoClass | INTEGER (TRUE / FALSE) | Wird eine Pseudoklasse beschrieben? | ||
SetPersistenceInfo | INTEGER, CXS_SEGMENT,
|
STRING | Speicherort für persistente Objekte der Klasse setzen | |
StorageInfo | STRING | Info über Speicherung der Instanzen |
* MA = Member-Access-Funktion,
grau unterlegt = geerbte Funktion
Datenfeld | Typ | Referenz-Klasse | I* | Kurzbeschreibung |
---|---|---|---|---|
docu | SHORT | Infothekseite, welche bei DisplayHelp geöffnet wird | ||
internalName | STRING | Klassenbezeichner (z. B. CX_PERSON) | ||
realWorldClassID | SHORT | Die Klassen-ID, welche dem Klassenbezeichner zugeordnet wird. | ||
superClass | POINTER | CX_META_CLASS | Die Superklasse. | |
persistence | POINTER | CX_META_FILE | Die Persistenzdefinition (Meta-File) dieser Klasse |
* I = Indizierbares Datenfeld,
grau unterlegt = geerbtes Datenfeld
Modul | Kurzbeschreibung |
---|---|
defclass.mod | Pseudoklassen Editiermodul |