001    // =================== DO NOT EDIT THIS FILE ====================
002    // Generated by Modello 1.7,
003    // any modifications will be overwritten.
004    // ==============================================================
005    
006    package org.apache.archiva.model;
007    
008    /**
009     * Class ArtifactReference.
010     * 
011     * @version $Revision$ $Date$
012     */
013    @SuppressWarnings( "all" )
014    public class ArtifactReference
015        implements java.io.Serializable
016    {
017    
018          //--------------------------/
019         //- Class/Member Variables -/
020        //--------------------------/
021    
022        /**
023         * 
024         *             The Group ID of the repository content.
025         *           
026         */
027        private String groupId;
028    
029        /**
030         * 
031         *             The Artifact ID of the repository content.
032         *           
033         */
034        private String artifactId;
035    
036        /**
037         * 
038         *             The version of the repository content.
039         *           
040         */
041        private String version;
042    
043        /**
044         * 
045         *             The classifier for this artifact.
046         *           
047         */
048        private String classifier;
049    
050        /**
051         * 
052         *             The type of artifact.
053         *           
054         */
055        private String type;
056    
057    
058          //-----------/
059         //- Methods -/
060        //-----------/
061    
062        /**
063         * Get the Artifact ID of the repository content.
064         * 
065         * @return String
066         */
067        public String getArtifactId()
068        {
069            return this.artifactId;
070        } //-- String getArtifactId()
071    
072        /**
073         * Get the classifier for this artifact.
074         * 
075         * @return String
076         */
077        public String getClassifier()
078        {
079            return this.classifier;
080        } //-- String getClassifier()
081    
082        /**
083         * Get the Group ID of the repository content.
084         * 
085         * @return String
086         */
087        public String getGroupId()
088        {
089            return this.groupId;
090        } //-- String getGroupId()
091    
092        /**
093         * Get the type of artifact.
094         * 
095         * @return String
096         */
097        public String getType()
098        {
099            return this.type;
100        } //-- String getType()
101    
102        /**
103         * Get the version of the repository content.
104         * 
105         * @return String
106         */
107        public String getVersion()
108        {
109            return this.version;
110        } //-- String getVersion()
111    
112        /**
113         * Set the Artifact ID of the repository content.
114         * 
115         * @param artifactId
116         */
117        public void setArtifactId( String artifactId )
118        {
119            this.artifactId = artifactId;
120        } //-- void setArtifactId( String )
121    
122        /**
123         * Set the classifier for this artifact.
124         * 
125         * @param classifier
126         */
127        public void setClassifier( String classifier )
128        {
129            this.classifier = classifier;
130        } //-- void setClassifier( String )
131    
132        /**
133         * Set the Group ID of the repository content.
134         * 
135         * @param groupId
136         */
137        public void setGroupId( String groupId )
138        {
139            this.groupId = groupId;
140        } //-- void setGroupId( String )
141    
142        /**
143         * Set the type of artifact.
144         * 
145         * @param type
146         */
147        public void setType( String type )
148        {
149            this.type = type;
150        } //-- void setType( String )
151    
152        /**
153         * Set the version of the repository content.
154         * 
155         * @param version
156         */
157        public void setVersion( String version )
158        {
159            this.version = version;
160        } //-- void setVersion( String )
161    
162        
163        private static final long serialVersionUID = -6116764846682178732L;
164              
165        
166        private static String defaultString( String value )
167        {
168            if ( value == null )
169            {
170                return "";
171            }
172            
173            return value.trim();
174        }
175              
176        public static String toKey( ArtifactReference artifactReference )
177        {
178            StringBuilder key = new StringBuilder();
179    
180            key.append( defaultString( artifactReference.getGroupId() ) ).append( ":" );
181            key.append( defaultString( artifactReference.getArtifactId() ) ).append( ":" );
182            key.append( defaultString( artifactReference.getVersion() ) ).append( ":" );
183            key.append( defaultString( artifactReference.getClassifier() ) ).append( ":" );
184            key.append( defaultString( artifactReference.getType() ) );
185    
186            return key.toString();
187        }
188    
189        public static String toVersionlessKey( ArtifactReference artifactReference )
190        {
191            StringBuilder key = new StringBuilder();
192    
193            key.append( defaultString( artifactReference.getGroupId() ) ).append( ":" );
194            key.append( defaultString( artifactReference.getArtifactId() ) ).append( ":" );
195            key.append( defaultString( artifactReference.getClassifier() ) ).append( ":" );
196            key.append( defaultString( artifactReference.getType() ) );
197    
198            return key.toString();
199        }
200              
201        
202        public int hashCode()
203        {
204            final int PRIME = 31;
205            int result = 1;
206            result = PRIME * result + ( ( groupId == null ) ? 0 : groupId.hashCode() );
207            result = PRIME * result + ( ( artifactId == null ) ? 0 : artifactId.hashCode() );
208            result = PRIME * result + ( ( version == null ) ? 0 : version.hashCode() );
209            result = PRIME * result + ( ( classifier == null ) ? 0 : classifier.hashCode() );
210            result = PRIME * result + ( ( type == null ) ? 0 : type.hashCode() );
211            return result;
212        }
213    
214        public boolean equals( Object obj )
215        {
216            if ( this == obj )
217            {
218                return true;
219            }
220            
221            if ( obj == null )
222            {
223                return false;
224            }
225            
226            if ( getClass() != obj.getClass() )
227            {
228                return false;
229            }
230    
231            final ArtifactReference other = (ArtifactReference) obj;
232    
233            if ( groupId == null )
234            {
235                if ( other.groupId != null )
236                {
237                    return false;
238                }
239            }
240            else if ( !groupId.equals( other.groupId ) )
241            {
242                return false;
243            }
244    
245            if ( artifactId == null )
246            {
247                if ( other.artifactId != null )
248                {
249                    return false;
250                }
251            }
252            else if ( !artifactId.equals( other.artifactId ) )
253            {
254                return false;
255            }
256    
257            if ( version == null )
258            {
259                if ( other.version != null )
260                {
261                    return false;
262                }
263            }
264            else if ( !version.equals( other.version ) )
265            {
266                return false;
267            }
268    
269            if ( classifier == null )
270            {
271                if ( other.classifier != null )
272                {
273                    return false;
274                }
275            }
276            else if ( !classifier.equals( other.classifier ) )
277            {
278                return false;
279            }
280            
281            if ( type == null )
282            {
283                if ( other.type != null )
284                {
285                    return false;
286                }
287            }
288            else if ( !type.equals( other.type ) )
289            {
290                return false;
291            }
292            
293            return true;
294        }          
295              
296    }