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;plugin&gt;</code> element contains
012     * informations required for a report plugin.
013     *         
014     *       
015     * 
016     * @version $Revision$ $Date$
017     */
018    @SuppressWarnings( "all" )
019    public class ReportPlugin
020        extends ConfigurationContainer
021        implements java.io.Serializable, java.lang.Cloneable
022    {
023    
024          //--------------------------/
025         //- Class/Member Variables -/
026        //--------------------------/
027    
028        /**
029         * The group ID of the reporting plugin in the repository.
030         */
031        private String groupId = "org.apache.maven.plugins";
032    
033        /**
034         * The artifact ID of the reporting plugin in the repository.
035         */
036        private String artifactId;
037    
038        /**
039         * The version of the reporting plugin to be used.
040         */
041        private String version;
042    
043        /**
044         * Field reportSets.
045         */
046        private java.util.List<ReportSet> reportSets;
047    
048    
049          //-----------/
050         //- Methods -/
051        //-----------/
052    
053        /**
054         * Method addReportSet.
055         * 
056         * @param reportSet
057         */
058        public void addReportSet( ReportSet reportSet )
059        {
060            getReportSets().add( reportSet );
061        } //-- void addReportSet( ReportSet )
062    
063        /**
064         * Method clone.
065         * 
066         * @return ReportPlugin
067         */
068        public ReportPlugin clone()
069        {
070            try
071            {
072                ReportPlugin copy = (ReportPlugin) super.clone();
073    
074                if ( this.reportSets != null )
075                {
076                    copy.reportSets = new java.util.ArrayList<ReportSet>();
077                    for ( ReportSet item : this.reportSets )
078                    {
079                        copy.reportSets.add( ( (ReportSet) item).clone() );
080                    }
081                }
082    
083                return copy;
084            }
085            catch ( java.lang.Exception ex )
086            {
087                throw (java.lang.RuntimeException) new java.lang.UnsupportedOperationException( getClass().getName()
088                    + " does not support clone()" ).initCause( ex );
089            }
090        } //-- ReportPlugin clone()
091    
092        /**
093         * Get the artifact ID of the reporting plugin in the
094         * repository.
095         * 
096         * @return String
097         */
098        public String getArtifactId()
099        {
100            return this.artifactId;
101        } //-- String getArtifactId()
102    
103        /**
104         * Get the group ID of the reporting plugin in the repository.
105         * 
106         * @return String
107         */
108        public String getGroupId()
109        {
110            return this.groupId;
111        } //-- String getGroupId()
112    
113        /**
114         * Method getReportSets.
115         * 
116         * @return List
117         */
118        public java.util.List<ReportSet> getReportSets()
119        {
120            if ( this.reportSets == null )
121            {
122                this.reportSets = new java.util.ArrayList<ReportSet>();
123            }
124    
125            return this.reportSets;
126        } //-- java.util.List<ReportSet> getReportSets()
127    
128        /**
129         * Get the version of the reporting plugin to be used.
130         * 
131         * @return String
132         */
133        public String getVersion()
134        {
135            return this.version;
136        } //-- String getVersion()
137    
138        /**
139         * Method removeReportSet.
140         * 
141         * @param reportSet
142         */
143        public void removeReportSet( ReportSet reportSet )
144        {
145            getReportSets().remove( reportSet );
146        } //-- void removeReportSet( ReportSet )
147    
148        /**
149         * Set the artifact ID of the reporting plugin in the
150         * repository.
151         * 
152         * @param artifactId
153         */
154        public void setArtifactId( String artifactId )
155        {
156            this.artifactId = artifactId;
157        } //-- void setArtifactId( String )
158    
159        /**
160         * Set the group ID of the reporting plugin in the repository.
161         * 
162         * @param groupId
163         */
164        public void setGroupId( String groupId )
165        {
166            this.groupId = groupId;
167        } //-- void setGroupId( String )
168    
169        /**
170         * Set multiple specifications of a set of reports, each having
171         * (possibly) different
172         *             configuration. This is the reporting parallel to
173         * an <code>execution</code> in the build.
174         * 
175         * @param reportSets
176         */
177        public void setReportSets( java.util.List<ReportSet> reportSets )
178        {
179            this.reportSets = reportSets;
180        } //-- void setReportSets( java.util.List )
181    
182        /**
183         * Set the version of the reporting plugin to be used.
184         * 
185         * @param version
186         */
187        public void setVersion( String version )
188        {
189            this.version = version;
190        } //-- void setVersion( String )
191    
192        
193                
194        private java.util.Map<String, ReportSet> reportSetMap = null;
195    
196        /**
197         * Reset the <code>reportSetMap</code> field to <code>null</code>
198         */
199        public void flushReportSetMap()
200        {
201            this.reportSetMap = null;
202        }
203    
204        /**
205         * @return a Map of reportSets field with <code>ReportSet#getId()</code> as key
206         * @see org.apache.maven.model.ReportSet#getId()
207         */
208        public java.util.Map<String, ReportSet> getReportSetsAsMap()
209        {
210            if ( reportSetMap == null )
211            {
212                reportSetMap = new java.util.LinkedHashMap<String, ReportSet>();
213                if ( getReportSets() != null )
214                {
215                    for ( java.util.Iterator<ReportSet> i = getReportSets().iterator(); i.hasNext(); )
216                    {
217                        ReportSet reportSet = (ReportSet) i.next();
218                        reportSetMap.put( reportSet.getId(), reportSet );
219                    }
220                }
221            }
222    
223            return reportSetMap;
224        }
225    
226        /**
227         * @return the key of the report plugin, ie <code>groupId:artifactId</code>
228         */
229        public String getKey()
230        {
231            return constructKey( groupId, artifactId );
232        }
233    
234        /**
235         * @param groupId
236         * @param artifactId
237         * @return the key of the report plugin, ie <code>groupId:artifactId</code>
238         */
239        public static String constructKey( String groupId, String artifactId )
240        {
241            return groupId + ":" + artifactId;
242        }
243                
244              
245    }