001    /*
002     =================== DO NOT EDIT THIS FILE ====================
003     Generated by Modello 1.4.1 on 2012-01-20 18:09:18,
004     any modifications will be overwritten.
005     ==============================================================
006     */
007    
008    package org.apache.maven.model;
009    
010    /**
011     * Describes a build extension to utilise.
012     * 
013     * @version $Revision$ $Date$
014     */
015    @SuppressWarnings( "all" )
016    public class Extension
017        implements java.io.Serializable, java.lang.Cloneable, org.apache.maven.model.InputLocationTracker
018    {
019    
020          //--------------------------/
021         //- Class/Member Variables -/
022        //--------------------------/
023    
024        /**
025         * The group ID of the extension's artifact.
026         */
027        private String groupId;
028    
029        /**
030         * The artifact ID of the extension.
031         */
032        private String artifactId;
033    
034        /**
035         * The version of the extension.
036         */
037        private String version;
038    
039        /**
040         * Field locations.
041         */
042        private java.util.Map<Object, InputLocation> locations;
043    
044    
045          //-----------/
046         //- Methods -/
047        //-----------/
048    
049        /**
050         * Method clone.
051         * 
052         * @return Extension
053         */
054        public Extension clone()
055        {
056            try
057            {
058                Extension copy = (Extension) super.clone();
059    
060                if ( copy.locations != null )
061                {
062                    copy.locations = new java.util.LinkedHashMap( copy.locations );
063                }
064    
065                return copy;
066            }
067            catch ( java.lang.Exception ex )
068            {
069                throw (java.lang.RuntimeException) new java.lang.UnsupportedOperationException( getClass().getName()
070                    + " does not support clone()" ).initCause( ex );
071            }
072        } //-- Extension clone()
073    
074        /**
075         * Get the artifact ID of the extension.
076         * 
077         * @return String
078         */
079        public String getArtifactId()
080        {
081            return this.artifactId;
082        } //-- String getArtifactId()
083    
084        /**
085         * Get the group ID of the extension's artifact.
086         * 
087         * @return String
088         */
089        public String getGroupId()
090        {
091            return this.groupId;
092        } //-- String getGroupId()
093    
094        /**
095         * 
096         * 
097         * @param key
098         * @return InputLocation
099         */
100        public InputLocation getLocation( Object key )
101        {
102            return ( locations != null ) ? locations.get( key ) : null;
103        } //-- InputLocation getLocation( Object )
104    
105        /**
106         * Get the version of the extension.
107         * 
108         * @return String
109         */
110        public String getVersion()
111        {
112            return this.version;
113        } //-- String getVersion()
114    
115        /**
116         * Set the artifact ID of the extension.
117         * 
118         * @param artifactId
119         */
120        public void setArtifactId( String artifactId )
121        {
122            this.artifactId = artifactId;
123        } //-- void setArtifactId( String )
124    
125        /**
126         * Set the group ID of the extension's artifact.
127         * 
128         * @param groupId
129         */
130        public void setGroupId( String groupId )
131        {
132            this.groupId = groupId;
133        } //-- void setGroupId( String )
134    
135        /**
136         * 
137         * 
138         * @param key
139         * @param location
140         */
141        public void setLocation( Object key, InputLocation location )
142        {
143            if ( location != null )
144            {
145                if ( this.locations == null )
146                {
147                    this.locations = new java.util.LinkedHashMap<Object, InputLocation>();
148                }
149                this.locations.put( key, location );
150            }
151        } //-- void setLocation( Object, InputLocation )
152    
153        /**
154         * Set the version of the extension.
155         * 
156         * @param version
157         */
158        public void setVersion( String version )
159        {
160            this.version = version;
161        } //-- void setVersion( String )
162    
163        
164                
165        /**
166         * @see java.lang.Object#equals(java.lang.Object)
167         */
168        public boolean equals( Object o )
169        {
170            if ( this == o )
171            {
172                return true;
173            }
174    
175            if ( !( o instanceof Extension ) )
176            {
177                return false;
178            }
179    
180            Extension e = (Extension) o;
181    
182            if ( !equal( e.getArtifactId(), getArtifactId() ) )
183            {
184                return false;
185            }
186            else if ( !equal( e.getGroupId(), getGroupId() ) )
187            {
188                return false;
189            }
190            else if ( !equal( e.getVersion(), getVersion() ) )
191            {
192                return false;
193            }
194            return true;
195        }
196    
197        private static <T> boolean equal( T obj1, T obj2 )
198        {
199            return ( obj1 != null ) ? obj1.equals( obj2 ) : obj2 == null;
200        }
201    
202        /**
203         * @see java.lang.Object#hashCode()
204         */
205        public int hashCode()
206        {
207            int result = 17;
208            result = 37 * result + ( getArtifactId() != null ? getArtifactId().hashCode() : 0 );
209            result = 37 * result + ( getGroupId() != null ? getGroupId().hashCode() : 0 );
210            result = 37 * result + ( getVersion() != null ? getVersion().hashCode() : 0 );
211            return result;
212        }
213                
214              
215    }