ProjectDefinition.st
changeset 10716 4f7bca7c5516
parent 10713 5772d2920a27
child 10745 4ac84a1c1516
equal deleted inserted replaced
10715:6481d513a0ad 10716:4f7bca7c5516
    90     "Modified: / 09-08-2006 / 19:27:53 / fm"
    90     "Modified: / 09-08-2006 / 19:27:53 / fm"
    91     "Modified: / 17-08-2006 / 17:24:23 / cg"
    91     "Modified: / 17-08-2006 / 17:24:23 / cg"
    92 ! !
    92 ! !
    93 
    93 
    94 !ProjectDefinition class methodsFor:'accessing'!
    94 !ProjectDefinition class methodsFor:'accessing'!
       
    95 
       
    96 allPreRequisites
       
    97     |setOfAllPreRequisites setOfExcludedPreRequisites setOfExcludedSubProjects allPreRequisites toAdd|
       
    98 
       
    99     setOfExcludedPreRequisites := self excludedFromPreRequisites asSet.
       
   100     setOfExcludedSubProjects := self excludedFromSubProjects asSet.
       
   101 
       
   102     setOfAllPreRequisites := Set new.
       
   103     allPreRequisites := OrderedCollection new.
       
   104     toAdd := OrderedCollection new.
       
   105     toAdd addAll:(self preRequisites).
       
   106     toAdd addAll:(self subProjects ).
       
   107 
       
   108     [toAdd notEmpty] whileTrue:[
       
   109         |aPreRequisiteProjectID def|
       
   110 
       
   111         aPreRequisiteProjectID := toAdd removeFirst.
       
   112         (setOfAllPreRequisites includes:aPreRequisiteProjectID) ifFalse:[
       
   113             (setOfExcludedPreRequisites includes:aPreRequisiteProjectID) ifFalse:[
       
   114                 (setOfExcludedSubProjects includes:aPreRequisiteProjectID) ifFalse:[
       
   115                     allPreRequisites add:aPreRequisiteProjectID.
       
   116                     setOfAllPreRequisites add:aPreRequisiteProjectID.
       
   117 
       
   118                     def := ProjectDefinition definitionClassForPackage:aPreRequisiteProjectID.
       
   119                     def isNil ifTrue:[
       
   120                         Transcript showCR:'ProjectDefinition ',aPreRequisiteProjectID,' is missing - cannot find its preRequisites.'.
       
   121                     ] ifFalse:[
       
   122                         def preRequisites 
       
   123                             select:[:eachSubPreRequisite | (setOfAllPreRequisites includes:eachSubPreRequisite) not]
       
   124                             thenDo:[:eachSubPreRequisite | 
       
   125                                         Transcript showCR:(aPreRequisiteProjectID,' requires ',eachSubPreRequisite).
       
   126                                         toAdd add:eachSubPreRequisite ].
       
   127                         def subProjects 
       
   128                             select:[:eachSubSubRequisite | (setOfAllPreRequisites includes:eachSubSubRequisite) not]
       
   129                             thenDo:[:eachSubSubRequisite | 
       
   130                                         Transcript showCR:(aPreRequisiteProjectID,' hasSub ',eachSubSubRequisite).
       
   131                                         toAdd add:eachSubSubRequisite ].
       
   132                     ].
       
   133                 ]        
       
   134             ]        
       
   135         ]        
       
   136     ].
       
   137     ^ allPreRequisites.
       
   138 
       
   139     "
       
   140      exept_expeccoNET_application allPreRequisites   
       
   141      alspa_batch_application allPreRequisites
       
   142     "
       
   143 !
    95 
   144 
    96 initialClassNameForDefinitionOf:aPackageId
   145 initialClassNameForDefinitionOf:aPackageId
    97     |s|
   146     |s|
    98 
   147 
    99     s := aPackageId asString copy replaceAny:':/' with:$_.
   148     s := aPackageId asString copy replaceAny:':/' with:$_.
  3808 ! !
  3857 ! !
  3809 
  3858 
  3810 !ProjectDefinition class methodsFor:'documentation'!
  3859 !ProjectDefinition class methodsFor:'documentation'!
  3811 
  3860 
  3812 version
  3861 version
  3813     ^ '$Header: /cvs/stx/stx/libbasic/ProjectDefinition.st,v 1.163 2007-09-11 10:00:09 fm Exp $'
  3862     ^ '$Header: /cvs/stx/stx/libbasic/ProjectDefinition.st,v 1.164 2007-09-11 11:55:59 fm Exp $'
  3814 ! !
  3863 ! !
  3815 
  3864 
  3816 ProjectDefinition initialize!
  3865 ProjectDefinition initialize!