extensions.st
changeset 765 d706c98adeb5
parent 752 516a6334136c
child 778 aa278bcb1d92
equal deleted inserted replaced
764:5e1b8d096052 765:d706c98adeb5
   299     "Modified: / 20-09-2014 / 19:21:11 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
   299     "Modified: / 20-09-2014 / 19:21:11 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
   300 ! !
   300 ! !
   301 
   301 
   302 !RBAbstractClass methodsFor:'accessing'!
   302 !RBAbstractClass methodsFor:'accessing'!
   303 
   303 
       
   304 owningClass
       
   305     "see Behavior >> owningClass"
       
   306 
       
   307     ^ self theMetaclass owningClass
       
   308 
       
   309     "Created: / 29-11-2014 / 13:17:10 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
       
   310 ! !
       
   311 
       
   312 !RBAbstractClass methodsFor:'accessing'!
       
   313 
       
   314 owningClass: aClass
       
   315     "Sets the owning class which is actually stored in the metaclass"
       
   316 
       
   317     self theMetaclass owningClass: aClass
       
   318 
       
   319     "Created: / 29-11-2014 / 13:21:00 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
       
   320 ! !
       
   321 
       
   322 !RBAbstractClass methodsFor:'queries'!
       
   323 
       
   324 owningClassOrYourself
       
   325     "see Behavior >> owningClassOrYourself"
       
   326 
       
   327     self owningClass notNil ifTrue:[^ self topOwningClass].
       
   328     ^ self
       
   329 
       
   330     "Created: / 29-11-2014 / 13:44:45 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
       
   331 ! !
       
   332 
       
   333 !RBAbstractClass methodsFor:'accessing'!
       
   334 
   304 package
   335 package
   305     "see Class >> package ( same purpose, but for model class )"
   336     "see Class >> package ( same purpose, but for model class )"
   306     | package |
   337     | package |
   307 
   338 
   308     package := self objectAttributeAt: #package.
   339     package := self objectAttributeAt: #package.
   394 
   425 
   395     ^ self model
   426     ^ self model
   396 
   427 
   397     "Created: / 15-11-2014 / 17:26:50 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
   428     "Created: / 15-11-2014 / 17:26:50 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
   398     "Modified (comment): / 16-11-2014 / 16:58:00 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
   429     "Modified (comment): / 16-11-2014 / 16:58:00 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
       
   430 ! !
       
   431 
       
   432 !RBAbstractClass methodsFor:'queries'!
       
   433 
       
   434 topOwningClass
       
   435     "see Behavior >> topOwningClass"
       
   436 
       
   437     ^ self theMetaclass topOwningClass
       
   438 
       
   439     "Created: / 29-11-2014 / 13:48:15 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
   399 ! !
   440 ! !
   400 
   441 
   401 !RBAbstractClass methodsFor:'enumerating'!
   442 !RBAbstractClass methodsFor:'enumerating'!
   402 
   443 
   403 withAllSuperclassesDo:aBlock
   444 withAllSuperclassesDo:aBlock
   441     "Created: / 26-09-2014 / 16:50:22 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
   482     "Created: / 26-09-2014 / 16:50:22 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
   442 ! !
   483 ! !
   443 
   484 
   444 !RBMetaclass methodsFor:'accessing'!
   485 !RBMetaclass methodsFor:'accessing'!
   445 
   486 
       
   487 owningClass
       
   488     "see PrivateMetaclass >> owningClass"
       
   489     | owningClass |
       
   490 
       
   491     owningClass := self objectAttributeAt: #owningClass.
       
   492     owningClass isNil ifTrue: [ 
       
   493         self realClass notNil ifTrue: [ 
       
   494             ^ self model classFor: self realClass owningClass
       
   495         ]
       
   496     ].
       
   497 
       
   498     ^ owningClass.
       
   499 
       
   500     "Created: / 29-11-2014 / 02:20:07 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
       
   501 ! !
       
   502 
       
   503 !RBMetaclass methodsFor:'accessing'!
       
   504 
       
   505 owningClass: aClass
       
   506     "see owningClass"
       
   507 
       
   508     self 
       
   509         objectAttributeAt: #owningClass 
       
   510         put: (self model classFor: aClass theNonMetaclass)
       
   511 
       
   512     "Created: / 29-11-2014 / 02:23:21 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
       
   513     "Modified: / 29-11-2014 / 13:38:15 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
       
   514 ! !
       
   515 
       
   516 !RBMetaclass methodsFor:'accessing'!
       
   517 
   446 theMetaClass
   518 theMetaClass
   447     "alias for metaclass - sqeak compatibility"
   519     "alias for metaclass - sqeak compatibility"
   448 
   520 
   449     ^ self metaclass.
   521     ^ self metaclass.
   450 
   522 
   459     ^ self metaclass.
   531     ^ self metaclass.
   460 
   532 
   461     "Created: / 26-09-2014 / 21:28:37 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
   533     "Created: / 26-09-2014 / 21:28:37 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
   462 ! !
   534 ! !
   463 
   535 
       
   536 !RBMetaclass methodsFor:'queries'!
       
   537 
       
   538 topOwningClass
       
   539     "see PrivateMetaclass >> topOwningClass"
       
   540     | outerOwner |
       
   541 
       
   542     self owningClass isNil ifTrue:[^ nil].
       
   543 
       
   544     (outerOwner := self owningClass owningClass) notNil ifTrue:[
       
   545         ^ self owningClass topOwningClass
       
   546     ].
       
   547     ^ self owningClass
       
   548 
       
   549     "Created: / 29-11-2014 / 13:52:30 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
       
   550 ! !
       
   551 
   464 !RBMethod methodsFor:'accessing'!
   552 !RBMethod methodsFor:'accessing'!
   465 
   553 
   466 category: aCategoryName
   554 category: aCategoryName
   467     "Sets in which category/protocol does the method belongs within a class"
   555     "Sets in which category/protocol does the method belongs within a class"
   468 
   556 
   489 
   577 
   490     ^ self modelClass compileMethod: self
   578     ^ self modelClass compileMethod: self
   491 
   579 
   492     "Created: / 06-10-2014 / 11:11:30 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
   580     "Created: / 06-10-2014 / 11:11:30 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
   493     "Modified: / 10-10-2014 / 12:28:06 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
   581     "Modified: / 10-10-2014 / 12:28:06 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
       
   582 ! !
       
   583 
       
   584 !RBMethod methodsFor:'accessing'!
       
   585 
       
   586 mclass
       
   587     "see Method >> mclass
       
   588     Returns instace of RBClass, RBMetaclass or nil when unknown"
       
   589 
       
   590     ^ self modelClass
       
   591 
       
   592     "Created: / 27-11-2014 / 23:20:25 / Jakub Nesveda <nesvejak@fit.cvut.cz>"
   494 ! !
   593 ! !
   495 
   594 
   496 !RBMethod methodsFor:'accessing'!
   595 !RBMethod methodsFor:'accessing'!
   497 
   596 
   498 methodArgNames
   597 methodArgNames