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