Project.st
changeset 4819 19b89da166c0
parent 4814 7825b9141f01
child 4820 481593067423
equal deleted inserted replaced
4818:ee229e4e351c 4819:19b89da166c0
    18 		LoadedProjects'
    18 		LoadedProjects'
    19 	poolDictionaries:''
    19 	poolDictionaries:''
    20 	category:'System-Support'
    20 	category:'System-Support'
    21 !
    21 !
    22 
    22 
    23 Object subclass:#ClassInfo
    23 Object subclass:#MethodInfo
    24 	instanceVariableNames:'conditionForInclusion className classFileName'
    24 	instanceVariableNames:'conditionForInclusion methodName className fileName'
    25 	classVariableNames:''
    25 	classVariableNames:''
    26 	poolDictionaries:''
    26 	poolDictionaries:''
    27 	privateIn:Project
    27 	privateIn:Project
    28 !
    28 !
    29 
    29 
    30 Object subclass:#MethodInfo
    30 Object subclass:#ClassInfo
    31 	instanceVariableNames:'conditionForInclusion methodName className fileName'
    31 	instanceVariableNames:'conditionForInclusion className classFileName'
    32 	classVariableNames:''
    32 	classVariableNames:''
    33 	poolDictionaries:''
    33 	poolDictionaries:''
    34 	privateIn:Project
    34 	privateIn:Project
    35 !
    35 !
    36 
    36 
  2419     isLoaded notNil ifTrue:[^ isLoaded].
  2419     isLoaded notNil ifTrue:[^ isLoaded].
  2420 
  2420 
  2421     "/ check for loaded class-library - assume loaded if present.
  2421     "/ check for loaded class-library - assume loaded if present.
  2422     binaryModule := ObjectMemory binaryModuleInfo detect:[:i | i package = self package] ifNone:nil.
  2422     binaryModule := ObjectMemory binaryModuleInfo detect:[:i | i package = self package] ifNone:nil.
  2423     binaryModule notNil ifTrue:[
  2423     binaryModule notNil ifTrue:[
  2424 	^ true
  2424         ^ true
  2425     ].
  2425     ].
  2426 
  2426 
  2427     "/ check for all classes ...
  2427     "/ check for all classes ...
  2428     self classes do:[:aClassOrClassName |
  2428     self classes do:[:aClassOrClassName |
  2429 	aClassOrClassName isBehavior ifFalse:[
  2429         aClassOrClassName isBehavior ifFalse:[
  2430 	    aClassOrClassName isSymbol ifTrue:[
  2430             aClassOrClassName isSymbol ifTrue:[
  2431 		(cls := Smalltalk at:aClassOrClassName) isNil ifTrue:[
  2431                 (cls := Smalltalk at:aClassOrClassName) isNil ifTrue:[
  2432 		    ^ false
  2432                     ^ false
  2433 		].
  2433                 ].
  2434 		cls isBehavior ifFalse:[^ false].
  2434                 cls isBehavior ifFalse:[^ false].
  2435 		cls isLoaded ifFalse:[^ false].
  2435                 cls isLoaded ifFalse:[^ false].
  2436 	    ] ifFalse:[
  2436             ] ifFalse:[
  2437 		self halt.
  2437                 self halt.
  2438 		^ false
  2438                 ^ false
  2439 	    ]
  2439             ]
  2440 	]
  2440         ]
  2441     ].
  2441     ].
  2442 
  2442 
  2443     "/ check for all patches & extensions ...
  2443     "/ check for all patches & extensions ...
  2444     self methods do:[:aMethodInfo |
  2444     self methods do:[:aMethodInfo |
  2445 	aMethodInfo method isNil ifTrue:[
  2445         aMethodInfo theMethod isNil ifTrue:[
  2446 	    ^ false
  2446             ^ false
  2447 	].
  2447         ].
  2448     ].
  2448     ].
  2449 
  2449 
  2450     ^ true
  2450     ^ true
  2451 
  2451 
  2452     "
  2452     "
  2453      (Project projectWithId:#'stx:libbasic') isLoaded
  2453      (Project projectWithId:#'stx:libbasic') isLoaded
  2454      (Project projectWithId:#'stx:goodies/persistency') isLoaded 
  2454      (Project projectWithId:#'stx:goodies/persistency') isLoaded 
  2455     "
  2455     "
  2456 
  2456 
       
  2457     "Modified: / 26.9.1999 / 13:39:55 / cg"
  2457 !
  2458 !
  2458 
  2459 
  2459 methodInfo
  2460 methodInfo
  2460     "return a methodInfo collection of methods belonging to that project"
  2461     "return a methodInfo collection of methods belonging to that project"
  2461 
  2462 
  2638 
  2639 
  2639     "Modified: 3.5.1996 / 23:59:10 / stefan"
  2640     "Modified: 3.5.1996 / 23:59:10 / stefan"
  2640     "Modified: 14.2.1997 / 15:38:47 / cg"
  2641     "Modified: 14.2.1997 / 15:38:47 / cg"
  2641 ! !
  2642 ! !
  2642 
  2643 
       
  2644 !Project::MethodInfo methodsFor:'accessing'!
       
  2645 
       
  2646 className
       
  2647     "return the value of the instance variable 'className' (automatically generated)"
       
  2648 
       
  2649     ^ className!
       
  2650 
       
  2651 className:something
       
  2652     "set the value of the instance variable 'className' (automatically generated)"
       
  2653 
       
  2654     className := something.!
       
  2655 
       
  2656 conditionForInclusion
       
  2657     "return the value of the instance variable 'conditionForInclusion' (automatically generated)"
       
  2658 
       
  2659     ^ conditionForInclusion!
       
  2660 
       
  2661 conditionForInclusion:something
       
  2662     "set the value of the instance variable 'conditionForInclusion' (automatically generated)"
       
  2663 
       
  2664     conditionForInclusion := something.!
       
  2665 
       
  2666 fileName
       
  2667     "return the value of the instance variable 'fileName' (automatically generated)"
       
  2668 
       
  2669     ^ fileName!
       
  2670 
       
  2671 fileName:something
       
  2672     "set the value of the instance variable 'fileName' (automatically generated)"
       
  2673 
       
  2674     fileName := something.!
       
  2675 
       
  2676 methodName
       
  2677     "return the value of the instance variable 'methodName' (automatically generated)"
       
  2678 
       
  2679     ^ methodName!
       
  2680 
       
  2681 methodName:something
       
  2682     "set the value of the instance variable 'methodName' (automatically generated)"
       
  2683 
       
  2684     methodName := something.! !
       
  2685 
       
  2686 !Project::MethodInfo methodsFor:'printing & storing'!
       
  2687 
       
  2688 displayString
       
  2689     ^ 'MethodInfo: ' , className , ' ' , methodName
       
  2690 
       
  2691 
       
  2692 ! !
       
  2693 
       
  2694 !Project::MethodInfo methodsFor:'queries'!
       
  2695 
       
  2696 method
       
  2697     self obsoleteMethodWarning.
       
  2698     ^ self theMethod.
       
  2699 
       
  2700     "Modified: / 26.9.1999 / 13:40:16 / cg"
       
  2701 !
       
  2702 
       
  2703 theMethod
       
  2704     |cls|
       
  2705 
       
  2706     cls := Smalltalk classNamed:className.
       
  2707     cls isNil ifTrue:[ ^ nil].
       
  2708     ^ cls compiledMethodAt:methodName asSymbol.
       
  2709 
       
  2710     "Created: / 26.9.1999 / 13:39:07 / cg"
       
  2711 ! !
       
  2712 
  2643 !Project::ClassInfo methodsFor:'accessing'!
  2713 !Project::ClassInfo methodsFor:'accessing'!
  2644 
  2714 
  2645 classFileName
  2715 classFileName
  2646     "return the value of the instance variable 'classFileName' (automatically generated)"
  2716     "return the value of the instance variable 'classFileName' (automatically generated)"
  2647 
  2717 
  2676 
  2746 
  2677 displayString
  2747 displayString
  2678     ^ 'ClassInfo: ' , className
  2748     ^ 'ClassInfo: ' , className
  2679 ! !
  2749 ! !
  2680 
  2750 
  2681 !Project::MethodInfo methodsFor:'accessing'!
  2751 !Project::ClassInfo methodsFor:'queries'!
  2682 
  2752 
  2683 className
  2753 theClass
  2684     "return the value of the instance variable 'className' (automatically generated)"
       
  2685 
       
  2686     ^ className!
       
  2687 
       
  2688 className:something
       
  2689     "set the value of the instance variable 'className' (automatically generated)"
       
  2690 
       
  2691     className := something.!
       
  2692 
       
  2693 conditionForInclusion
       
  2694     "return the value of the instance variable 'conditionForInclusion' (automatically generated)"
       
  2695 
       
  2696     ^ conditionForInclusion!
       
  2697 
       
  2698 conditionForInclusion:something
       
  2699     "set the value of the instance variable 'conditionForInclusion' (automatically generated)"
       
  2700 
       
  2701     conditionForInclusion := something.!
       
  2702 
       
  2703 fileName
       
  2704     "return the value of the instance variable 'fileName' (automatically generated)"
       
  2705 
       
  2706     ^ fileName!
       
  2707 
       
  2708 fileName:something
       
  2709     "set the value of the instance variable 'fileName' (automatically generated)"
       
  2710 
       
  2711     fileName := something.!
       
  2712 
       
  2713 methodName
       
  2714     "return the value of the instance variable 'methodName' (automatically generated)"
       
  2715 
       
  2716     ^ methodName!
       
  2717 
       
  2718 methodName:something
       
  2719     "set the value of the instance variable 'methodName' (automatically generated)"
       
  2720 
       
  2721     methodName := something.! !
       
  2722 
       
  2723 !Project::MethodInfo methodsFor:'printing & storing'!
       
  2724 
       
  2725 displayString
       
  2726     ^ 'MethodInfo: ' , className , ' ' , methodName
       
  2727 
       
  2728 
       
  2729 ! !
       
  2730 
       
  2731 !Project::MethodInfo methodsFor:'queries'!
       
  2732 
       
  2733 method
       
  2734     |cls|
  2754     |cls|
  2735 
  2755 
  2736     cls := Smalltalk classNamed:className.
  2756     cls := Smalltalk classNamed:className.
  2737     cls isNil ifTrue:[ ^ nil].
  2757     cls isNil ifTrue:[ ^ nil].
  2738     ^ cls compiledMethodAt:methodName asSymbol.
  2758     ^ cls
       
  2759 
       
  2760     "Created: / 26.9.1999 / 13:39:00 / cg"
  2739 ! !
  2761 ! !
  2740 
  2762 
  2741 !Project class methodsFor:'documentation'!
  2763 !Project class methodsFor:'documentation'!
  2742 
  2764 
  2743 version
  2765 version
  2744     ^ '$Header: /cvs/stx/stx/libbasic/Project.st,v 1.111 1999-09-25 13:20:37 cg Exp $'
  2766     ^ '$Header: /cvs/stx/stx/libbasic/Project.st,v 1.112 1999-09-26 13:29:45 cg Exp $'
  2745 ! !
  2767 ! !
  2746 Project initialize!
  2768 Project initialize!