ClassDescription.st
changeset 23008 10d9d7ca5612
parent 22818 2d1519c3ed91
child 23686 ba39384235e5
equal deleted inserted replaced
23007:cae37a19473b 23008:10d9d7ca5612
   661     ^ self == ClassDescription class or:[self == ClassDescription]
   661     ^ self == ClassDescription class or:[self == ClassDescription]
   662 
   662 
   663     "Created: 15.4.1996 / 17:16:59 / cg"
   663     "Created: 15.4.1996 / 17:16:59 / cg"
   664     "Modified: 23.4.1996 / 15:56:54 / cg"
   664     "Modified: 23.4.1996 / 15:56:54 / cg"
   665 ! !
   665 ! !
   666 
       
   667 
   666 
   668 !ClassDescription methodsFor:'Compatibility-Dolphin'!
   667 !ClassDescription methodsFor:'Compatibility-Dolphin'!
   669 
   668 
   670 methodsFor
   669 methodsFor
   671     "this method allows fileIn of Dolphin methods -
   670     "this method allows fileIn of Dolphin methods -
   923 
   922 
   924     |mthd|
   923     |mthd|
   925 
   924 
   926     mthd := self compile: aString classified: protocol.
   925     mthd := self compile: aString classified: protocol.
   927     attributes notEmpty ifTrue:[
   926     attributes notEmpty ifTrue:[
   928 	attributes keysAndValuesDo:[:aK :aV |
   927         attributes keysAndValuesDo:[:aK :aV |
   929 	    aK = 'package' ifTrue:[
   928             aK = 'package' ifTrue:[
   930 		"/ mthd package:aV
   929                 "/ mthd package:aV
   931 	    ] ifFalse:[
   930             ] ifFalse:[
   932 		self error:(aK , '-attribute not yet supported') mayProceed:true.
   931                 self proceedableError:(aK , '-attribute not yet supported').
   933 	    ].
   932             ].
   934 	].
   933         ].
   935     ].
   934     ].
   936 
   935 
   937     ^ mthd.
   936     ^ mthd.
       
   937 
       
   938     "Modified: / 24-05-2018 / 21:06:38 / Claus Gittinger"
   938 !
   939 !
   939 
   940 
   940 instVarIndexFor:aVariableName ifAbsent:exceptionValue
   941 instVarIndexFor:aVariableName ifAbsent:exceptionValue
   941     "alias for #instVarOffsetOf: for VW compatibility."
   942     "alias for #instVarOffsetOf: for VW compatibility."
   942 
   943 
  4031      The subclass will have indexed variables if the receiving-class has."
  4032      The subclass will have indexed variables if the receiving-class has."
  4032 
  4033 
  4033     |category ownerClass|
  4034     |category ownerClass|
  4034     
  4035     
  4035     (ownerClass := ownerClassArg) isNil ifTrue:[
  4036     (ownerClass := ownerClassArg) isNil ifTrue:[
  4036         self error:'Nil (undefined) owner class - proceed to define as global' mayProceed:true.
  4037         self proceedableError:'Nil (undefined) owner class - proceed to define as global'.
  4037         ownerClass := Smalltalk.
  4038         ownerClass := Smalltalk.
  4038     ] ifFalse:[
  4039     ] ifFalse:[
  4039         category := ownerClass  category
  4040         category := ownerClass  category
  4040     ].
  4041     ].
  4041     
  4042     
  4130     ^ self
  4131     ^ self
  4131         variableSubclass:nameSymbol
  4132         variableSubclass:nameSymbol
  4132         instanceVariableNames:instVarNameString
  4133         instanceVariableNames:instVarNameString
  4133         classVariableNames:classVarString
  4134         classVariableNames:classVarString
  4134         poolDictionaries:pool
  4135         poolDictionaries:pool
  4135         privateIn:ownerClass 
  4136         privateIn:ownerClass
  4136 
  4137 
  4137     "Created: / 11-10-1996 / 16:30:53 / cg"
  4138     "Created: / 11-10-1996 / 16:30:53 / cg"
  4138     "Modified: / 31-03-2007 / 10:20:38 / cg"
  4139     "Modified: / 31-03-2007 / 10:20:38 / cg"
       
  4140     "Modified: / 24-05-2018 / 21:06:45 / Claus Gittinger"
  4139 !
  4141 !
  4140 
  4142 
  4141 variableByteSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool privateIn:ownerClass 
  4143 variableByteSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool privateIn:ownerClass 
  4142     "create a new class as a subclass of an existing class (the receiver)
  4144     "create a new class as a subclass of an existing class (the receiver)
  4143      in which the subclass has indexable byte-sized nonpointer variables"
  4145      in which the subclass has indexable byte-sized nonpointer variables"
  4150                 'cannot make a variable byte subclass of a variable non-byte class'
  4152                 'cannot make a variable byte subclass of a variable non-byte class'
  4151         ].
  4153         ].
  4152     ].
  4154     ].
  4153 
  4155 
  4154     ownerClass  isNil ifTrue:[
  4156     ownerClass  isNil ifTrue:[
  4155         self error:'Nil (undefined) owner class - proceed to define as global' mayProceed:true.
  4157         self proceedableError:'Nil (undefined) owner class - proceed to define as global'.
  4156     ] ifFalse:[
  4158     ] ifFalse:[
  4157         category := ownerClass  category
  4159         category := ownerClass  category
  4158     ].
  4160     ].
  4159 
  4161 
  4160     ^ self class
  4162     ^ self class
  4169         poolDictionaries:pool
  4171         poolDictionaries:pool
  4170         category:category
  4172         category:category
  4171         comment:nil
  4173         comment:nil
  4172         changed:true.
  4174         changed:true.
  4173 
  4175 
  4174     "Created: / 11.10.1996 / 16:31:27 / cg"
  4176     "Created: / 11-10-1996 / 16:31:27 / cg"
  4175     "Modified: / 4.7.1999 / 18:42:36 / cg"
  4177     "Modified: / 04-07-1999 / 18:42:36 / cg"
       
  4178     "Modified: / 24-05-2018 / 21:07:00 / Claus Gittinger"
  4176 !
  4179 !
  4177 
  4180 
  4178 variableDoubleSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool privateIn:aClass
  4181 variableDoubleSubclass:nameSymbol instanceVariableNames:instVarNameString classVariableNames:classVarString poolDictionaries:pool privateIn:aClass
  4179 
  4182 
  4180     "create a new class as a subclass of an existing class (the receiver)
  4183     "create a new class as a subclass of an existing class (the receiver)