001// =================== DO NOT EDIT THIS FILE ====================
002// Generated by Modello 1.8.3,
003// any modifications will be overwritten.
004// ==============================================================
005
006package org.apache.maven.model;
007
008/**
009 * 
010 *         
011 *         The <code>&lt;scm&gt;</code> element contains
012 * informations required to the SCM
013 *         (Source Control Management) of the project.
014 *         
015 *       
016 * 
017 * @version $Revision$ $Date$
018 */
019@SuppressWarnings( "all" )
020public class Scm
021    implements java.io.Serializable, java.lang.Cloneable, org.apache.maven.model.InputLocationTracker
022{
023
024      //--------------------------/
025     //- Class/Member Variables -/
026    //--------------------------/
027
028    /**
029     * 
030     *             
031     *             The source control management system URL
032     *             that describes the repository and how to connect
033     * to the
034     *             repository. For more information, see the
035     *             <a
036     * href="http://maven.apache.org/scm/scm-url-format.html">URL
037     * format</a>
038     *             and <a
039     * href="http://maven.apache.org/scm/scms-overview.html">list
040     * of supported SCMs</a>.
041     *             This connection is read-only.
042     *             <br /><b>Default value is</b>: parent value [+
043     * path adjustment] + artifactId
044     *             
045     *           .
046     */
047    private String connection;
048
049    /**
050     * 
051     *             
052     *             Just like <code>connection</code>, but for
053     * developers, i.e. this scm connection
054     *             will not be read only.
055     *             <br /><b>Default value is</b>: parent value [+
056     * path adjustment] + artifactId
057     *             
058     *           .
059     */
060    private String developerConnection;
061
062    /**
063     * The tag of current code. By default, it's set to HEAD during
064     * development.
065     */
066    private String tag = "HEAD";
067
068    /**
069     * 
070     *             
071     *             The URL to the project's browsable SCM
072     * repository, such as ViewVC or Fisheye.
073     *             <br /><b>Default value is</b>: parent value [+
074     * path adjustment] + artifactId
075     *             
076     *           .
077     */
078    private String url;
079
080    /**
081     * Field locations.
082     */
083    private java.util.Map<Object, InputLocation> locations;
084
085
086      //-----------/
087     //- Methods -/
088    //-----------/
089
090    /**
091     * Method clone.
092     * 
093     * @return Scm
094     */
095    public Scm clone()
096    {
097        try
098        {
099            Scm copy = (Scm) super.clone();
100
101            if ( copy.locations != null )
102            {
103                copy.locations = new java.util.LinkedHashMap( copy.locations );
104            }
105
106            return copy;
107        }
108        catch ( java.lang.Exception ex )
109        {
110            throw (java.lang.RuntimeException) new java.lang.UnsupportedOperationException( getClass().getName()
111                + " does not support clone()" ).initCause( ex );
112        }
113    } //-- Scm clone()
114
115    /**
116     * Get the source control management system URL
117     *             that describes the repository and how to connect
118     * to the
119     *             repository. For more information, see the
120     *             <a
121     * href="http://maven.apache.org/scm/scm-url-format.html">URL
122     * format</a>
123     *             and <a
124     * href="http://maven.apache.org/scm/scms-overview.html">list
125     * of supported SCMs</a>.
126     *             This connection is read-only.
127     *             <br /><b>Default value is</b>: parent value [+
128     * path adjustment] + artifactId.
129     * 
130     * @return String
131     */
132    public String getConnection()
133    {
134        return this.connection;
135    } //-- String getConnection()
136
137    /**
138     * Get just like <code>connection</code>, but for developers,
139     * i.e. this scm connection
140     *             will not be read only.
141     *             <br /><b>Default value is</b>: parent value [+
142     * path adjustment] + artifactId.
143     * 
144     * @return String
145     */
146    public String getDeveloperConnection()
147    {
148        return this.developerConnection;
149    } //-- String getDeveloperConnection()
150
151    /**
152     * 
153     * 
154     * @param key
155     * @return InputLocation
156     */
157    public InputLocation getLocation( Object key )
158    {
159        return ( locations != null ) ? locations.get( key ) : null;
160    } //-- InputLocation getLocation( Object )
161
162    /**
163     * Get the tag of current code. By default, it's set to HEAD
164     * during development.
165     * 
166     * @return String
167     */
168    public String getTag()
169    {
170        return this.tag;
171    } //-- String getTag()
172
173    /**
174     * Get the URL to the project's browsable SCM repository, such
175     * as ViewVC or Fisheye.
176     *             <br /><b>Default value is</b>: parent value [+
177     * path adjustment] + artifactId.
178     * 
179     * @return String
180     */
181    public String getUrl()
182    {
183        return this.url;
184    } //-- String getUrl()
185
186    /**
187     * Set the source control management system URL
188     *             that describes the repository and how to connect
189     * to the
190     *             repository. For more information, see the
191     *             <a
192     * href="http://maven.apache.org/scm/scm-url-format.html">URL
193     * format</a>
194     *             and <a
195     * href="http://maven.apache.org/scm/scms-overview.html">list
196     * of supported SCMs</a>.
197     *             This connection is read-only.
198     *             <br /><b>Default value is</b>: parent value [+
199     * path adjustment] + artifactId.
200     * 
201     * @param connection
202     */
203    public void setConnection( String connection )
204    {
205        this.connection = connection;
206    } //-- void setConnection( String )
207
208    /**
209     * Set just like <code>connection</code>, but for developers,
210     * i.e. this scm connection
211     *             will not be read only.
212     *             <br /><b>Default value is</b>: parent value [+
213     * path adjustment] + artifactId.
214     * 
215     * @param developerConnection
216     */
217    public void setDeveloperConnection( String developerConnection )
218    {
219        this.developerConnection = developerConnection;
220    } //-- void setDeveloperConnection( String )
221
222    /**
223     * 
224     * 
225     * @param key
226     * @param location
227     */
228    public void setLocation( Object key, InputLocation location )
229    {
230        if ( location != null )
231        {
232            if ( this.locations == null )
233            {
234                this.locations = new java.util.LinkedHashMap<Object, InputLocation>();
235            }
236            this.locations.put( key, location );
237        }
238    } //-- void setLocation( Object, InputLocation )
239
240    /**
241     * Set the tag of current code. By default, it's set to HEAD
242     * during development.
243     * 
244     * @param tag
245     */
246    public void setTag( String tag )
247    {
248        this.tag = tag;
249    } //-- void setTag( String )
250
251    /**
252     * Set the URL to the project's browsable SCM repository, such
253     * as ViewVC or Fisheye.
254     *             <br /><b>Default value is</b>: parent value [+
255     * path adjustment] + artifactId.
256     * 
257     * @param url
258     */
259    public void setUrl( String url )
260    {
261        this.url = url;
262    } //-- void setUrl( String )
263
264}