author | Claus Gittinger <cg@exept.de> |
Mon, 11 Sep 2017 09:08:06 +0200 | |
changeset 17686 | c6fc2da19287 |
parent 13498 | b8d845e42988 |
permissions | -rw-r--r-- |
" COPYRIGHT (c) 2004 by eXept Software AG All Rights Reserved This software is furnished under a license and may be used only in accordance with the terms of that license and with the inclusion of the above copyright notice. This software may not be provided or otherwise made available to, or used by, any other person. No title to or ownership of the software is hereby transferred. " "{ Package: 'stx:libtool' }" "{ NameSpace: Tools }" MethodCategoryList subclass:#FullMethodCategoryList instanceVariableNames:'' classVariableNames:'' poolDictionaries:'' category:'Interface-Browsers-New' ! !FullMethodCategoryList class methodsFor:'documentation'! copyright " COPYRIGHT (c) 2004 by eXept Software AG All Rights Reserved This software is furnished under a license and may be used only in accordance with the terms of that license and with the inclusion of the above copyright notice. This software may not be provided or otherwise made available to, or used by, any other person. No title to or ownership of the software is hereby transferred. " ! documentation " embeddable application displaying the classes as listed by the inputGenerator. Provides an outputGenerator, which enumerates the classes and their protocols (method-categories) in the selected classes. [author:] Claus Gittinger (cg@exept.de) " ! ! !FullMethodCategoryList methodsFor:'generators'! makeGenerator "return a generator which enumerates the methods from the selected protocol; that generator generates 4-element elements (includes the class and protocol), in order to make the consumers only depend on one input (i.e. to pass multiple-class and multiple-protocol info without a need for another classHolder/protocolHolder in the methodList)." ^ Iterator on:[:whatToDo | |protocols all packages theProtocol| protocols := self selectedProtocols value ? #(). all := protocols includes:(self class nameListEntryForALL). packages := packageFilter value value. protocols size > 0 ifTrue:[ protocols size == 1 ifTrue:[ theProtocol := protocols first. environment allClassesDo:[:eachClass | eachClass instAndClassSelectorsAndMethodsDo:[:sel :eachMethod | |cat| cat := eachMethod category. (all or:[theProtocol = cat]) ifTrue:[ (packages isNil or:[packages includes:eachMethod package]) ifTrue:[ whatToDo value:eachClass value:cat value:sel value:eachMethod. ]. ]. ]. ] ] ifFalse:[ environment allClassesDo:[:eachClass | eachClass instAndClassSelectorsAndMethodsDo:[:sel :eachMethod | |cat| cat := eachMethod category. (all or:[protocols includes:cat]) ifTrue:[ (packages isNil or:[packages includes:eachMethod package]) ifTrue:[ whatToDo value:eachClass value:cat value:sel value:eachMethod. ]. ]. ]. ] ] ] ] ! ! !FullMethodCategoryList methodsFor:'private'! listOfMethodCategories |categories| categories := Set new. categories addAll:MethodCategoryCache new allMethodCategories. categories := categories asOrderedCollection sort. categories addFirst:(self class nameListEntryForALL). ^ categories ! ! !FullMethodCategoryList class methodsFor:'documentation'! version ^ '$Header: /cvs/stx/stx/libtool/Tools_FullMethodCategoryList.st,v 1.6 2013-09-05 10:46:11 vrany Exp $' ! !