// PACKAGE.och oszt ly implement ci¢. // Gener lva: 1999.10.10, 14:31:59, OBJCCC v2.2.03 // Meta oszt ly defin¡ci¢: Van #ifndef CA_OBJECT_N #ifdef _STRICT_PARENT_ #ifdef _CA_CM_ONLY_ #include "OBJECT.och" #else // _CA_CM_ONLY_ #define _CA_CM_ONLY_ #include "OBJECT.och" #undef _CA_CM_ONLY_ #endif // _CA_CM_ONLY_ #else #include "OBJECT.och" #endif // _STRICT_PARENT_ #endif // CA_OBJECT_N #ifndef _CA_CM_ONLY_ #ifndef _PACKAGE_OCH_ #define _PACKAGE_OCH_ #xtranslate PACKAGE.:oinit => (OBJGEN.():(4)) #xtranslate PACKAGE.:getclass => (OBJGEN.():(5)) #xtranslate PACKAGE.:isclass => (OBJGEN.():(6)) #xtranslate PACKAGE.:getattrib => (OBJGEN.():(7)) #xtranslate PACKAGE.:setattrib => (OBJGEN.():(8)) #xtranslate PACKAGE.:parentpkg => \[CA_OBJECT_N+1\] #xtranslate PACKAGE.:name => \[CA_OBJECT_N+2\] #xtranslate PACKAGE.:nattribs => \[CA_OBJECT_N+3\] #xtranslate PACKAGE.:attribs => \[CA_OBJECT_N+4\] #xtranslate PACKAGE.:methods => \[CA_OBJECT_N+5\] #xtranslate PACKAGE.:pkgid => \[CA_OBJECT_N+6\] #xtranslate PACKAGE.:amblock => \[CA_OBJECT_N+7\] #xtranslate PACKAGE.:methodsblock => \[CA_OBJECT_N+8\] #xtranslate PACKAGE.:pkgmethodsimplement => \[CA_OBJECT_N+9\] // ™r”k”lve: oinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock,pkgId) // Specifik lva: connectto(obj) // ™r”k”lve: oinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock,pkgId) #xtranslate PACKAGE.:connectto => (OBJGEN.():(CM_OBJECT_N+1)) #endif // _PACKAGE_OCH_ #endif // _CA_CM_ONLY_ #ifndef CA_PACKAGE_N #define CA_PACKAGE_N CA_OBJECT_N+9 #define CM_PACKAGE_N CM_OBJECT_N+1 #endif // CA_PACKAGE_N #ifndef _CA_CM_ONLY_ #ifndef _PACKAGECLASS_OCH_ #define _PACKAGECLASS_OCH_ ********************************************************************** #xtranslate C.PACKAGE: => (PACKAGECLASS.clPACKAGE():) #xtranslate C.PACKAGE:self() => (clPACKAGE()) #xtranslate PACKAGECLASS.:parent => \[CA_OBJECT_N+1\] #xtranslate PACKAGECLASS.:name => \[CA_OBJECT_N+2\] #xtranslate PACKAGECLASS.:objsize => \[CA_OBJECT_N+3\] #xtranslate PACKAGECLASS.:attribs => \[CA_OBJECT_N+4\] #xtranslate PACKAGECLASS.:methods => \[CA_OBJECT_N+5\] #xtranslate PACKAGECLASS.:classid => \[CA_OBJECT_N+6\] #xtranslate PACKAGECLASS.:parentclassids => \[CA_OBJECT_N+7\] #xtranslate PACKAGECLASS.:amblock => \[CA_OBJECT_N+8\] #xtranslate PACKAGECLASS.:methodsblock => \[CA_OBJECT_N+9\] #xtranslate PACKAGECLASS.:objmethodsimplement => \[CA_OBJECT_N+10\] #xtranslate PACKAGECLASS.:oinit => (OBJGEN.():(4)) #xtranslate PACKAGECLASS.:getclass => (OBJGEN.():(5)) #xtranslate PACKAGECLASS.:isclass => (OBJGEN.():(6)) #xtranslate PACKAGECLASS.:getattrib => (OBJGEN.():(7)) #xtranslate PACKAGECLASS.:setattrib => (OBJGEN.():(8)) #xtranslate PACKAGECLASS.:onew => (OBJGEN.():(CM_OBJECT_N+1)) #xtranslate PACKAGECLASS.:ocreate => (OBJGEN.():(CM_OBJECT_N+2)) #xtranslate PACKAGECLASS.:rawoinit => (OBJGEN.():(CM_OBJECT_N+3)) #xtranslate PACKAGECLASS.:oinitclass => (OBJGEN.():(CM_OBJECT_N+4)) #xtranslate PACKAGECLASS.:getmethodsimplement => (OBJGEN.():(CM_OBJECT_N+5)) #xtranslate PACKAGECLASS.:attribidx => (OBJGEN.():(CM_OBJECT_N+6)) #xtranslate PACKAGECLASS.:needclassid => (OBJGEN.():(CM_OBJECT_N+7)) #xtranslate PACKAGECLASS.:isinheritfrom => (OBJGEN.():(CM_OBJECT_N+8)) #xtranslate PACKAGECLASS.:numid => \[CA_BEHAVIOR_N+1\] // ™r”k”lve: onew(parent,name,nAttribs,nMethods,amBlock,methodsBlock,pkgId) // Specifik lva: nextid() // ™r”k”lve: onew(parent,name,nAttribs,nMethods,amBlock,methodsBlock,pkgId) #xtranslate PACKAGECLASS.:nextid => (OBJGEN.():(CM_BEHAVIOR_N+1)) #endif // _PACKAGECLASS_OCH_ #endif // _CA_CM_ONLY_ #ifndef CA_PACKAGECLASS_N #define CA_PACKAGECLASS_N CA_BEHAVIOR_N+1 #define CM_PACKAGECLASS_N CM_BEHAVIOR_N+1 #endif // CA_PACKAGECLASS_N ********************************************************************** #ifdef _PACKAGE_PRG_ #ifndef _PACKAGE_PRG_OCH_ #define _PACKAGE_PRG_OCH_ ********************************************************************** #xtranslate othis: => PACKAGE.(othis): #xtranslate thisclass: => PACKAGECLASS.(this:getClass()): #define CTHIS PACKAGE ********************************************************************** #xtranslate this: => PACKAGE.(this): #xcommand implement oinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock,pkgId) => ; static function oinit(this,parent,name,nAttribs,nMethods,amBlock,methodsBlock,pkgId) #xcommand implement connectto(obj) => static function connectto(this,obj) #ifdef _IMPLEMENT_EXPORT_ #xcommand implement export oinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock,pkgId) => ; function oinit(this,parent,name,nAttribs,nMethods,amBlock,methodsBlock,pkgId) #xcommand implement export connectto(obj) => function connectto(this,obj) #endif // _IMPLEMENT_EXPORT_ #xtranslate super:oinit => (OBJGENM.(eval(BEHAVIOR.clOBJECT():objmethodsimplement)).(this):(4)) #xtranslate super:getclass => (OBJGENM.(eval(BEHAVIOR.clOBJECT():objmethodsimplement)).(this):(5)) #xtranslate super:isclass => (OBJGENM.(eval(BEHAVIOR.clOBJECT():objmethodsimplement)).(this):(6)) #xtranslate super:getattrib => (OBJGENM.(eval(BEHAVIOR.clOBJECT():objmethodsimplement)).(this):(7)) #xtranslate super:setattrib => (OBJGENM.(eval(BEHAVIOR.clOBJECT():objmethodsimplement)).(this):(8)) ********************************************************************** static function setCMethods(pOsztaly) // Egy t”mb”t felt”lt az oszt ly m–veleti blokkjaival. pOsztaly[(4)]:={|this,parent,name,nAttribs,nMethods,amBlock,methodsBlock,pkgId| oinit(this,parent,name,nAttribs,nMethods,amBlock,methodsBlock,pkgId)} pOsztaly[(CM_OBJECT_N+1)]:={|this,obj| connectto(this,obj)} return pOsztaly ********************************************************************** static function setCams(ta,tm) // Egy t”mb”t felt”lt az oszt ly  ltal def. objektumok attrib£tumaival ‚s m–veleteivel. ta[CA_OBJECT_N+1-CA_NIL_N] := {CA_OBJECT_N+1,'parentpkg',nil} ta[CA_OBJECT_N+2-CA_NIL_N] := {CA_OBJECT_N+2,'name',nil} ta[CA_OBJECT_N+3-CA_NIL_N] := {CA_OBJECT_N+3,'nattribs',nil} ta[CA_OBJECT_N+4-CA_NIL_N] := {CA_OBJECT_N+4,'attribs',nil} ta[CA_OBJECT_N+5-CA_NIL_N] := {CA_OBJECT_N+5,'methods',nil} ta[CA_OBJECT_N+6-CA_NIL_N] := {CA_OBJECT_N+6,'pkgid',nil} ta[CA_OBJECT_N+7-CA_NIL_N] := {CA_OBJECT_N+7,'amblock',nil} ta[CA_OBJECT_N+8-CA_NIL_N] := {CA_OBJECT_N+8,'methodsblock',nil} ta[CA_OBJECT_N+9-CA_NIL_N] := {CA_OBJECT_N+9,'pkgmethodsimplement',nil} tm[(4)-CM_NIL_N] := {(4),'oinit','parent,name,nAttribs,nMethods,amBlock,methodsBlock,pkgId',nil} tm[(CM_OBJECT_N+1)-CM_NIL_N] := {(CM_OBJECT_N+1),'connectto','obj',nil} return nil #ifndef _NO_CLPACKAGE_ #ifdef _STRICT_PARENT_ #ifdef _CA_CM_ONLY_ #include "meta.och" #else // _CA_CM_ONLY_ #define _CA_CM_ONLY_ #include "meta.och" #undef _CA_CM_ONLY_ #endif // _CA_CM_ONLY_ #else #include "meta.och" #endif // _STRICT_PARENT_ ********************************************************************** function clPACKAGE() // El“szedi az oszt lyt. (class) static osztaly if (osztaly==nil) osztaly:=META.mcPACKAGECLASS():onew(; clOBJECT(),; "PACKAGE",; CA_PACKAGE_N,; CM_PACKAGE_N,; {|ta,tm|setCams(ta,tm)},; {|t|setCMethods(t)}) endif return osztaly #endif // _NO_CLPACKAGE_ #ifndef _NO_PACKAGECLASS_ ********************************************************************** #xtranslate class: => PACKAGECLASS.(class): #xcommand cimplement onew(parent,name,nAttribs,nMethods,amBlock,methodsBlock,pkgId) => ; static function onew(class,parent,name,nAttribs,nMethods,amBlock,methodsBlock,pkgId) #xcommand cimplement nextid() => static function nextid(class) #ifdef _IMPLEMENT_EXPORT_ #xcommand cimplement export onew(parent,name,nAttribs,nMethods,amBlock,methodsBlock,pkgId) => ; function onew(class,parent,name,nAttribs,nMethods,amBlock,methodsBlock,pkgId) #xcommand cimplement export nextid() => function nextid(class) #endif // _IMPLEMENT_EXPORT_ #xtranslate superclass:oinit => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(class):(4)) #xtranslate superclass:getclass => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(class):(5)) #xtranslate superclass:isclass => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(class):(6)) #xtranslate superclass:getattrib => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(class):(7)) #xtranslate superclass:setattrib => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(class):(8)) #xtranslate superclass:onew => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(class):(CM_OBJECT_N+1)) #xtranslate superclass:ocreate => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(class):(CM_OBJECT_N+2)) #xtranslate superclass:rawoinit => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(class):(CM_OBJECT_N+3)) #xtranslate superclass:oinitclass => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(class):(CM_OBJECT_N+4)) #xtranslate superclass:getmethodsimplement => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(class):(CM_OBJECT_N+5)) #xtranslate superclass:attribidx => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(class):(CM_OBJECT_N+6)) #xtranslate superclass:needclassid => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(class):(CM_OBJECT_N+7)) #xtranslate superclass:isinheritfrom => (OBJGENM.(eval(BEHAVIOR.clBEHAVIOR():objmethodsimplement)).(class):(CM_OBJECT_N+8)) ********************************************************************** static function setMCMethods(pOsztaly) // Egy t”mb”t felt”lt a metaoszt ly m–veleti blokkjaival. pOsztaly[(CM_OBJECT_N+1)]:={|class,parent,name,nAttribs,nMethods,amBlock,methodsBlock,pkgId| onew(class,parent,name,nAttribs,nMethods,amBlock,methodsBlock,pkgId)} pOsztaly[(CM_BEHAVIOR_N+1)]:={|class| nextid(class)} return pOsztaly ********************************************************************** static function setMCams(ta,tm) // Egy t”mb”t felt”lt a metaoszt ly  ltal def. objektumok attrib£tumaival ‚s m–veleteivel. ta[CA_BEHAVIOR_N+1-CA_NIL_N] := {CA_BEHAVIOR_N+1,'numid',nil} tm[(CM_OBJECT_N+1)-CM_NIL_N] := {(CM_OBJECT_N+1),'onew','parent,name,nAttribs,nMethods,amBlock,methodsBlock,pkgId',nil} tm[(CM_BEHAVIOR_N+1)-CM_NIL_N] := {(CM_BEHAVIOR_N+1),'nextid','',nil} return nil ********************************************************************** #ifndef _NO_MCPACKAGECLASS_ #ifdef _STRICT_PARENT_ #ifdef _CA_CM_ONLY_ #include "meta.och" // "metaclas.och" #else // _CA_CM_ONLY_ #define _CA_CM_ONLY_ #include "meta.och" // "metaclas.och" #undef _CA_CM_ONLY_ #endif // _CA_CM_ONLY_ #else #include "meta.och" // "metaclas.och" #endif // _STRICT_PARENT_ function mcPACKAGECLASS() // El“szedi az oszt ly metaoszt ly t. (metaclass) static metaOsztaly if (metaOsztaly==nil) metaOsztaly:=META.clMETA():onew(; clBEHAVIOR(),; "PACKAGECLASS",; CA_PACKAGECLASS_N,; CM_PACKAGECLASS_N,; {|ta,tm|setMCams(ta,tm)},; {|t|setMCMethods(t)}) endif return metaOsztaly #endif // _NO_MCPACKAGECLASS_ #endif // _NO_PACKAGECLASS_ #ifdef _IMPLEMENT_ONEW_ ********************************************************************** cimplement onew(parent,name,nAttribs,nMethods,amBlock,methodsBlock,pkgId) local o:=class:ocreate() PACKAGE.o:oinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock,pkgId) return o #endif // _IMPLEMENT_ONEW_ ********************************************************************** #ifdef _IMPLEMENT_OINIT_ implement oinit(parent,name,nAttribs,nMethods,amBlock,methodsBlock,pkgId) super:oinit() return this #endif // _IMPLEMENT_OINIT_ ********************************************************************** ********************************************************************** #endif // _PACKAGE_PRG_OCH_ #endif // _PACKAGE_PRG_