Class.st
changeset 1759 5b7c001edc06
parent 1756 d2518afa9df8
child 1765 64e428dbb53d
equal deleted inserted replaced
1758:022797ec08e4 1759:5b7c001edc06
  1127                 poolDictionaries:'' 
  1127                 poolDictionaries:'' 
  1128                 category:category
  1128                 category:category
  1129                 comment:comment 
  1129                 comment:comment 
  1130                 changed:false 
  1130                 changed:false 
  1131                 classInstanceVariableNames:classInstVars.
  1131                 classInstanceVariableNames:classInstVars.
       
  1132 
       
  1133         newClass isNil ifTrue:[
       
  1134             ^ nil.
       
  1135         ].
       
  1136 "/ Transcript showCR:'loaded ' , name , ' in ' , environment name.
       
  1137 
  1132         newClass flags:flags.
  1138         newClass flags:flags.
  1133     ].
  1139     ].
  1134 
  1140 
  1135     "/ retrieve class methods
  1141     "/ retrieve class methods
  1136     cmethods := MethodDictionary binaryFullDefinitionFrom:stream manager:manager.
  1142     cmethods := MethodDictionary binaryFullDefinitionFrom:stream manager:manager.
  1164     newClass class methodDictionary:cmethods.
  1170     newClass class methodDictionary:cmethods.
  1165     ^ newClass
  1171     ^ newClass
  1166 
  1172 
  1167     "Modified: 7.6.1996 / 13:43:06 / stefan"
  1173     "Modified: 7.6.1996 / 13:43:06 / stefan"
  1168     "Created: 8.10.1996 / 17:57:02 / cg"
  1174     "Created: 8.10.1996 / 17:57:02 / cg"
  1169     "Modified: 15.10.1996 / 19:44:29 / cg"
  1175     "Modified: 15.10.1996 / 21:20:28 / cg"
  1170 !
  1176 !
  1171 
  1177 
  1172 storeBinaryClassOn:stream manager:manager
  1178 storeBinaryClassOn:stream manager:manager
  1173     "store a classes complete description (i.e. including methods).
  1179     "store a classes complete description (i.e. including methods).
  1174      However, the superclass chain is not stored - at load time, that must
  1180      However, the superclass chain is not stored - at load time, that must
  1230     ].
  1236     ].
  1231     s storeBinaryOn:stream manager:manager.
  1237     s storeBinaryOn:stream manager:manager.
  1232 
  1238 
  1233     "/ the category
  1239     "/ the category
  1234     owner notNil ifTrue:[
  1240     owner notNil ifTrue:[
  1235         s := nil
  1241         nil storeBinaryOn:stream manager:manager.
  1236     ] ifFalse:[
  1242     ] ifFalse:[
  1237         category storeBinaryOn:stream manager:manager.
  1243         category storeBinaryOn:stream manager:manager.
  1238         s := self class instanceVariableString.
  1244     ].
  1239         (s notNil and:[s isEmpty]) ifTrue:[
  1245 
  1240             s := nil
  1246     "/ the classInstVarString
  1241         ]
  1247     s := self class instanceVariableString.
       
  1248     (s notNil and:[s isEmpty]) ifTrue:[
       
  1249         s := nil
  1242     ].
  1250     ].
  1243     s storeBinaryOn:stream manager:manager.
  1251     s storeBinaryOn:stream manager:manager.
  1244 
  1252 
  1245     "/ the comment
  1253     "/ the comment
  1246     s := comment.
  1254     s := comment.
  1293      bos close.
  1301      bos close.
  1294      cls open.
  1302      cls open.
  1295     "
  1303     "
  1296 
  1304 
  1297     "Modified: 7.6.1996 / 13:39:02 / stefan"
  1305     "Modified: 7.6.1996 / 13:39:02 / stefan"
  1298     "Modified: 15.10.1996 / 19:42:48 / cg"
  1306     "Modified: 15.10.1996 / 21:13:32 / cg"
  1299 !
  1307 !
  1300 
  1308 
  1301 storeBinaryDefinitionOf: anAssociation on: stream manager: manager
  1309 storeBinaryDefinitionOf: anAssociation on: stream manager: manager
  1302     "not usable at the moment - there are no classpools currently"
  1310     "not usable at the moment - there are no classpools currently"
  1303 
  1311 
  3440      Class new isBehavior    
  3448      Class new isBehavior    
  3441      Class new isClass
  3449      Class new isClass
  3442     "
  3450     "
  3443 !
  3451 !
  3444 
  3452 
  3445 owningClass
       
  3446     "return my owning class - nil if I am a public class"
       
  3447 
       
  3448     ^ self class owningClass
       
  3449 
       
  3450     "Created: 11.10.1996 / 18:45:59 / cg"
       
  3451     "Modified: 15.10.1996 / 18:54:56 / cg"
       
  3452 !
       
  3453 
       
  3454 wasAutoloaded
  3453 wasAutoloaded
  3455     "return true, if this class came into the system via an
  3454     "return true, if this class came into the system via an
  3456      autoload; false otherwise.
  3455      autoload; false otherwise.
  3457      This is not an attribute of the class, but instead remembered in
  3456      This is not an attribute of the class, but instead remembered in
  3458      Autoload. The interface here is for your convenience."
  3457      Autoload. The interface here is for your convenience."
  4005 ! !
  4004 ! !
  4006 
  4005 
  4007 !Class class methodsFor:'documentation'!
  4006 !Class class methodsFor:'documentation'!
  4008 
  4007 
  4009 version
  4008 version
  4010     ^ '$Header: /cvs/stx/stx/libbasic/Class.st,v 1.188 1996-10-15 19:36:00 cg Exp $'
  4009     ^ '$Header: /cvs/stx/stx/libbasic/Class.st,v 1.189 1996-10-15 20:21:04 cg Exp $'
  4011 ! !
  4010 ! !
  4012 Class initialize!
  4011 Class initialize!