]> source.dussan.org Git - archiva.git/blob
7eac34c1461e752cf46faa73329abb0d5394684e
[archiva.git] /
1 package org.apache.archiva.indexer.search;
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 java.util.ArrayList;
23 import java.util.List;
24
25 /**
26  * SearchResultHit
27  *
28  * @version $Id: SearchResultHit.java 740552 2009-02-04 01:09:17Z oching $
29  */
30 public class SearchResultHit
31 {
32     // The (optional) context for this result.
33     private String context;
34
35     // Basic hit, direct to non-artifact resource.
36     private String url;
37
38     // Advanced hit, reference to groupId.
39     private String groupId;
40
41     //  Advanced hit, reference to artifactId.
42     private String artifactId;
43
44     private String repositoryId = "";
45
46     private List<String> versions = new ArrayList<String>();
47
48     private String packaging;
49
50     /**
51      * Plugin goal prefix (only if packaging is "maven-plugin")
52      */
53     private String prefix;
54
55     /**
56      * Plugin goals (only if packaging is "maven-plugin")
57      */
58     private List<String> goals;
59
60     /**
61      * contains osgi metadata Bundle-Version if available
62      *
63      * @since 1.4-M1
64      */
65     private String bundleVersion;
66
67     /**
68      * contains osgi metadata Bundle-SymbolicName if available
69      *
70      * @since 1.4-M1
71      */
72     private String bundleSymbolicName;
73
74     /**
75      * contains osgi metadata Export-Package if available
76      *
77      * @since 1.4-M1
78      */
79     private String bundleExportPackage;
80
81     /**
82      * contains osgi metadata Export-Service if available
83      *
84      * @since 1.4-M1
85      */
86     private String bundleExportService;
87
88     /**
89      * contains osgi metadata Bundle-Description if available
90      *
91      * @since 1.4-M1
92      */
93     private String bundleDescription;
94
95     /**
96      * contains osgi metadata Bundle-Name if available
97      *
98      * @since 1.4-M1
99      */
100     private String bundleName;
101
102     /**
103      * contains osgi metadata Bundle-License if available
104      *
105      * @since 1.4-M1
106      */
107     private String bundleLicense;
108
109     /**
110      * contains osgi metadata Bundle-DocURL if available
111      *
112      * @since 1.4-M1
113      */
114     private String bundleDocUrl;
115
116     /**
117      * contains osgi metadata Import-Package if available
118      *
119      * @since 1.4-M1
120      */
121     private String bundleImportPackage;
122
123     /**
124      * contains osgi metadata Require-Bundle if available
125      *
126      * @since 1.4-M1
127      */
128     private String bundleRequireBundle;
129
130     private String classifier;
131
132     /**
133      * file extension of the search result
134      * @since 1.4-M2
135      */
136     private String fileExtension;
137
138     public String getContext()
139     {
140         return context;
141     }
142
143     public void setContext( String context )
144     {
145         this.context = context;
146     }
147
148     public String getUrl()
149     {
150         return url;
151     }
152
153     public void setUrl( String url )
154     {
155         this.url = url;
156     }
157
158     public String getUrlFilename()
159     {
160         return this.url.substring( this.url.lastIndexOf( '/' ) );
161     }
162
163     public String getArtifactId()
164     {
165         return artifactId;
166     }
167
168     public void setArtifactId( String artifactId )
169     {
170         this.artifactId = artifactId;
171     }
172
173     public String getGroupId()
174     {
175         return groupId;
176     }
177
178     public void setGroupId( String groupId )
179     {
180         this.groupId = groupId;
181     }
182
183     public List<String> getVersions()
184     {
185         return versions;
186     }
187
188     public void setVersions( List<String> versions )
189     {
190         this.versions = versions;
191     }
192
193     public String getRepositoryId()
194     {
195         return repositoryId;
196     }
197
198     public void setRepositoryId( String repositoryId )
199     {
200         this.repositoryId = repositoryId;
201     }
202
203     public void addVersion( String version )
204     {
205         versions.add( version );
206     }
207
208     public String getBundleVersion()
209     {
210         return bundleVersion;
211     }
212
213     public void setBundleVersion( String bundleVersion )
214     {
215         this.bundleVersion = bundleVersion;
216     }
217
218     public String getBundleSymbolicName()
219     {
220         return bundleSymbolicName;
221     }
222
223     public void setBundleSymbolicName( String bundleSymbolicName )
224     {
225         this.bundleSymbolicName = bundleSymbolicName;
226     }
227
228     public String getBundleExportPackage()
229     {
230         return bundleExportPackage;
231     }
232
233     public void setBundleExportPackage( String bundleExportPackage )
234     {
235         this.bundleExportPackage = bundleExportPackage;
236     }
237
238     public String getBundleExportService()
239     {
240         return bundleExportService;
241     }
242
243     public void setBundleExportService( String bundleExportService )
244     {
245         this.bundleExportService = bundleExportService;
246     }
247
248     public String getPrefix()
249     {
250         return prefix;
251     }
252
253     public void setPrefix( String prefix )
254     {
255         this.prefix = prefix;
256     }
257
258     public List<String> getGoals()
259     {
260         return goals;
261     }
262
263     public void setGoals( List<String> goals )
264     {
265         this.goals = goals;
266     }
267
268     public String getBundleDescription()
269     {
270         return bundleDescription;
271     }
272
273     public void setBundleDescription( String bundleDescription )
274     {
275         this.bundleDescription = bundleDescription;
276     }
277
278     public String getBundleName()
279     {
280         return bundleName;
281     }
282
283     public void setBundleName( String bundleName )
284     {
285         this.bundleName = bundleName;
286     }
287
288     public String getBundleLicense()
289     {
290         return bundleLicense;
291     }
292
293     public void setBundleLicense( String bundleLicense )
294     {
295         this.bundleLicense = bundleLicense;
296     }
297
298     public String getBundleDocUrl()
299     {
300         return bundleDocUrl;
301     }
302
303     public void setBundleDocUrl( String bundleDocUrl )
304     {
305         this.bundleDocUrl = bundleDocUrl;
306     }
307
308     public String getBundleImportPackage()
309     {
310         return bundleImportPackage;
311     }
312
313     public void setBundleImportPackage( String bundleImportPackage )
314     {
315         this.bundleImportPackage = bundleImportPackage;
316     }
317
318     public String getBundleRequireBundle()
319     {
320         return bundleRequireBundle;
321     }
322
323     public void setBundleRequireBundle( String bundleRequireBundle )
324     {
325         this.bundleRequireBundle = bundleRequireBundle;
326     }
327
328     public String getPackaging()
329     {
330         return packaging;
331     }
332
333     public void setPackaging( String packaging )
334     {
335         this.packaging = packaging;
336     }
337
338     public String getType()
339     {
340         return getPackaging();
341     }
342
343     public String getClassifier()
344     {
345         return classifier;
346     }
347
348     public void setClassifier( String classifier )
349     {
350         this.classifier = classifier;
351     }
352
353     public String getFileExtension()
354     {
355         return fileExtension;
356     }
357
358     public void setFileExtension( String fileExtension )
359     {
360         this.fileExtension = fileExtension;
361     }
362
363     @Override
364     public String toString()
365     {
366         final StringBuilder sb = new StringBuilder();
367         sb.append( "SearchResultHit" );
368         sb.append( "{context='" ).append( context ).append( '\'' );
369         sb.append( ", url='" ).append( url ).append( '\'' );
370         sb.append( ", groupId='" ).append( groupId ).append( '\'' );
371         sb.append( ", artifactId='" ).append( artifactId ).append( '\'' );
372         sb.append( ", repositoryId='" ).append( repositoryId ).append( '\'' );
373         sb.append( ", versions=" ).append( versions );
374         sb.append( ", packaging='" ).append( packaging ).append( '\'' );
375         sb.append( ", prefix='" ).append( prefix ).append( '\'' );
376         sb.append( ", goals=" ).append( goals );
377         sb.append( ", bundleVersion='" ).append( bundleVersion ).append( '\'' );
378         sb.append( ", bundleSymbolicName='" ).append( bundleSymbolicName ).append( '\'' );
379         sb.append( ", bundleExportPackage='" ).append( bundleExportPackage ).append( '\'' );
380         sb.append( ", bundleExportService='" ).append( bundleExportService ).append( '\'' );
381         sb.append( ", bundleDescription='" ).append( bundleDescription ).append( '\'' );
382         sb.append( ", bundleName='" ).append( bundleName ).append( '\'' );
383         sb.append( ", bundleLicense='" ).append( bundleLicense ).append( '\'' );
384         sb.append( ", bundleDocUrl='" ).append( bundleDocUrl ).append( '\'' );
385         sb.append( ", bundleImportPackage='" ).append( bundleImportPackage ).append( '\'' );
386         sb.append( ", bundleRequireBundle='" ).append( bundleRequireBundle ).append( '\'' );
387         sb.append( ", classifier='" ).append( classifier ).append( '\'' );
388         sb.append( ", fileExtension='" ).append( fileExtension ).append( '\'' );
389         sb.append( '}' );
390         return sb.toString();
391     }
392
393     @Override
394     public boolean equals( Object o )
395     {
396         if ( this == o )
397         {
398             return true;
399         }
400         if ( o == null || getClass() != o.getClass() )
401         {
402             return false;
403         }
404
405         SearchResultHit that = (SearchResultHit) o;
406
407         if ( artifactId != null ? !artifactId.equals( that.artifactId ) : that.artifactId != null )
408         {
409             return false;
410         }
411         if ( classifier != null ? !classifier.equals( that.classifier ) : that.classifier != null )
412         {
413             return false;
414         }
415         if ( groupId != null ? !groupId.equals( that.groupId ) : that.groupId != null )
416         {
417             return false;
418         }
419         if ( packaging != null ? !packaging.equals( that.packaging ) : that.packaging != null )
420         {
421             return false;
422         }
423
424         return true;
425     }
426
427     @Override
428     public int hashCode()
429     {
430         int result = groupId != null ? groupId.hashCode() : 0;
431         result = 31 * result + ( artifactId != null ? artifactId.hashCode() : 0 );
432         result = 31 * result + ( packaging != null ? packaging.hashCode() : 0 );
433         result = 31 * result + ( classifier != null ? classifier.hashCode() : 0 );
434         return result;
435     }
436 }