| querying |
| allExtendedInterfaces
|
^self allInterfaces select: [:each | each isExtended]
|
| allExtendingInterfaces
|
^self allInterfaces select: [:each | each isExtending]
|
| allInterfaces
|
^Interface subclasses asSet
|
| allNonEmptyInterfaces
|
^self allInterfaces reject: [:each | each isEmptyInterface]
|
| childlessInterfaces
|
^self leafInterfaces
|
| classesNotFullyImplemented
|
| resultSet classes |
resultSet := Set new.
classes := self environment allNonInterfaceClasses.
self allInterfaces do:
[:eachInterface |
resultSet addAll: (classes select:
[:eachClass | (eachInterface methodsStubbedIn: eachClass) notEmpty])].
^resultSet
|
| emptyInterfaces
|
^self allInterfaces select: [:each | each isEmptyInterface]
|
| equivalentInterfaces
|
"Return a collection of sets of interfaces having an equivalent repertoire"
"SmallInterfaces: ##modified for Squeak -M.U. 6/23/1999 23:35"
| collectionOfSetsOfEquivalentInterfaces interfaces setOfEquivalentInterfaces |
collectionOfSetsOfEquivalentInterfaces := OrderedCollection new.
interfaces := self allInterfaces copy.
self allInterfaces do:
[:each |
interfaces remove: each ifAbsent: [].
setOfEquivalentInterfaces := interfaces select: [:anInterface | each isEquivalentTo: anInterface].
setOfEquivalentInterfaces notEmpty
ifTrue:
[interfaces removeAll: setOfEquivalentInterfaces.
setOfEquivalentInterfaces add: each. "...since it isn't included in yet"
collectionOfSetsOfEquivalentInterfaces add: setOfEquivalentInterfaces]].
^collectionOfSetsOfEquivalentInterfaces
|
| includesInterfaceNamed: aSymbol
|
^self allInterfaces contains: [:each | each name == aSymbol]
|
| interfaceNamed: aSymbol
|
^self allInterfaces
detect: [:each | each name == aSymbol]
ifNone: [nil]
|
| interfaceWithRepertoire: repertoire
|
^self allInterfaces
detect: [:each | each repertoire consistsOf: repertoire]
ifNone: [nil]
|
| interfacesWithRepertoire: repertoire
|
^self allInterfaces select: [:each | each repertoire consistsOf: repertoire]
|
| leafInterfaces
|
^Interface consolidate: self allInterfaces
|
| rootInterfaces
|
^self rootsOfTheInterfaceWorld
|
| rootsOfTheInterfaceWorld
|
^self allInterfaces select: [:each | each isOrphan]
|