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