Kernel-Helpers.st 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  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. | selector |
  45. selector := aMessage selector.
  46. ^ (self respondsTo: selector) and: [
  47. (self class superclass canUnderstand: selector) not]
  48. !
  49. processPragma: aMessage
  50. (self canProcessPragma: aMessage) ifTrue: [
  51. ^ aMessage sendTo: self ]
  52. !
  53. processPragmas: aCollection
  54. aCollection do: [ :each | self processPragma: each ]
  55. ! !
  56. Trait named: #TSubclassable
  57. package: 'Kernel-Helpers'!
  58. !TSubclassable methodsFor: 'class creation'!
  59. subclass: aString
  60. "Kept for file-in compatibility."
  61. ^ self subclass: aString slots: #() package: nil
  62. !
  63. subclass: aString instanceVariableNames: anotherString
  64. "Kept for file-in compatibility."
  65. ^ self subclass: aString instanceVariableNames: anotherString package: nil
  66. !
  67. subclass: aString instanceVariableNames: aString2 category: aString3
  68. "Kept for file-in compatibility."
  69. ^ self subclass: aString instanceVariableNames: aString2 package: aString3
  70. !
  71. subclass: aString instanceVariableNames: aString2 classVariableNames: classVars poolDictionaries: pools category: aString3
  72. "Kept for file-in compatibility. ignores class variables and pools."
  73. ^ self subclass: aString instanceVariableNames: aString2 package: aString3
  74. !
  75. subclass: aString instanceVariableNames: aString2 package: aString3
  76. "Kept for file-in compatibility."
  77. ^ self subclass: aString slots: aString2 instanceVariablesStringAsSlotList package: aString3
  78. !
  79. subclass: aString slots: aCollection
  80. "Kept for file-in compatibility."
  81. ^ self subclass: aString slots: aCollection package: nil
  82. !
  83. subclass: aString slots: aCollection classVariables: anObject package: anotherString
  84. "Kept for file-in compatibility. ignores class variables."
  85. ^ ClassBuilder new
  86. superclass: self subclass: aString slots: aCollection package: anotherString
  87. !
  88. subclass: aString slots: aCollection classVariables: anObject poolDictionaries: anotherObject package: anotherString
  89. "Kept for file-in compatibility. ignores class variables and pools."
  90. ^ ClassBuilder new
  91. superclass: self subclass: aString slots: aCollection package: anotherString
  92. !
  93. subclass: aString slots: aCollection package: anotherString
  94. ^ ClassBuilder new
  95. superclass: self subclass: aString slots: aCollection package: anotherString
  96. !
  97. subclass: aString uses: aTraitCompositionDescription
  98. "Kept for file-in compatibility."
  99. ^ self subclass: aString uses: aTraitCompositionDescription slots: #() package: nil
  100. !
  101. subclass: aString uses: aTraitCompositionDescription instanceVariableNames: anotherString
  102. "Kept for file-in compatibility."
  103. ^ self subclass: aString uses: aTraitCompositionDescription instanceVariableNames: anotherString package: nil
  104. !
  105. subclass: aString uses: aTraitCompositionDescription instanceVariableNames: aString2 category: aString3
  106. "Kept for file-in compatibility."
  107. ^ self subclass: aString uses: aTraitCompositionDescription instanceVariableNames: aString2 package: aString3
  108. !
  109. subclass: aString uses: aTraitCompositionDescription instanceVariableNames: aString2 classVariableNames: classVars poolDictionaries: pools category: aString3
  110. "Kept for file-in compatibility. ignores class variables and pools."
  111. ^ self subclass: aString uses: aTraitCompositionDescription instanceVariableNames: aString2 package: aString3
  112. !
  113. subclass: aString uses: aTraitCompositionDescription instanceVariableNames: aString2 package: aString3
  114. "Kept for file-in compatibility."
  115. ^ self subclass: aString uses: aTraitCompositionDescription slots: aString2 instanceVariablesStringAsSlotList package: aString3
  116. !
  117. subclass: aString uses: aTraitCompositionDescription slots: aCollection
  118. "Kept for file-in compatibility."
  119. ^ self subclass: aString uses: aTraitCompositionDescription slots: aCollection package: nil
  120. !
  121. subclass: aString uses: aTraitCompositionDescription slots: aCollection package: aString3
  122. | cls |
  123. cls := self subclass: aString slots: aCollection package: aString3.
  124. cls setTraitComposition: aTraitCompositionDescription asTraitComposition.
  125. ^ cls
  126. ! !