001    // =================== DO NOT EDIT THIS FILE ====================
002    // Generated by Modello 1.7,
003    // any modifications will be overwritten.
004    // ==============================================================
005    
006    package org.apache.maven.model;
007    
008    /**
009     * 
010     *         
011     *         The <code>&lt;execution&gt;</code> element contains
012     * informations required for the
013     *         execution of a plugin.
014     *         
015     *       
016     * 
017     * @version $Revision$ $Date$
018     */
019    @SuppressWarnings( "all" )
020    public class PluginExecution
021        extends ConfigurationContainer
022        implements java.io.Serializable, java.lang.Cloneable
023    {
024    
025          //--------------------------/
026         //- Class/Member Variables -/
027        //--------------------------/
028    
029        /**
030         * The identifier of this execution for labelling the goals
031         * during the build,
032         *             and for matching executions to merge during
033         * inheritance and profile injection.
034         */
035        private String id = "default";
036    
037        /**
038         * The build lifecycle phase to bind the goals in this
039         * execution to. If omitted,
040         *             the goals will be bound to the default phase
041         * specified in their metadata. 
042         */
043        private String phase;
044    
045        /**
046         * 
047         *             
048         *             The priority of this execution compared to other
049         * executions which are bound to the same phase.
050         *             <strong>Warning:</strong> This is an internal
051         * utility property that is only public for technical reasons,
052         *             it is not part of the public API. In particular,
053         * this property can be changed or deleted without prior
054         *             notice.
055         *             
056         *           
057         */
058        private int priority = 0;
059    
060        /**
061         * Field goals.
062         */
063        private java.util.List<String> goals;
064    
065    
066          //-----------/
067         //- Methods -/
068        //-----------/
069    
070        /**
071         * Method addGoal.
072         * 
073         * @param string
074         */
075        public void addGoal( String string )
076        {
077            getGoals().add( string );
078        } //-- void addGoal( String )
079    
080        /**
081         * Method clone.
082         * 
083         * @return PluginExecution
084         */
085        public PluginExecution clone()
086        {
087            try
088            {
089                PluginExecution copy = (PluginExecution) super.clone();
090    
091                if ( this.goals != null )
092                {
093                    copy.goals = new java.util.ArrayList<String>();
094                    copy.goals.addAll( this.goals );
095                }
096    
097                return copy;
098            }
099            catch ( java.lang.Exception ex )
100            {
101                throw (java.lang.RuntimeException) new java.lang.UnsupportedOperationException( getClass().getName()
102                    + " does not support clone()" ).initCause( ex );
103            }
104        } //-- PluginExecution clone()
105    
106        /**
107         * Method getGoals.
108         * 
109         * @return List
110         */
111        public java.util.List<String> getGoals()
112        {
113            if ( this.goals == null )
114            {
115                this.goals = new java.util.ArrayList<String>();
116            }
117    
118            return this.goals;
119        } //-- java.util.List<String> getGoals()
120    
121        /**
122         * Get the identifier of this execution for labelling the goals
123         * during the build,
124         *             and for matching executions to merge during
125         * inheritance and profile injection.
126         * 
127         * @return String
128         */
129        public String getId()
130        {
131            return this.id;
132        } //-- String getId()
133    
134        /**
135         * Get the build lifecycle phase to bind the goals in this
136         * execution to. If omitted,
137         *             the goals will be bound to the default phase
138         * specified in their metadata.
139         * 
140         * @return String
141         */
142        public String getPhase()
143        {
144            return this.phase;
145        } //-- String getPhase()
146    
147        /**
148         * Get the priority of this execution compared to other
149         * executions which are bound to the same phase.
150         *             <strong>Warning:</strong> This is an internal
151         * utility property that is only public for technical reasons,
152         *             it is not part of the public API. In particular,
153         * this property can be changed or deleted without prior
154         *             notice.
155         * 
156         * @return int
157         */
158        public int getPriority()
159        {
160            return this.priority;
161        } //-- int getPriority()
162    
163        /**
164         * Method removeGoal.
165         * 
166         * @param string
167         */
168        public void removeGoal( String string )
169        {
170            getGoals().remove( string );
171        } //-- void removeGoal( String )
172    
173        /**
174         * Set the goals to execute with the given configuration.
175         * 
176         * @param goals
177         */
178        public void setGoals( java.util.List<String> goals )
179        {
180            this.goals = goals;
181        } //-- void setGoals( java.util.List )
182    
183        /**
184         * Set the identifier of this execution for labelling the goals
185         * during the build,
186         *             and for matching executions to merge during
187         * inheritance and profile injection.
188         * 
189         * @param id
190         */
191        public void setId( String id )
192        {
193            this.id = id;
194        } //-- void setId( String )
195    
196        /**
197         * Set the build lifecycle phase to bind the goals in this
198         * execution to. If omitted,
199         *             the goals will be bound to the default phase
200         * specified in their metadata.
201         * 
202         * @param phase
203         */
204        public void setPhase( String phase )
205        {
206            this.phase = phase;
207        } //-- void setPhase( String )
208    
209        /**
210         * Set the priority of this execution compared to other
211         * executions which are bound to the same phase.
212         *             <strong>Warning:</strong> This is an internal
213         * utility property that is only public for technical reasons,
214         *             it is not part of the public API. In particular,
215         * this property can be changed or deleted without prior
216         *             notice.
217         * 
218         * @param priority
219         */
220        public void setPriority( int priority )
221        {
222            this.priority = priority;
223        } //-- void setPriority( int )
224    
225        
226                
227        public static final String DEFAULT_EXECUTION_ID = "default";
228    
229        @Override
230        public String toString()
231        {
232            return getId();
233        }
234                
235              
236    }