]> source.dussan.org Git - archiva.git/blob
a198eaec2cc6c455976d51f8523100079b37a567
[archiva.git] /
1 package org.apache.maven.archiva.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.commons.lang.StringUtils;
23
24 import java.io.Serializable;
25
26 /**
27  * RepositoryContentKey - the jpox application key support class for all content within the repository.
28  *
29  * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
30  * @version $Id$
31  */
32 public class RepositoryContentKey implements Serializable
33 {
34     /**
35      * The Repository ID. (JPOX Requires this remain public)
36      */
37     public String repositoryId = "";
38
39     /**
40      * The Group ID. (JPOX Requires this remain public)
41      */
42     public String groupId = "";
43
44     /**
45      * The Artifact ID. (JPOX Requires this remain public)
46      */
47     public String artifactId = "";
48
49     /**
50      * The Version. (JPOX Requires this remain public)
51      */
52     public String version = "";
53
54     /**
55      * Default Constructor.  Required by JPOX.
56      */
57     public RepositoryContentKey()
58     {
59
60     }
61
62     /**
63      * Key Based Constructor.  Required by JPOX.
64      * 
65      * @param key the String representing this object's values.
66      */
67     public RepositoryContentKey( String key )
68     {
69         String parts[] = StringUtils.splitPreserveAllTokens( key, ':' );
70         repositoryId = parts[0];
71         groupId = parts[1];
72         artifactId = parts[2];
73         version = parts[3];
74     }
75
76     /**
77      * Get the String representation of this object. - Required by JPOX.
78      */
79     public String toString()
80     {
81         return StringUtils.join( new String[] { repositoryId, groupId, artifactId, version } );
82     }
83
84     /**
85      * Get the hashcode for this object's values - Required by JPOX.
86      */
87     public int hashCode()
88     {
89         final int PRIME = 31;
90         int result = 1;
91         result = PRIME * result + ( ( repositoryId == null ) ? 0 : repositoryId.hashCode() );
92         result = PRIME * result + ( ( groupId == null ) ? 0 : groupId.hashCode() );
93         result = PRIME * result + ( ( artifactId == null ) ? 0 : artifactId.hashCode() );
94         result = PRIME * result + ( ( version == null ) ? 0 : version.hashCode() );
95         return result;
96     }
97
98     /**
99      * Get the equals for this object's values - Required by JPOX.
100      */
101     public boolean equals( Object obj )
102     {
103         if ( this == obj )
104         {
105             return true;
106         }
107
108         if ( obj == null )
109         {
110             return false;
111         }
112
113         if ( getClass() != obj.getClass() )
114         {
115             return false;
116         }
117
118         final RepositoryContentKey other = (RepositoryContentKey) obj;
119
120         if ( repositoryId == null )
121         {
122             if ( other.repositoryId != null )
123             {
124                 return false;
125             }
126         }
127         else if ( !repositoryId.equals( other.repositoryId ) )
128         {
129             return false;
130         }
131
132         if ( groupId == null )
133         {
134             if ( other.groupId != null )
135             {
136                 return false;
137             }
138         }
139         else if ( !groupId.equals( other.groupId ) )
140         {
141             return false;
142         }
143
144         if ( artifactId == null )
145         {
146             if ( other.artifactId != null )
147             {
148                 return false;
149             }
150         }
151         else if ( !artifactId.equals( other.artifactId ) )
152         {
153             return false;
154         }
155
156         if ( version == null )
157         {
158             if ( other.version != null )
159             {
160                 return false;
161             }
162         }
163         else if ( !version.equals( other.version ) )
164         {
165             return false;
166         }
167
168         return true;
169     }
170 }