Smalltalk.st
branchjv
changeset 19478 1f5aa87f6170
parent 19431 3e697e4bcbf5
parent 19475 33b989d0287a
child 19496 7613c0fb5f3c
equal deleted inserted replaced
19477:af82888ceb72 19478:1f5aa87f6170
  2952     "
  2952     "
  2953 
  2953 
  2954     "Modified: / 07-05-2010 / 10:56:09 / cg"
  2954     "Modified: / 07-05-2010 / 10:56:09 / cg"
  2955 !
  2955 !
  2956 
  2956 
       
  2957 allLoadedPackageIDs
       
  2958 
       
  2959     ^ self allPackageIdsIncludingUnloadedClasses: false
       
  2960 
       
  2961 
       
  2962     "
       
  2963      Smalltalk allLoadedPackageIDs
       
  2964     "
       
  2965 !
       
  2966 
  2957 allLoadedProjectIDs
  2967 allLoadedProjectIDs
  2958 
  2968     <resource: #obsolete>
  2959     ^ self allProjectsIdsIncludingUnloadedClasses: false
  2969     self obsoleteMethodWarning:'use allLoadedPackageIDs'.
       
  2970     ^ self allPackageIdsIncludingUnloadedClasses: false
  2960 
  2971 
  2961 
  2972 
  2962     "
  2973     "
  2963      Smalltalk allLoadedProjectIDs
  2974      Smalltalk allLoadedProjectIDs
  2964     "
  2975     "
  2965 !
  2976 !
  2966 
  2977 
  2967 allProjectIDs
  2978 allPackageIDs
  2968 
  2979 
  2969     ^ self allProjectsIdsIncludingUnloadedClasses: true
  2980     ^ self allPackageIdsIncludingUnloadedClasses: true
  2970 
  2981 
  2971 
  2982     "
  2972     "
  2983      Smalltalk allPackageIDs
  2973      Smalltalk allProjectIDs
  2984     "
  2974     "
  2985 !
  2975 !
  2986 
  2976 
  2987 allPackageIdsIncludingUnloadedClasses: includeUnloadedClasses
  2977 allProjectsIdsIncludingUnloadedClasses: includeUnloadedClasses
  2988     "Returns all package ids.
  2978     "Returns all projects ids.
  2989      Excludes packages coming from unloaded classes if includeUnloadedClasses is false.
  2979      Excludes projects coming from unloaded classes if includeUnloadedClasses is false.
       
  2980     "
  2990     "
  2981 
  2991 
  2982     |allProjects|
  2992     |allProjects|
  2983 
  2993 
  2984     allProjects := Set new.
  2994     allProjects := Set new.
  2985     self allClassesDo:[:eachClass |
  2995     self allClassesDo:[:eachClass |
  2986 	|cls pkg|
  2996         |cls pkg|
  2987 
  2997 
  2988 	eachClass isRealNameSpace ifFalse:[
  2998         eachClass isRealNameSpace ifFalse:[
  2989 	    (includeUnloadedClasses or:[eachClass isLoaded]) ifTrue:[
  2999             (includeUnloadedClasses or:[eachClass isLoaded]) ifTrue:[
  2990 		cls := eachClass theNonMetaclass.
  3000                 cls := eachClass theNonMetaclass.
  2991 		cls isPrivate ifTrue:[
  3001                 cls isPrivate ifTrue:[
  2992 		    cls := cls topOwningClass
  3002                     cls := cls topOwningClass
  2993 		].
  3003                 ].
  2994 		pkg := cls package.
  3004                 pkg := cls package.
  2995 		pkg size > 0 ifTrue:[
  3005                 pkg size > 0 ifTrue:[
  2996 		    allProjects add:pkg.
  3006                     allProjects add:pkg.
  2997 		] ifFalse:[
  3007                 ] ifFalse:[
  2998 		    "/ for now, nameSpaces are not in any package;
  3008                     "/ for now, nameSpaces are not in any package;
  2999 		    "/ this might change. Then, 0-sized packages are
  3009                     "/ this might change. Then, 0-sized packages are
  3000 		    "/ illegal, and the following should be enabled.
  3010                     "/ illegal, and the following should be enabled.
  3001 		    "/ self halt
  3011                     "/ self halt
  3002 		].
  3012                 ].
  3003 		cls isJavaClass ifFalse:[
  3013                 cls isJavaClass ifFalse:[
  3004 		    cls instAndClassSelectorsAndMethodsDo:[:sel :mthd |
  3014                     cls instAndClassSelectorsAndMethodsDo:[:sel :mthd |
  3005 			| package packageAsSymbol |
  3015 			| package packageAsSymbol |
  3006 
  3016 
  3007 			package := mthd package.
  3017 			package := mthd package.
  3008 			packageAsSymbol := package asSymbol.
  3018 			packageAsSymbol := package asSymbol.
  3009 			allProjects add: packageAsSymbol
  3019 			allProjects add: packageAsSymbol
  3010 		    ].
  3020                     ].
  3011 		].
  3021                 ].
  3012 	    ].
  3022             ].
  3013 	].
  3023         ].
  3014     ].
  3024     ].
  3015     allProjects := allProjects asOrderedCollection sort.
  3025     allProjects := allProjects asOrderedCollection sort.
  3016     ^ allProjects
  3026     ^ allProjects
       
  3027 
       
  3028     "
       
  3029      Smalltalk allProjectsIdsIncludingUnloadedClasses: true
       
  3030      Smalltalk allProjectsIdsIncludingUnloadedClasses: false
       
  3031     "
       
  3032 !
       
  3033 
       
  3034 allProjectIDs
       
  3035     <resource: #obsolete>
       
  3036     self obsoleteMethodWarning:'use allPackageIDs'.
       
  3037     ^ self allPackageIDs
       
  3038 
       
  3039     "
       
  3040      Smalltalk allProjectIDs
       
  3041     "
       
  3042 !
       
  3043 
       
  3044 allProjectsIdsIncludingUnloadedClasses: includeUnloadedClasses
       
  3045     <resource: #obsolete>
       
  3046     "Returns all projects ids.
       
  3047      Excludes projects coming from unloaded classes if includeUnloadedClasses is false.
       
  3048     "
       
  3049 
       
  3050     self obsoleteMethodWarning:'use allPackageIdsIncludingUnloadedClasses:'.
       
  3051     ^ self allPackageIdsIncludingUnloadedClasses: includeUnloadedClasses
  3017 
  3052 
  3018     "
  3053     "
  3019      Smalltalk allProjectsIdsIncludingUnloadedClasses: true
  3054      Smalltalk allProjectsIdsIncludingUnloadedClasses: true
  3020      Smalltalk allProjectsIdsIncludingUnloadedClasses: false
  3055      Smalltalk allProjectsIdsIncludingUnloadedClasses: false
  3021     "
  3056     "