Kernel-Helpers.st 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. Smalltalk createPackage: 'Kernel-Helpers'!
  2. Trait named: #TIsInGroup
  3. package: 'Kernel-Helpers'!
  4. !TIsInGroup commentStamp!
  5. I contain all `isXxx` checking methods that check
  6. if receiver is part of some group of objects (`isBehavior` etc.)
  7. I should NOT contain tests for
  8. having a certain property (`isImmutable` etc.).!
  9. !TIsInGroup methodsFor: 'testing'!
  10. isBehavior
  11. ^ false
  12. !
  13. isBoolean
  14. ^ false
  15. !
  16. isClass
  17. ^ false
  18. !
  19. isCompiledMethod
  20. ^ false
  21. !
  22. isError
  23. ^ false
  24. !
  25. isMetaclass
  26. ^ false
  27. !
  28. isNumber
  29. ^ false
  30. !
  31. isPackage
  32. ^ false
  33. !
  34. isString
  35. ^ false
  36. !
  37. isSymbol
  38. ^ false
  39. ! !
  40. Trait named: #TPragmator
  41. package: 'Kernel-Helpers'!
  42. !TPragmator methodsFor: 'pragma processing'!
  43. canProcessPragma: aMessage
  44. ^ self class includesSelector: aMessage selector
  45. !
  46. processPragma: aMessage
  47. (self canProcessPragma: aMessage) ifTrue: [
  48. ^ aMessage sendTo: self ]
  49. !
  50. processPragmas: aCollection
  51. aCollection do: [ :each | self processPragma: each ]
  52. ! !
  53. Trait named: #TSubclassable
  54. package: 'Kernel-Helpers'!
  55. !TSubclassable methodsFor: 'class creation'!
  56. subclass: aString
  57. "Kept for file-in compatibility."
  58. ^ self subclass: aString slots: #() package: nil
  59. !
  60. subclass: aString instanceVariableNames: anotherString
  61. "Kept for file-in compatibility."
  62. ^ self subclass: aString instanceVariableNames: anotherString package: nil
  63. !
  64. subclass: aString instanceVariableNames: aString2 category: aString3
  65. "Kept for file-in compatibility."
  66. ^ self subclass: aString instanceVariableNames: aString2 package: aString3
  67. !
  68. subclass: aString instanceVariableNames: aString2 classVariableNames: classVars poolDictionaries: pools category: aString3
  69. "Kept for file-in compatibility. ignores class variables and pools."
  70. ^ self subclass: aString instanceVariableNames: aString2 package: aString3
  71. !
  72. subclass: aString instanceVariableNames: aString2 package: aString3
  73. "Kept for file-in compatibility."
  74. ^ self subclass: aString slots: aString2 instanceVariablesStringAsSlotList package: aString3
  75. !
  76. subclass: aString slots: aCollection
  77. "Kept for file-in compatibility."
  78. ^ self subclass: aString slots: aCollection package: nil
  79. !
  80. subclass: aString slots: aCollection classVariables: anObject package: anotherString
  81. "Kept for file-in compatibility. ignores class variables."
  82. ^ ClassBuilder new
  83. superclass: self subclass: aString slots: aCollection package: anotherString
  84. !
  85. subclass: aString slots: aCollection classVariables: anObject poolDictionaries: anotherObject package: anotherString
  86. "Kept for file-in compatibility. ignores class variables and pools."
  87. ^ ClassBuilder new
  88. superclass: self subclass: aString slots: aCollection package: anotherString
  89. !
  90. subclass: aString slots: aCollection package: anotherString
  91. ^ ClassBuilder new
  92. superclass: self subclass: aString slots: aCollection package: anotherString
  93. !
  94. subclass: aString uses: aTraitCompositionDescription
  95. "Kept for file-in compatibility."
  96. ^ self subclass: aString uses: aTraitCompositionDescription slots: #() package: nil
  97. !
  98. subclass: aString uses: aTraitCompositionDescription instanceVariableNames: anotherString
  99. "Kept for file-in compatibility."
  100. ^ self subclass: aString uses: aTraitCompositionDescription instanceVariableNames: anotherString package: nil
  101. !
  102. subclass: aString uses: aTraitCompositionDescription instanceVariableNames: aString2 category: aString3
  103. "Kept for file-in compatibility."
  104. ^ self subclass: aString uses: aTraitCompositionDescription instanceVariableNames: aString2 package: aString3
  105. !
  106. subclass: aString uses: aTraitCompositionDescription instanceVariableNames: aString2 classVariableNames: classVars poolDictionaries: pools category: aString3
  107. "Kept for file-in compatibility. ignores class variables and pools."
  108. ^ self subclass: aString uses: aTraitCompositionDescription instanceVariableNames: aString2 package: aString3
  109. !
  110. subclass: aString uses: aTraitCompositionDescription instanceVariableNames: aString2 package: aString3
  111. "Kept for file-in compatibility."
  112. ^ self subclass: aString uses: aTraitCompositionDescription slots: aString2 instanceVariablesStringAsSlotList package: aString3
  113. !
  114. subclass: aString uses: aTraitCompositionDescription slots: aCollection
  115. "Kept for file-in compatibility."
  116. ^ self subclass: aString uses: aTraitCompositionDescription slots: aCollection package: nil
  117. !
  118. subclass: aString uses: aTraitCompositionDescription slots: aCollection package: aString3
  119. | cls |
  120. cls := self subclass: aString slots: aCollection package: aString3.
  121. cls setTraitComposition: aTraitCompositionDescription asTraitComposition.
  122. ^ cls
  123. ! !