ProtoObjectObjectRepertoireHome
| classRepertoiresDictionary |
| singleton |
| instance | class |
|---|---|
cache management
|
class initialization instance creation |
| classRepertoiresDictionary |
|---|
|
|
| singleton |
|---|
|
|
| cache management |
|---|
| clearEntryFor: aBehavior |
aBehavior isInterface ifTrue: [^self]. classRepertoiresDictionary removeKey: aBehavior name ifAbsent: []. |
| clearRepertoires |
classRepertoiresDictionary := IdentityDictionary new |
| computeRepertoires |
self clearRepertoires. self computeRepertoiresWithGuiFeedback. |
| computeRepertoiresWithGuiFeedback |
"SmallInterfaces: ##modified for Squeak -M.U. 6/23/1999 23:35" | classes counter | classes := self environment allNonInterfaceClasses. counter := 0. 'Caching repertoires for all classes...' displayProgressAt: Sensor cursorPoint from: 0 to: classes size during: [:bar | classes do: [:each | self createEntryFor: each. counter := counter + 1. bar value: counter]] |
| createEntryFor: aBehavior |
classRepertoiresDictionary at: aBehavior name put: aBehavior allSelectors |
| initialize-release |
|---|
| connectToChanges |
ChangeSet addDependent: self |
| disconnectFromChanges |
ChangeSet removeDependent: self |
| initialize |
"self computeRepertoires; connectToChanges" |
| release |
super release. self disconnectFromChanges. |
| update: aChangedClass |
"SmallInterfaces: ##added for Squeak -M.U. 6/23/1999 23:35" aChangedClass withAllSubclasses do: [:each | self clearEntryFor: each] |
| querying |
|---|
| repertoireFor: aBehavior |
^classRepertoiresDictionary at: aBehavior name ifAbsentPut: [aBehavior allSelectors] |
| class initialization |
|---|
| initialize |
"<self initialize>" self nuke. self current. |
| obsolete |
self nuke |
| instance creation |
|---|
| current |
^singleton ifNil: [singleton := super new initialize] |
| new |
^self current |
| nuke |
singleton notNil ifTrue: [singleton release]. singleton := nil. |