The Trunk: System-ul.423.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: System-ul.423.mcz

commits-2
Levente Uzonyi uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-ul.423.mcz

==================== Summary ====================

Name: System-ul.423
Author: ul
Time: 28 February 2011, 12:05:19.782 pm
UUID: 5334bfde-1537-fa4a-8491-4219f54632ce
Ancestors: System-ul.422

- moved all class and trait access logic from SmalltalkImage to SystemDictionary
- simplified a few methods in SystemDictionary

=============== Diff against System-ul.422 ===============

Item was changed:
  ----- Method: SmalltalkImage>>allClasses (in category 'classes and traits') -----
  allClasses  
  "Return all the class defined in the system"
 
+ ^globals allClasses!
- ^Array streamContents:[:s| self allClassesDo:[:aClass| s nextPut: aClass]].!

Item was changed:
  ----- Method: SmalltalkImage>>allClassesAndTraits (in category 'classes and traits') -----
  allClassesAndTraits
  "Return all the classes and traits defined in the system"
 
+ ^globals allClassesAndTraits!
- ^Array streamContents:[:s| self allClassesAndTraitsDo:[:each| s nextPut: each]].!

Item was changed:
  ----- Method: SmalltalkImage>>allClassesAndTraitsDo: (in category 'classes and traits') -----
  allClassesAndTraitsDo: aBlock
  "Evaluate the argument, aBlock, for each class and trait in the system."
 
+ globals allClassesAndTraitsDo: aBlock!
- self allClassesDo: aBlock.
- self allTraitsDo: aBlock.
- !

Item was changed:
  ----- Method: SmalltalkImage>>allClassesDo: (in category 'classes and traits') -----
  allClassesDo: aBlock
  "Evaluate the argument, aBlock, for each class in the system."
 
+ globals allClassesDo: aBlock!
- ^globals allClassesDo: aBlock!

Item was changed:
  ----- Method: SmalltalkImage>>allTraits (in category 'classes and traits') -----
  allTraits
  "Return all traits defined in the system"
 
+ ^globals allTraits!
- ^Array streamContents:[:s| self allTraitsDo:[:aTrait| s nextPut: aTrait]].!

Item was changed:
  ----- Method: SmalltalkImage>>allTraitsDo: (in category 'classes and traits') -----
  allTraitsDo: aBlock
  "Evaluate the argument, aBlock, for each trait in the system."
 
+ globals allTraitsDo: aBlock!
- ^globals allTraitsDo: aBlock!

Item was changed:
  ----- Method: SmalltalkImage>>classNames (in category 'classes and traits') -----
  classNames
  "Answer a collection of all class names in the system."
 
+ ^globals classNames!
- ^self allClasses collect:[:aClass| aClass name].!

Item was changed:
  ----- Method: SmalltalkImage>>traitNames (in category 'classes and traits') -----
  traitNames
  "Answer a SortedCollection of all traits (not including class-traits) names."
 
+ ^globals traitNames!
- ^self allTraits collect:[:aTrait| aTrait name].!

Item was changed:
  ----- Method: SystemDictionary>>allClassesAndTraits (in category 'classes and traits') -----
  allClassesAndTraits
  "Return all the classes and traits defined in the Smalltalk SystemDictionary"
 
+ ^Array streamContents: [ :stream |
+ self allClassesAndTraitsDo: [ :each | stream nextPut: each ] ]!
- ^ self classNames , self traitNames collect: [:each | self at: each]!

Item was changed:
  ----- Method: SystemDictionary>>allClassesAndTraitsDo: (in category 'classes and traits') -----
  allClassesAndTraitsDo: aBlock
+
+ self
+ allClassesDo: aBlock;
+ allTraitsDo: aBlock!
- ^self allClassesAndTraits do: aBlock!

Item was changed:
  ----- Method: SystemDictionary>>allClassesDo: (in category 'classes and traits') -----
  allClassesDo: aBlock
  "Evaluate the argument, aBlock, for each class in the system."
 
+ self classNames do: [ :name |
+ aBlock value: (self at: name) ]!
- (self classNames collect: [:name | self at: name]) do: aBlock!

Item was changed:
  ----- Method: SystemDictionary>>allTraitsDo: (in category 'classes and traits') -----
  allTraitsDo: aBlock
  "Evaluate the argument, aBlock, for each trait in the system."
 
+ self traitNames do: [ :name |
+ aBlock value: (self at: name) ]!
- (self traitNames collect: [:name | self at: name]) do: aBlock!

Item was changed:
  ----- Method: SystemDictionary>>classAndTraitNames (in category 'classes and traits') -----
  classAndTraitNames
  "Answer a sorted collection of all class and trait (not including class-traits) names. The performance of this algorithm is O(n) if the classNames are already cached, otherwise O(n*log(n)) where n is self size."
 
  | classNames traitNames result temporary |
  classNames := self classNames.
+ traitNames := self traitNames ifEmpty: [ ^classNames ].
- traitNames := self traitNames.
- traitNames ifEmpty: [^classNames].
  temporary := Array new: classNames size + traitNames size.
  result := temporary shallowCopy.
  temporary
  replaceFrom: 1
  to: classNames size
  with: classNames
  startingAt: 1;
  replaceFrom: classNames size + 1
  to: temporary size
  with: traitNames
  startingAt: 1;
  mergeFirst: 1
  middle: classNames size
  last: temporary size
  into: result
  by: nil.
  ^result!