Kernel-Helpers.st 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. Smalltalk createPackage: 'Kernel-Helpers'!
  2. Trait named: #TPragmator
  3. package: 'Kernel-Helpers'!
  4. !TPragmator methodsFor: 'pragma processing'!
  5. canProcessPragma: aMessage
  6. | selector |
  7. selector := aMessage selector.
  8. ^ (self respondsTo: selector) and: [
  9. (self class superclass canUnderstand: selector) not]
  10. !
  11. processPragma: aMessage
  12. (self canProcessPragma: aMessage) ifTrue: [
  13. ^ aMessage sendTo: self ]
  14. !
  15. processPragmas: aCollection
  16. aCollection do: [ :each | self processPragma: each ]
  17. ! !
  18. Trait named: #TSubclassable
  19. package: 'Kernel-Helpers'!
  20. !TSubclassable methodsFor: 'class creation'!
  21. subclass: aString
  22. "Kept for file-in compatibility."
  23. ^ self subclass: aString slots: #() package: nil
  24. !
  25. subclass: aString instanceVariableNames: anotherString
  26. "Kept for file-in compatibility."
  27. ^ self subclass: aString instanceVariableNames: anotherString package: nil
  28. !
  29. subclass: aString instanceVariableNames: aString2 category: aString3
  30. "Kept for file-in compatibility."
  31. ^ self subclass: aString instanceVariableNames: aString2 package: aString3
  32. !
  33. subclass: aString instanceVariableNames: aString2 classVariableNames: classVars poolDictionaries: pools category: aString3
  34. "Kept for file-in compatibility. ignores class variables and pools."
  35. ^ self subclass: aString instanceVariableNames: aString2 package: aString3
  36. !
  37. subclass: aString instanceVariableNames: aString2 package: aString3
  38. "Kept for file-in compatibility."
  39. ^ self subclass: aString slots: aString2 instanceVariablesStringAsSlotList package: aString3
  40. !
  41. subclass: aString slots: aCollection
  42. "Kept for file-in compatibility."
  43. ^ self subclass: aString slots: aCollection package: nil
  44. !
  45. subclass: aString slots: aCollection classVariables: anObject package: anotherString
  46. "Kept for file-in compatibility. ignores class variables."
  47. ^ ClassBuilder new
  48. superclass: self subclass: aString slots: aCollection package: anotherString
  49. !
  50. subclass: aString slots: aCollection classVariables: anObject poolDictionaries: anotherObject package: anotherString
  51. "Kept for file-in compatibility. ignores class variables and pools."
  52. ^ ClassBuilder new
  53. superclass: self subclass: aString slots: aCollection package: anotherString
  54. !
  55. subclass: aString slots: aCollection package: anotherString
  56. ^ ClassBuilder new
  57. superclass: self subclass: aString slots: aCollection package: anotherString
  58. !
  59. subclass: aString uses: aTraitCompositionDescription
  60. "Kept for file-in compatibility."
  61. ^ self subclass: aString uses: aTraitCompositionDescription slots: #() package: nil
  62. !
  63. subclass: aString uses: aTraitCompositionDescription instanceVariableNames: anotherString
  64. "Kept for file-in compatibility."
  65. ^ self subclass: aString uses: aTraitCompositionDescription instanceVariableNames: anotherString package: nil
  66. !
  67. subclass: aString uses: aTraitCompositionDescription instanceVariableNames: aString2 category: aString3
  68. "Kept for file-in compatibility."
  69. ^ self subclass: aString uses: aTraitCompositionDescription instanceVariableNames: aString2 package: aString3
  70. !
  71. subclass: aString uses: aTraitCompositionDescription instanceVariableNames: aString2 classVariableNames: classVars poolDictionaries: pools category: aString3
  72. "Kept for file-in compatibility. ignores class variables and pools."
  73. ^ self subclass: aString uses: aTraitCompositionDescription instanceVariableNames: aString2 package: aString3
  74. !
  75. subclass: aString uses: aTraitCompositionDescription instanceVariableNames: aString2 package: aString3
  76. "Kept for file-in compatibility."
  77. ^ self subclass: aString uses: aTraitCompositionDescription slots: aString2 instanceVariablesStringAsSlotList package: aString3
  78. !
  79. subclass: aString uses: aTraitCompositionDescription slots: aCollection
  80. "Kept for file-in compatibility."
  81. ^ self subclass: aString uses: aTraitCompositionDescription slots: aCollection package: nil
  82. !
  83. subclass: aString uses: aTraitCompositionDescription slots: aCollection package: aString3
  84. | cls |
  85. cls := self subclass: aString slots: aCollection package: aString3.
  86. cls setTraitComposition: aTraitCompositionDescription asTraitComposition.
  87. ^ cls
  88. ! !