96 lines
3.1 KiB
OpenEdge ABL
96 lines
3.1 KiB
OpenEdge ABL
//
|
||
// $Id$
|
||
//
|
||
|
||
class BEHAVIOR OBJECT
|
||
|
||
attrib parent
|
||
|
||
attrib name
|
||
|
||
attrib objSize
|
||
// Azon objektumok m‚rete, amik az oszt ly elemei.
|
||
|
||
attrib attribs
|
||
// Egy 'name' tˇpusŁ objektum (ami ennek az
|
||
// oszt lynak az eleme) attribŁtumai
|
||
// {sorsz m,n‚v,tˇpus} form ban.
|
||
|
||
attrib methods
|
||
// Egy 'name' tˇpusŁ objektum (ami ennek az
|
||
// oszt lynak az eleme) m–veletei
|
||
// {sorsz m,n‚v,param‚terek,implSpec} form ban.
|
||
// Mj.: A m–veleteket v‚grehajt˘ blokkok az
|
||
// objMethodsImplement ltal adott blokkban
|
||
// vannak.
|
||
|
||
attrib classId
|
||
// Ha az oszt lynak van id-je, akkor az itt t rolva van.
|
||
// Ha nincs, akkor ez nil.
|
||
|
||
attrib parentClassIds
|
||
// Vagy nil, vagy egy olyan t”mb, amiben a i. elem nem nil,
|
||
// haz az adott oszt ly a this “sei k”z”tt van ‚s van id-je.
|
||
|
||
attrib amBlock
|
||
// Egy blokk, aminek a v‚grehajt sa beˇrja
|
||
// egy t”mbbe az oszt ly ltal defini lt
|
||
// attribŁtumokat ‚s egy m sik t”mbbe pedig
|
||
// az oszt ly ltal defini lt m–veleteket.
|
||
|
||
attrib methodsBlock
|
||
// Egy blokk, aminek a v‚grehajt sa
|
||
// beˇrja egy t”mbbe az oszt ly ltal defini lt
|
||
// m–veletek blokkjait.
|
||
// (Ezt a t”mb”t adja az objMethodsImplement.)
|
||
|
||
attrib objMethodsImplement
|
||
// Egy blokkot tartalmaz, amit ki‚rt‚kelve
|
||
// megkapjuk azt a t”mb”t, aminek az els“
|
||
// eleme az oszt ly, a tov bbi elemei pedig
|
||
// az oszt lyba tartoz˘ objektumok m–veleti
|
||
// blokkjai, ‚s m s implement ci˘s elemek.
|
||
|
||
nmethod onew{be_onew}()
|
||
// K‚szˇt egy Łj objektumot, ‚s inicializ lja Łgy, hogy meghˇvja
|
||
// az oinit() m–velet‚t.
|
||
// Az objektum a 'this' oszt lyba fog tartozni.
|
||
|
||
nmethod ocreate{be_ocreate}()
|
||
// K‚szˇt egy Łj objektumot, de nem inicializ lja.
|
||
// Az objektum a 'this' oszt lyba fog tartozni.
|
||
|
||
nmethod rawoinit{be_rawoinit}(parent,name,nAttribs,nMethods,amBlock,methodsBlock)
|
||
// Inicializ lja a 'this' oszt lyt.
|
||
|
||
rmethod oinit{be_oinit}(parent,name,nAttribs,nMethods,amBlock,methodsBlock)
|
||
// Inicializ lja a 'this' oszt lyt a rawoinit()-el, de el“bb
|
||
// ellen“rzi, hogy az oszt ly metaoszt ly nak van-e m r eleme.
|
||
// Ha igen, akkor k<>ld egy figyelmeztet‚st.
|
||
|
||
nmethod oinitclass{retobj}()
|
||
// A Meta onew()-ja hˇvja az oinit() ut n. Az‚rt van itt, hogy ne
|
||
// kelljen az oinit() hosszŁ param‚terlist j val vesz“dni.
|
||
|
||
nmethod getMethodsImplement{be_getMethodsImplement}()
|
||
// Ad egy t”mb”t, amiben a m–veletek blokkjai tal lhat˘k.
|
||
|
||
rmethod isClass{be_isClass}()
|
||
// Mindig igazat ad. (Ez az objektum oszt ly.)
|
||
|
||
nmethod attribIdx{be_attribIdx}(name)
|
||
// A name nev– attribŁtum index‚t adja, 'nil', ha nincs.
|
||
|
||
nmethod needClassId{be_needClassId}()
|
||
// Ha .t., akkor az oszt ly nak kell azonosˇt˘t adni.
|
||
// Ha .f., akkor az oszt ly nak nem kell azonosˇt˘t adni.
|
||
// Jellemz“ implement ci˘ja:
|
||
// return class:getClass()==mc<oszt lyn‚v>CLASS()
|
||
// Mj.: A 'class=cl<oszt lyn‚v>()' nem j˘.
|
||
|
||
nmethod isInheritFrom{be_isInheritFrom}(parentClass)
|
||
// Ha a this ”r”k”l az aClass-t˘l, vagy this==aClass, akkor
|
||
// igaz, egy‚bk‚nt hamis.
|
||
// Ha a parentClass-nak van id-je, akkor ez a m–velet sokkal
|
||
// gyorsabban hajt˘dik v‚gre, mint ha nincs.
|