ajack       2004/01/23 15:32:27

  Modified:    python/gump/model module.py ant.py project.py depend.py
               template/forrest/src/documentation/content/xdocs site.xml
               python/gump/test/resources/full1 module5.xml module4.xml
                        svn_module1.xml module2.xml maven1.xml package1.xml
                        module3.xml
               python/gump/output xref.py
               python/gump/syndication syndicator.py
               python/gump/utils note.py
               python/gump/document forrest.py
  Log:
  1) Fixed 'full dependee' count (for proj/module) -- better view of "affects".
  2) Made not push to RSS/Atom if goes from prereq failed to success.
  3) Cleaned the test data some more.
  4) More xref (by description, by output)
  5) Dependencies/Dependees not annotated (prior to next step = optimize).
  
  Revision  Changes    Path
  1.29      +4 -4      jakarta-gump/python/gump/model/module.py
  
  Index: module.py
  ===================================================================
  RCS file: /home/cvs/jakarta-gump/python/gump/model/module.py,v
  retrieving revision 1.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- module.py 20 Jan 2004 21:55:23 -0000      1.28
  +++ module.py 23 Jan 2004 23:32:26 -0000      1.29
  @@ -393,7 +393,7 @@
               if not project in self.totalDependees:
                   self.totalDependees.append(project)
                   for dependee in project.getFullDependees():
  -                    dependeeProject=dependee.getProject()
  +                    dependeeProject=dependee.getOwnerProject()
                       if not dependeeProject in self.totalDependees:
                           self.totalDependees.append(dependeeProject)   
                           
  
  
  
  1.13      +2 -1      jakarta-gump/python/gump/model/ant.py
  
  Index: ant.py
  ===================================================================
  RCS file: /home/cvs/jakarta-gump/python/gump/model/ant.py,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- ant.py    9 Jan 2004 19:57:18 -0000       1.12
  +++ ant.py    23 Jan 2004 23:32:26 -0000      1.13
  @@ -134,7 +134,8 @@
                               INHERIT_ALL,     \
                               runtime,
                               0,       \
  -                            ids)
  +                            ids,
  +                            'Property Dependency for ' + property.name)
                               
               # :TODOs:
               # if not property.classpath: depend['noclasspath']=Single({})
  
  
  
  1.29      +6 -6      jakarta-gump/python/gump/model/project.py
  
  Index: project.py
  ===================================================================
  RCS file: /home/cvs/jakarta-gump/python/gump/model/project.py,v
  retrieving revision 1.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- project.py        16 Jan 2004 23:12:10 -0000      1.28
  +++ project.py        23 Jan 2004 23:32:26 -0000      1.29
  @@ -325,7 +325,7 @@
               if not dependee in self.fullDependees: 
                   # We have a new dependee
                   self.fullDependees.append(dependee)
  -                for subdependee in dependee.getProject().getFullDependees():
  +                for subdependee in dependee.getOwnerProject().getFullDependees():
                       if not subdependee in self.fullDependees:
                           self.fullDependees.append(subdependee)
           self.fullDependees.sort()
  @@ -347,10 +347,10 @@
           affected=0
           
           # Get all dependenees (optional/otherwise)
  -        dependees=self.getFullDependees()
  +        fullDependees=self.getFullDependees()
           
           # Look through all dependees
  -        for dependee in dependees:
  +        for dependee in fullDependees:
               project=dependee.getOwnerProject()
               
               cause=project.getCause()
  
  
  
  1.7       +9 -2      jakarta-gump/python/gump/model/depend.py
  
  Index: depend.py
  ===================================================================
  RCS file: /home/cvs/jakarta-gump/python/gump/model/depend.py,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- depend.py 9 Jan 2004 19:57:18 -0000       1.6
  +++ depend.py 23 Jan 2004 23:32:26 -0000      1.7
  @@ -105,6 +105,10 @@
       elif 'none' == xmldepend.inherit:
           inherit=INHERIT_NONE
           
  +    ids      =       xmldepend.ids
  +    
  +    annotation = 'Expressed Dependency'
  +    
       #
       # Construct the dependency
       #        
  @@ -112,12 +116,14 @@
                                   dependProject,       \
                                   inherit,             \
                                   runtime,             \
  -                                optional)
  +                                optional,            \
  +                                ids,                 \
  +                                annotation)
                   
   
   class ProjectDependency(Annotatable):
       """ A dependency from one project to another """
  -    def __init__(self,owner,project,inherit,runtime=0,optional=0,ids=None):
  +    def 
__init__(self,owner,project,inherit,runtime=0,optional=0,ids=None,annotation=None):
           
           Annotatable.__init__(self)
           
  @@ -127,6 +133,7 @@
           self.runtime=runtime
           self.optional=optional
           self.ids=ids
  +        if annotation:       self.addInfo(annotation)
       
       # :TODO: if same ids, but different order/spacing, it ought match..
       def __eq__(self,other):
  
  
  
  1.16      +3 -0      
jakarta-gump/template/forrest/src/documentation/content/xdocs/site.xml
  
  Index: site.xml
  ===================================================================
  RCS file: 
/home/cvs/jakarta-gump/template/forrest/src/documentation/content/xdocs/site.xml,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- site.xml  21 Jan 2004 18:52:30 -0000      1.15
  +++ site.xml  23 Jan 2004 23:32:26 -0000      1.16
  @@ -56,10 +56,13 @@
       <index label="Index" href="gump_xref/index.html"/>
       <index label="by Repository" href="gump_xref/repo_module.html"/>
       <index label="by Package" href="gump_xref/package_module.html"/>
  +    <index label="by Description" href="gump_xref/description_module.html"/>
     </stats>
   
     <stats label="Projects" tab="xref">
       <index label="by Package" href="gump_xref/package_project.html"/>
  +    <index label="by Description" href="gump_xref/description_project.html"/>
  +    <index label="by Output" href="gump_xref/output_project.html"/>
     </stats>
   
     <external-refs>
  
  
  
  1.4       +1 -1      jakarta-gump/python/gump/test/resources/full1/module5.xml
  
  Index: module5.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-gump/python/gump/test/resources/full1/module5.xml,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- module5.xml       21 Jan 2004 18:52:30 -0000      1.3
  +++ module5.xml       23 Jan 2004 23:32:26 -0000      1.4
  @@ -8,7 +8,7 @@
     <cvs repository="repository1"/>
   
     <project name="project5">
  -    <package>org.apache.project5t</package>
  +    <package>org.apache.project5</package>
   
       <depend project="alias1"/>
   
  
  
  
  1.5       +0 -1      jakarta-gump/python/gump/test/resources/full1/module4.xml
  
  Index: module4.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-gump/python/gump/test/resources/full1/module4.xml,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- module4.xml       21 Jan 2004 18:52:30 -0000      1.4
  +++ module4.xml       23 Jan 2004 23:32:26 -0000      1.5
  @@ -16,7 +16,6 @@
   
       <depend project="project1"/>
       <depend project="project3"/>
  -    <option project="random"/>
   
       <home nested="dist"/>
   
  
  
  
  1.4       +0 -2      jakarta-gump/python/gump/test/resources/full1/svn_module1.xml
  
  Index: svn_module1.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-gump/python/gump/test/resources/full1/svn_module1.xml,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- svn_module1.xml   21 Jan 2004 18:52:30 -0000      1.3
  +++ svn_module1.xml   23 Jan 2004 23:32:26 -0000      1.4
  @@ -10,8 +10,6 @@
     <project name="svn_project1">
       <package>org.apache.tools.svn_project1</package>
       <ant target="gump"/>
  -    <depend project="random"/>
  -    <option project="random"/>
       <home nested="dist"/>
       <jar name="lib/outputSVN.jar" id="outputSVN"/>
       <license name="LICENSE"/>
  
  
  
  1.9       +0 -1      jakarta-gump/python/gump/test/resources/full1/module2.xml
  
  Index: module2.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-gump/python/gump/test/resources/full1/module2.xml,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- module2.xml       21 Jan 2004 18:52:30 -0000      1.8
  +++ module2.xml       23 Jan 2004 23:32:26 -0000      1.9
  @@ -17,7 +17,6 @@
       </ant>
   
       <depend project="project1" inherit="runtime"/>
  -    <option project="random"/>
   
       <home nested="dist"/>
       <mkdir dir="mkdir2"/>
  
  
  
  1.5       +2 -3      jakarta-gump/python/gump/test/resources/full1/maven1.xml
  
  Index: maven1.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-gump/python/gump/test/resources/full1/maven1.xml,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- maven1.xml        21 Jan 2004 18:52:30 -0000      1.4
  +++ maven1.xml        23 Jan 2004 23:32:26 -0000      1.5
  @@ -12,12 +12,11 @@
   
       <maven target="gump"/>
   
  -    <depend project="project4"/>
  -    <option project="random"/>
  +    <depend project="alias1"/>
   
       <home nested="dist"/>
   
  -    <jar name="lib/output1.jar" id="output1"/>
  +    <jar name="lib/maven1.jar" id="maven1"/>
   
       <license name="LICENSE"/>
   
  
  
  
  1.4       +0 -5      jakarta-gump/python/gump/test/resources/full1/package1.xml
  
  Index: package1.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-gump/python/gump/test/resources/full1/package1.xml,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- package1.xml      21 Jan 2004 18:52:30 -0000      1.3
  +++ package1.xml      23 Jan 2004 23:32:26 -0000      1.4
  @@ -12,9 +12,6 @@
   
       <ant target="gump"/>
   
  -    <depend project="random"/>
  -    <option project="random"/>
  -
       <home nested="dist"/>
   
       <jar name="lib/output.jar" id="output"/>
  @@ -27,8 +24,6 @@
     
     <project name="honorary1">
       <package>org.apache.tools.honarary1</package>
  -    <depend project="random"/>
  -    <option project="random"/>
       <home nested="dist"/>
     </project>
   </module>
  
  
  
  1.7       +1 -4      jakarta-gump/python/gump/test/resources/full1/module3.xml
  
  Index: module3.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-gump/python/gump/test/resources/full1/module3.xml,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- module3.xml       21 Jan 2004 18:52:30 -0000      1.6
  +++ module3.xml       23 Jan 2004 23:32:26 -0000      1.7
  @@ -10,12 +10,9 @@
     <project name="project3">
       <package>org.apache.project3</package>
   
  -    <ant target="gump">
  -      <property name="ant.home" reference="home" project="project1"/>
  -    </ant>
  +    <ant target="gump"/>
   
       <depend project="project2" runtime="true"/>
  -    <option project="random"/>
   
       <home nested="dist"/>
        
  
  
  
  1.6       +77 -0     jakarta-gump/python/gump/output/xref.py
  
  Index: xref.py
  ===================================================================
  RCS file: /home/cvs/jakarta-gump/python/gump/output/xref.py,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- xref.py   9 Jan 2004 19:57:18 -0000       1.5
  +++ xref.py   23 Jan 2004 23:32:27 -0000      1.6
  @@ -79,12 +79,23 @@
           self.workspace=workspace
       
           self.repositoryToModule={}
  +        
           self.packageToModule={}
           self.packageToProject={}
           
  +        self.descriptionToModule={}
  +        self.descriptionToProject={}
  +        
  +        self.outputToProject={}
  +        
  +        self.descriptorLocationToProject={}
  +        
           # Build Information Maps
           self.mapRepositories()
           self.mapPackages()
  +        self.mapDescriptions()
  +        self.mapOutputs()
  +        self.mapDescriptorLocations()
           
       def mapRepositories(self):
           for module in self.workspace.getModules():
  @@ -117,6 +128,60 @@
                           if not project in self.packageToProject[packageName]:
                               self.packageToProject[packageName].append(project)
       
  +    def mapDescriptions(self):
  +        for module in self.workspace.getModules():
  +            if module.isPackaged(): continue
  +            
  +            moduleDescription=module.getDescription()
  +            if moduleDescription:
  +                if not self.descriptionToModule.has_key(moduleDescription):
  +                    self.descriptionToModule[moduleDescription]=[]
  +            
  +                if not module in self.descriptionToModule[moduleDescription]:
  +                    self.descriptionToModule[moduleDescription].append(module)
  +                    
  +            for project in module.getProjects():
  +                if project.isPackaged(): continue
  +                
  +                projectDescription=project.getDescription()
  +                if projectDescription:
  +                    if not self.descriptionToProject.has_key(projectDescription):
  +                        self.descriptionToProject[projectDescription]=[]
  +                    
  +                    if not project in self.descriptionToProject[projectDescription]:
  +                        
self.descriptionToProject[projectDescription].append(project)
  +    
  +    
  +    def mapOutputs(self):
  +        for module in self.workspace.getModules():
  +            
  +            for project in module.getProjects():
  +                
  +                if project.hasJars():
  +
  +                    for jar in project.getJars():      
  +                        jarName=jar.getName()                 
  +                        if not self.outputToProject.has_key(jarName):
  +                            self.outputToProject[jarName]=[]
  +                    
  +                    if not project in self.outputToProject[jarName]:
  +                        self.outputToProject[jarName].append(project)
  +    
  +    
  +    def mapDescriptorLocations(self):
  +        for module in self.workspace.getModules():
  +            
  +            for project in module.getProjects():
  +                
  +                locn=str(project.xml.href)
  +                    
  +                if locn:          
  +                    if not self.outputToProject.has_key(locn):
  +                        self.outputToProject[locn]=[]
  +                    
  +                    if not project in self.outputToProject[locn]:
  +                        self.outputToProject[locn].append(project)
  +    
       def getRepositoryToModuleMap(self):
           return self.repositoryToModule
                   
  @@ -125,5 +190,17 @@
           
       def getPackageToProjectMap(self):
           return self.packageToProject
  +                
  +    def getDescriptionToModuleMap(self):
  +        return self.descriptionToModule
  +        
  +    def getDescriptionToProjectMap(self):
  +        return self.descriptionToProject
  +        
  +    def getOutputToProjectMap(self):
  +        return self.outputToProject
  +        
  +    def getDescriptorLocationToProjectMap(self):
  +        return self.descriptorLocationToProject
           
           
  
  
  
  1.17      +43 -18    jakarta-gump/python/gump/syndication/syndicator.py
  
  Index: syndicator.py
  ===================================================================
  RCS file: /home/cvs/jakarta-gump/python/gump/syndication/syndicator.py,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- syndicator.py     16 Jan 2004 17:37:16 -0000      1.16
  +++ syndicator.py     23 Jan 2004 23:32:27 -0000      1.17
  @@ -182,24 +182,30 @@
                           + note.getLevelName() + '</td><td>' \
                           + note.getText() + '</td></tr>\n')                
               content += '<table></p>'
  -            
  -        if object.worklist:
  -            content += '<p><table>'    
  -            for work in object.worklist:
  -                url=resolver.getAbsoluteUrl(work)
  -                state=stateName(work.state)                 
  -                content += ('<tr><td><a href=\'' +   \
  -                    url + '\'>' + work.getName() +   \
  -                    '</a></td><td>' + state +                \
  -                    '</td></tr>\n')                   
  -            content += '</table></p>'
  -
  -# Overkill           
  -#        content += ('<br><hr>\n<img align=\'left\' alt=\'Brought to you by Jakarta 
Gump\' src=\'%s\'/>') \
  -#                        %   resolver.getImageUrl('apache.png')
  +         
  +        #
  +        # They can come visit for this...
  +        #
  +           
  +        #if object.worklist:
  +        #    content += '<p><table>'    
  +        #    for work in object.worklist:
  +        #        url=resolver.getAbsoluteUrl(work)
  +        #        state=stateName(work.state)                 
  +        #        content += ('<tr><td><a href=\'' +  \
  +        #            url + '\'>' + work.getName() +  \
  +        #            '</a></td><td>' + state +               \
  +        #            '</td></tr>\n')                   
  +        #    content += '</table></p>'
           
           return content
   
  +    #
  +    # Only report once per state change
  +    # Don't report on prereq failed, or if just came from that
  +    # Don't report on packages
  +    # Don't report on bogus states (testing)
  +    #
       def moduleOughtBeWidelySyndicated(self, module):
           
           stats=module.getStats()
  @@ -209,8 +215,18 @@
               and not stats.currentState == STATE_UNSET \
               and not stats.currentState == STATE_NONE \
               and not stats.currentState == STATE_COMPLETE  \
  +            and not ( \
  +                stats.currentState == STATE_SUCCESS and      \
  +                stats.previousState == STATE_PREREQ_FAILED ) \
               and not module.isPackaged()       
                 
  +              
  +    #
  +    # Only report once per state change
  +    # Don't report on prereq failed, or if just came from that
  +    # Don't report on packages
  +    # Don't report on bogus states (testing)
  +    #
       def projectOughtBeWidelySyndicated(self, project):
           
           stats=project.getStats()
  @@ -220,10 +236,16 @@
               and not stats.currentState == STATE_UNSET \
               and not stats.currentState == STATE_NONE \
               and not stats.currentState == STATE_COMPLETE     \
  +            and not ( \
  +                stats.currentState == STATE_SUCCESS and      \
  +                stats.previousState == STATE_PREREQ_FAILED ) \
               and not project.isPackaged()    
                 
   def syndicate(run):
   
  +    #
  +    # Produce an RSS Feed
  +    #
       try:    
           from gump.syndication.rss import RSSSyndicator
           simple=RSSSyndicator()
  @@ -231,6 +253,9 @@
       except:
           log.error('Failed to generate RSS Feeds', exc_info=1)    
           
  +    #
  +    # Produce an Atom Feed
  +    #
       try:
           from gump.syndication.atom import AtomSyndicator
           atom=AtomSyndicator()
  
  
  
  1.6       +11 -1     jakarta-gump/python/gump/utils/note.py
  
  Index: note.py
  ===================================================================
  RCS file: /home/cvs/jakarta-gump/python/gump/utils/note.py,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- note.py   9 Jan 2004 19:57:19 -0000       1.5
  +++ note.py   23 Jan 2004 23:32:27 -0000      1.6
  @@ -145,7 +145,17 @@
               output.write(getIndent(indent)+'Annotations:\n')
          
               for note in self.annotations:
  -                note.dump(indent+1,output)
  +                note.dump(indent+1,output)    
  +                    
  +    
  +    def getAnnotationsAsString(self,eol="\n"):
  +        notes=''
  +        
  +        if self.annotations:
  +            for note in self.annotations:
  +                notes += str(note) + eol    
  +    
  +        return notes
                   
   def transferAnnotations(source,destination):
       for note in source.annotations:
  
  
  
  1.57      +167 -9    jakarta-gump/python/gump/document/forrest.py
  
  Index: forrest.py
  ===================================================================
  RCS file: /home/cvs/jakarta-gump/python/gump/document/forrest.py,v
  retrieving revision 1.56
  retrieving revision 1.57
  diff -u -r1.56 -r1.57
  --- forrest.py        21 Jan 2004 21:26:02 -0000      1.56
  +++ forrest.py        23 Jan 2004 23:32:27 -0000      1.57
  @@ -1067,7 +1067,7 @@
       def 
documentDependenciesList(self,xdocNode,title,dependencies,dependees,referencingObject):
         if dependencies:
               projectSection=xdocNode.createSection(title)
  -            
projectTable=projectSection.createTable(['Name','Type','Inheritence','Ids','State'])
  +            
projectTable=projectSection.createTable(['Name','Type','Inheritence','Ids','State','Notes'])
               for depend in dependencies:
                   
                   # Project/Owner
  @@ -1096,8 +1096,14 @@
                   ids = depend.getIds() or 'All'
                   projectRow.createData(ids)
                   
  -                # State description
  -                
self.insertStateDescription(project,referencingObject,projectRow.createData())
  +                # State Icon
  +                
self.insertStateIcon(project,referencingObject,projectRow.createData())
  +                
  +                # Dependency Annotations
  +                noteData=projectRow.createData()
  +                for note in depend.getAnnotations():
  +                    noteData.createText(str(note))
  +                    noteData.createBreak()
                   
       def documentAnnotations(self,xdocNode,annotatable):
           
  @@ -1460,8 +1466,8 @@
           
           document.createParagraph("""
           Statistics from Gump show the depth and health of inter-relationships. 
  -        See side menu for choices.
           """)
  +            
           
           overviewSection=document.createSection('Overview')
           overviewList=overviewSection.createList()
  @@ -1469,6 +1475,7 @@
           overviewList.createEntry('Projects: ', stats.wguru.projectsInWorkspace)
           overviewList.createEntry('Avg Projects Per Module: ', 
stats.wguru.averageProjectsPerModule)                      
             
  +        self.documentSummary(overviewSection,workspace.getProjectSummary())    
           
           mstatsSection=document.createSection('Module Statistics')
           mstatsTable=mstatsSection.createTable(['Page','Description'])
  @@ -1539,7 +1546,7 @@
           # Projects By Sequence
           pBySeq=self.documentProjectsBySequenceInState(stats, run, workspace, 
gumpSet)           
           pstatsRow=pstatsTable.createRow()
  -        pstatsRow.createData().createLink(pBySeq, 'Projects By duration in state')
  +        pstatsRow.createData().createLink(pBySeq, 'Projects By Duration in state')
           pstatsRow.createData('Duration in current state.')
           
           document.serialize()  
  @@ -1796,18 +1803,43 @@
           mxrefRow.createData().createLink(mByP, 'Modules By Package')
           mxrefRow.createData('The package(s) contained in the module.')
           
  +        # Modules By Description
  +        mByD=self.documentModulesByDescription(xref, run, workspace, gumpSet)       
         
  +        mxrefRow=mxrefTable.createRow()
  +        mxrefRow.createData().createLink(mByD, 'Modules By Description')
  +        mxrefRow.createData('The descriptions for the module.')
  +        
           ##################################################################3
           # Projects ...........
           
           pxrefSection=document.createSection('Project Cross Reference')
           pxrefTable=pxrefSection.createTable(['Page','Description'])
                           
  -        # Modules By Package
  +        # Projects By Package
           pByP=self.documentProjectsByPackage(xref, run, workspace, gumpSet)          
      
           pxrefRow=pxrefTable.createRow()
           pxrefRow.createData().createLink(pByP, 'Projects By Package')
           pxrefRow.createData('The package(s) contained in the project.')
           
  +        # Projects By Description
  +        pByD=self.documentProjectsByDescription(xref, run, workspace, gumpSet)      
          
  +        pxrefRow=pxrefTable.createRow()
  +        pxrefRow.createData().createLink(pByD, 'Projects By Description')
  +        pxrefRow.createData('The descriptions for the project.')
  +                
  +        # Projects By Outputs
  +        pByO=self.documentProjectsByOutput(xref, run, workspace, gumpSet)           
     
  +        pxrefRow=pxrefTable.createRow()
  +        pxrefRow.createData().createLink(pByO, 'Projects By Output')
  +        pxrefRow.createData('The outputs for the project, e.g. jars.')
  +        
  +                
  +        # Projects By Descriptor Location
  +        #pByDL=self.documentProjectsByDescriptorLocation(xref, run, workspace, 
gumpSet)                
  +        #pxrefRow=pxrefTable.createRow()
  +        #pxrefRow.createData().createLink(pByDL, 'Projects By Descriptor Location')
  +        #pxrefRow.createData('The descriptor for the project.')
  +        
           document.serialize()
           
       def documentModulesByRepository(self,xref,run,workspace,gumpSet):
  @@ -1868,6 +1900,38 @@
           
           return fileName + '.html'
           
  +        
  +    def documentModulesByDescription(self,xref,run,workspace,gumpSet):
  +        fileName='description_module'
  +        file=self.resolver.getFile(xref,fileName)            
  +        document=XDocDocument('Modules By Description',      file)
  +        
  +        descriptionTable=document.createTable(['Modules By Description'])
  +        
  +        descriptionMap=xref.getDescriptionToModuleMap()
  +        for description in createOrderedList(descriptionMap.keys()):
  +            
  +            moduleList=createOrderedList(descriptionMap.get(description)) 
  +            
  +            hasSome=0
  +            for module in moduleList:        
  +                if not gumpSet.inModules(module): continue
  +                hasSome=1
  +                
  +            if hasSome:
  +                descriptionRow=descriptionTable.createRow()
  +                descriptionRow.createData(description)
  +            
  +                moduleData=descriptionRow.createData()
  +                for module in moduleList:        
  +                    if not gumpSet.inModules(module): continue                
  +                    self.insertLink(module, xref, moduleData)
  +                    moduleData.createText(' ')
  +          
  +        document.serialize()
  +        
  +        return fileName + '.html'
  +        
       def documentProjectsByPackage(self,xref,run,workspace,gumpSet):
           fileName='package_project'
           file=self.resolver.getFile(xref,fileName)            
  @@ -1890,6 +1954,100 @@
                   packageRow.createData(package)
               
                   projectData=packageRow.createData()
  +                for project in projectList:        
  +                    if not gumpSet.inSequence(project): continue                
  +                    self.insertLink(project, xref, projectData)
  +                    projectData.createText(' ')
  +          
  +        document.serialize()
  +        
  +        return fileName + '.html'
  +
  +    def documentProjectsByDescription(self,xref,run,workspace,gumpSet):
  +        fileName='description_project'
  +        file=self.resolver.getFile(xref,fileName)            
  +        document=XDocDocument('Projects By Description',     file)
  +        
  +        descriptionTable=document.createTable(['Projects By Description'])
  +        
  +        descriptionMap=xref.getDescriptionToProjectMap()
  +        for description in createOrderedList(descriptionMap.keys()):
  +                            
  +            projectList=createOrderedList(descriptionMap.get(description)) 
  +            
  +            hasSome=0
  +            for project in projectList:        
  +                if not gumpSet.inSequence(project): continue
  +                hasSome=1
  +                
  +            if hasSome:
  +                descriptionRow=descriptionTable.createRow()
  +                descriptionRow.createData(description)
  +            
  +                projectData=descriptionRow.createData()
  +                for project in projectList:        
  +                    if not gumpSet.inSequence(project): continue                
  +                    self.insertLink(project, xref, projectData)
  +                    projectData.createText(' ')
  +          
  +        document.serialize()
  +        
  +        return fileName + '.html'
  + 
  +        
  +    def documentProjectsByOutput(self,xref,run,workspace,gumpSet):
  +        fileName='output_project'
  +        file=self.resolver.getFile(xref,fileName)            
  +        document=XDocDocument('Projects By Outputs (e.g. Jars)',     file)
  +        
  +        outputTable=document.createTable(['Projects By Outputs (e.g. Jars)'])
  +        
  +        outputMap=xref.getOutputToProjectMap()
  +        for output in createOrderedList(outputMap.keys()):
  +                            
  +            projectList=createOrderedList(outputMap.get(output)) 
  +            
  +            hasSome=0
  +            for project in projectList:        
  +                if not gumpSet.inSequence(project): continue
  +                hasSome=1
  +                
  +            if hasSome:
  +                outputRow=outputTable.createRow()
  +                outputRow.createData(output)
  +            
  +                projectData=outputRow.createData()
  +                for project in projectList:        
  +                    if not gumpSet.inSequence(project): continue                
  +                    self.insertLink(project, xref, projectData)
  +                    projectData.createText(' ')
  +          
  +        document.serialize()
  +        
  +        return fileName + '.html'
  +        
  +    def documentProjectsByDescriptorLocation(self,xref,run,workspace,gumpSet):
  +        fileName='descriptor_project'
  +        file=self.resolver.getFile(xref,fileName)            
  +        document=XDocDocument('Projects By Descriptor Location',     file)
  +        
  +        descLocnTable=document.createTable(['Projects By Descriptor Location'])
  +        
  +        descLocnMap=xref.getDescriptorLocationToProjectMap()
  +        for descLocn in createOrderedList(descLocnMap.keys()):
  +                            
  +            projectList=createOrderedList(descLocnMap.get(descLocn)) 
  +            
  +            hasSome=0
  +            for project in projectList:        
  +                if not gumpSet.inSequence(project): continue
  +                hasSome=1
  +                
  +            if hasSome:
  +                descLocnRow=descLocnTable.createRow()
  +                descLocnRow.createData(descLocn)
  +            
  +                projectData=descLocnRow.createData()
                   for project in projectList:        
                       if not gumpSet.inSequence(project): continue                
                       self.insertLink(project, xref, projectData)
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to