]> source.dussan.org Git - archiva.git/blob
af3ba7ed010db8f3a415e6b070dc50a1200486ea
[archiva.git] /
1 package org.apache.maven.archiva.web.util;
2
3 /*
4  * Licensed to the Apache Software Foundation (ASF) under one
5  * or more contributor license agreements.  See the NOTICE file
6  * distributed with this work for additional information
7  * regarding copyright ownership.  The ASF licenses this file
8  * to you under the Apache License, Version 2.0 (the
9  * "License"); you may not use this file except in compliance
10  * with the License.  You may obtain a copy of the License at
11  *
12  *   http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing,
15  * software distributed under the License is distributed on an
16  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17  * KIND, either express or implied.  See the License for the
18  * specific language governing permissions and limitations
19  * under the License.
20  */
21
22 import org.apache.archiva.metadata.model.Dependency;
23 import org.apache.archiva.metadata.model.License;
24 import org.apache.archiva.metadata.model.MailingList;
25 import org.apache.archiva.metadata.model.ProjectVersionMetadata;
26 import org.apache.commons.lang.StringUtils;
27
28 import java.util.List;
29
30 /**
31  * ProjectMetadataDisplayUtil
32  *
33  */
34
35 public class ProjectMetadataDisplayUtil
36 {
37     private StringBuilder metadataEntries;
38     
39     public String formatProjectMetadata( ProjectVersionMetadata projectMetadata )
40     {
41         metadataEntries = new StringBuilder();
42         
43         startList();
44         
45         addListItem( "project.metadata.id=", projectMetadata.getId() );
46         addListItem( "project.url=", projectMetadata.getUrl() );
47         addListItem( "project.name=", projectMetadata.getName() );
48         addListItem( "project.description=", projectMetadata.getDescription() );
49         
50         startListItem( "organization" );
51         if ( projectMetadata.getOrganization() != null )
52         {
53             startList();
54             addListItem( "organization.name=", projectMetadata.getOrganization().getName() );
55             addListItem( "organization.url=", projectMetadata.getOrganization().getUrl() );
56             endList();
57         }
58         endListItem();
59          
60         startListItem( "issueManagement" );
61         if ( projectMetadata.getIssueManagement() != null )
62         {
63             startList();
64             addListItem( "issueManagement.system=", projectMetadata.getIssueManagement().getSystem() );
65             addListItem( "issueManagement.url=", projectMetadata.getIssueManagement().getUrl() );
66             endList();
67         }
68         endListItem();
69         
70         startListItem( "scm" );
71         if ( projectMetadata.getScm() != null )
72         {
73             startList();
74             addListItem( "scm.url=", projectMetadata.getScm().getUrl() );
75             addListItem( "scm.connection=", projectMetadata.getScm().getConnection() );
76             addListItem( "scm.developer.connection=", projectMetadata.getScm().getDeveloperConnection() );
77             endList();
78         }
79         endListItem();
80         
81         startListItem( "ciManagement" );
82         if ( projectMetadata.getCiManagement() != null )
83         {
84             startList();
85             addListItem( "ciManagement.system=", projectMetadata.getCiManagement().getSystem() );
86             addListItem( "ciManagement.url=", projectMetadata.getCiManagement().getUrl() );
87             endList();
88         }
89         endListItem();
90         
91         startListItem( "licenses" );
92         if ( projectMetadata.getLicenses() != null )
93         {
94             List<License> licenses = projectMetadata.getLicenses();
95             int ctr = 0;
96             startList();
97             for ( License license : licenses )
98             {
99                 addListItem( "licenses." + ctr + ".name=", license.getName() );
100                 addListItem( "licenses." + ctr + ".url=", license.getUrl() );
101                 ctr++;
102             }
103             endList();
104         }
105         endListItem();
106          
107         startListItem( "mailingLists" );
108         if ( projectMetadata.getMailingLists() != null )
109         {
110             List<MailingList> lists = projectMetadata.getMailingLists();
111             List<String> otherArchives;
112             int ctr = 0;
113             int archiveCtr = 0;
114             
115             startList();
116             for ( MailingList list : lists )
117             {
118                 addListItem( "mailingLists." + ctr + ".name=", list.getName() );
119                 addListItem( "mailingLists." + ctr + ".archive.url=", list.getMainArchiveUrl() );
120                 addListItem( "mailingLists." + ctr + ".post=", list.getPostAddress() );
121                 addListItem( "mailingLists." + ctr + ".subscribe=", list.getSubscribeAddress() );
122                 addListItem( "mailingLists." + ctr + ".unsubscribe=", list.getUnsubscribeAddress() );
123                 startListItem( "mailingLists." + ctr + ".otherArchives" );
124                 
125                 if ( list.getOtherArchives() != null && list.getOtherArchives().size() > 0 )
126                 {
127                     archiveCtr = 0;
128                     otherArchives = list.getOtherArchives();
129                     
130                     startList();
131                     for ( String archive : otherArchives )
132                     {
133                         addListItem( "mailingLists." + ctr + ".otherArchives." + archiveCtr + "=", archive );
134                         metadataEntries.append( archive );
135                         archiveCtr++;
136                     }
137                     endList();
138                 }
139                 endListItem();
140                 ctr++;
141             }
142             endList();
143         }
144         endListItem();
145         
146         startListItem( "dependencies" );
147         if ( projectMetadata.getDependencies() != null )
148         {
149             List<Dependency> dependencies = projectMetadata.getDependencies();
150             int ctr = 0;
151             
152             startList();
153             for ( Dependency dependency : dependencies )
154             {
155                 addListItem( "dependency." + ctr + ".group.id=", dependency.getGroupId() );
156                 addListItem( "dependency." + ctr + ".artifact.id=", dependency.getArtifactId() );
157                 addListItem( "dependency." + ctr + ".version=", dependency.getVersion() );
158                 addListItem( "dependency." + ctr + ".classifier=", dependency.getClassifier() );
159                 addListItem( "dependency." + ctr + ".type=", dependency.getType() );
160                 addListItem( "dependency." + ctr + ".scope=", dependency.getScope() );
161                 addListItem( "dependency." + ctr + ".system.path=", dependency.getSystemPath() );
162                 ctr++;
163             }
164             endList();
165         }
166         endListItem();
167         
168         endList();
169         
170         return metadataEntries.toString();
171     }
172     
173     private void startList()
174     {
175         metadataEntries.append( "\n<ul>" );
176     }
177      
178     private void endList()
179     {
180         metadataEntries.append( "\n</ul>" );
181     }
182     
183     private void addListItem( String label, String value )
184     {
185         String newValue = StringUtils.isEmpty( value ) ? "" : value;
186         metadataEntries.append( "\n<li>" ).append( label ).append( newValue ).append( "</li>" );
187     }
188     
189     private void startListItem( String value )
190     {
191         metadataEntries.append( "\n<li>" ).append( value );
192     }
193     
194     private void endListItem()
195     {
196         metadataEntries.append( "\n</li>" );
197     }
198 }
199