]> source.dussan.org Git - archiva.git/blob
4a01647a7ca69979a36b8f2096f08321a773a401
[archiva.git] /
1 package org.apache.archiva.metadata.repository.cassandra.model;
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.CiManagement;
23 import org.apache.archiva.metadata.model.Dependency;
24 import org.apache.archiva.metadata.model.IssueManagement;
25 import org.apache.archiva.metadata.model.License;
26 import org.apache.archiva.metadata.model.MailingList;
27 import org.apache.archiva.metadata.model.Organization;
28 import org.apache.archiva.metadata.model.Scm;
29 import org.apache.archiva.metadata.repository.cassandra.CassandraUtils;
30
31 import javax.persistence.Column;
32 import java.util.ArrayList;
33 import java.util.List;
34
35 /**
36  * @author Olivier Lamy
37  * @since 2.0.0
38  */
39 public class ProjectVersionMetadataModel
40 {
41
42
43     @Column(name = "namespaceId") // repositoryName
44     private Namespace namespace;
45
46     /**
47      * id is the id
48      */
49     @Column(name = "id")
50     private String id;
51
52     @Column(name = "projectId")
53     private String projectId;
54
55     @Column(name = "url")
56     private String url;
57
58     @Column(name = "name")
59     private String name;
60
61     @Column(name = "description")
62     private String description;
63
64     @Column(name = "organization")
65     private Organization organization;
66
67     @Column(name = "issueManagement")
68     private IssueManagement issueManagement;
69
70     @Column(name = "scm")
71     private Scm scm;
72
73     @Column(name = "ciManagement")
74     private CiManagement ciManagement;
75
76     // FIXME store those values in a separate table
77     @Column(name = "licenses")
78     private List<License> licenses = new ArrayList<License>();
79
80     @Column(name = "mailingLists")
81     private List<MailingList> mailingLists = new ArrayList<MailingList>();
82
83     @Column(name = "dependencies")
84     private List<Dependency> dependencies = new ArrayList<Dependency>();
85
86     @Column(name = "incomplete")
87     private boolean incomplete;
88
89     public String getProjectId()
90     {
91         return projectId;
92     }
93
94     public void setProjectId( String projectId )
95     {
96         this.projectId = projectId;
97     }
98
99     // FIXME must be renamed getVersion !!!
100     public String getId()
101     {
102         return id;
103     }
104
105     public void setId( String id )
106     {
107         this.id = id;
108     }
109
110     public String getUrl()
111     {
112         return url;
113     }
114
115     public void setUrl( String url )
116     {
117         this.url = url;
118     }
119
120     public String getName()
121     {
122         return name;
123     }
124
125     public void setName( String name )
126     {
127         this.name = name;
128     }
129
130     public String getDescription()
131     {
132         return description;
133     }
134
135     public void setDescription( String description )
136     {
137         this.description = description;
138     }
139
140     public Organization getOrganization()
141     {
142         return organization;
143     }
144
145     public void setOrganization( Organization organization )
146     {
147         this.organization = organization;
148     }
149
150     public IssueManagement getIssueManagement()
151     {
152         return issueManagement;
153     }
154
155     public void setIssueManagement( IssueManagement issueManagement )
156     {
157         this.issueManagement = issueManagement;
158     }
159
160     public Scm getScm()
161     {
162         return scm;
163     }
164
165     public void setScm( Scm scm )
166     {
167         this.scm = scm;
168     }
169
170     public CiManagement getCiManagement()
171     {
172         return ciManagement;
173     }
174
175     public void setCiManagement( CiManagement ciManagement )
176     {
177         this.ciManagement = ciManagement;
178     }
179
180     public boolean isIncomplete()
181     {
182         return incomplete;
183     }
184
185     public void setIncomplete( boolean incomplete )
186     {
187         this.incomplete = incomplete;
188     }
189
190     public Namespace getNamespace()
191     {
192         return namespace;
193     }
194
195     public void setNamespace( Namespace namespace )
196     {
197         this.namespace = namespace;
198     }
199
200     public List<License> getLicenses()
201     {
202         return licenses;
203     }
204
205     public void setLicenses( List<License> licenses )
206     {
207         this.licenses = licenses;
208     }
209
210     public List<MailingList> getMailingLists()
211     {
212         return mailingLists;
213     }
214
215     public void setMailingLists( List<MailingList> mailingLists )
216     {
217         this.mailingLists = mailingLists;
218     }
219
220     public List<Dependency> getDependencies()
221     {
222         return dependencies;
223     }
224
225     public void setDependencies( List<Dependency> dependencies )
226     {
227         this.dependencies = dependencies;
228     }
229
230
231     @Override
232     public String toString()
233     {
234         final StringBuilder sb = new StringBuilder( "ProjectVersionMetadataModel{" );
235         sb.append( ", namespace=" ).append( namespace );
236         sb.append( ", id='" ).append( id ).append( '\'' );
237         sb.append( ", projectId='" ).append( projectId ).append( '\'' );
238         sb.append( ", url='" ).append( url ).append( '\'' );
239         sb.append( ", name='" ).append( name ).append( '\'' );
240         sb.append( ", description='" ).append( description ).append( '\'' );
241         sb.append( ", organization=" ).append( organization );
242         sb.append( ", issueManagement=" ).append( issueManagement );
243         sb.append( ", scm=" ).append( scm );
244         sb.append( ", ciManagement=" ).append( ciManagement );
245         sb.append( ", incomplete=" ).append( incomplete );
246         sb.append( '}' );
247         return sb.toString();
248     }
249
250
251     public static class KeyBuilder
252     {
253
254         private String namespace;
255
256         private String repositoryName;
257
258         private String projectId;
259
260         private String projectVersion;
261
262         private String id;
263
264         public KeyBuilder()
265         {
266             // no op
267         }
268
269         public KeyBuilder withNamespace( Namespace namespace )
270         {
271             this.namespace = namespace.getName();
272             this.repositoryName = namespace.getRepository().getName();
273             return this;
274         }
275
276         public KeyBuilder withNamespace( String namespace )
277         {
278             this.namespace = namespace;
279             return this;
280         }
281
282         public KeyBuilder withRepository( String repositoryId )
283         {
284             this.repositoryName = repositoryId;
285             return this;
286         }
287
288         public KeyBuilder withProjectId( String projectId )
289         {
290             this.projectId = projectId;
291             return this;
292         }
293
294         public KeyBuilder withProjectVersion( String projectVersion )
295         {
296             this.projectVersion = projectVersion;
297             return this;
298         }
299
300         public KeyBuilder withId( String id )
301         {
302             this.id = id;
303             return this;
304         }
305
306         public String build()
307         {
308             // FIXME add some controls
309             return CassandraUtils.generateKey( this.repositoryName, this.namespace, this.projectId, this.projectVersion,
310                                                this.id );
311         }
312     }
313 }