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     * Section for management of reports and their configuration.
012     * 
013     * @version $Revision$ $Date$
014     */
015    @SuppressWarnings( "all" )
016    public class Reporting
017        implements java.io.Serializable, java.lang.Cloneable, org.apache.maven.model.InputLocationTracker
018    {
019    
020          //--------------------------/
021         //- Class/Member Variables -/
022        //--------------------------/
023    
024        /**
025         * 
026         *             
027         *             If true, then the default reports are not
028         * included in the site generation.
029         *             This includes the reports in the "Project Info"
030         * menu. Note: While the type
031         *             of this field is <code>String</code> for
032         * technical reasons, the semantic type is actually
033         *             <code>Boolean</code>. Default value is
034         * <code>false</code>.
035         *             
036         *           
037         */
038        private String excludeDefaults;
039    
040        /**
041         * 
042         *             
043         *             Where to store all of the generated reports. The
044         * default is
045         *             <code>${project.build.directory}/site</code>
046         *             .
047         *             
048         *           
049         */
050        private String outputDirectory;
051    
052        /**
053         * Field plugins.
054         */
055        private java.util.List<ReportPlugin> plugins;
056    
057        /**
058         * Field locations.
059         */
060        private java.util.Map<Object, InputLocation> locations;
061    
062    
063          //-----------/
064         //- Methods -/
065        //-----------/
066    
067        /**
068         * Method addPlugin.
069         * 
070         * @param reportPlugin
071         */
072        public void addPlugin( ReportPlugin reportPlugin )
073        {
074            getPlugins().add( reportPlugin );
075        } //-- void addPlugin( ReportPlugin )
076    
077        /**
078         * Method clone.
079         * 
080         * @return Reporting
081         */
082        public Reporting clone()
083        {
084            try
085            {
086                Reporting copy = (Reporting) super.clone();
087    
088                if ( this.plugins != null )
089                {
090                    copy.plugins = new java.util.ArrayList<ReportPlugin>();
091                    for ( ReportPlugin item : this.plugins )
092                    {
093                        copy.plugins.add( ( (ReportPlugin) item).clone() );
094                    }
095                }
096    
097                if ( copy.locations != null )
098                {
099                    copy.locations = new java.util.LinkedHashMap( copy.locations );
100                }
101    
102                return copy;
103            }
104            catch ( java.lang.Exception ex )
105            {
106                throw (java.lang.RuntimeException) new java.lang.UnsupportedOperationException( getClass().getName()
107                    + " does not support clone()" ).initCause( ex );
108            }
109        } //-- Reporting clone()
110    
111        /**
112         * Get if true, then the default reports are not included in
113         * the site generation.
114         *             This includes the reports in the "Project Info"
115         * menu. Note: While the type
116         *             of this field is <code>String</code> for
117         * technical reasons, the semantic type is actually
118         *             <code>Boolean</code>. Default value is
119         * <code>false</code>.
120         * 
121         * @return String
122         */
123        public String getExcludeDefaults()
124        {
125            return this.excludeDefaults;
126        } //-- String getExcludeDefaults()
127    
128        /**
129         * 
130         * 
131         * @param key
132         * @return InputLocation
133         */
134        public InputLocation getLocation( Object key )
135        {
136            return ( locations != null ) ? locations.get( key ) : null;
137        } //-- InputLocation getLocation( Object )
138    
139        /**
140         * Get where to store all of the generated reports. The default
141         * is
142         *             <code>${project.build.directory}/site</code>
143         *             .
144         * 
145         * @return String
146         */
147        public String getOutputDirectory()
148        {
149            return this.outputDirectory;
150        } //-- String getOutputDirectory()
151    
152        /**
153         * Method getPlugins.
154         * 
155         * @return List
156         */
157        public java.util.List<ReportPlugin> getPlugins()
158        {
159            if ( this.plugins == null )
160            {
161                this.plugins = new java.util.ArrayList<ReportPlugin>();
162            }
163    
164            return this.plugins;
165        } //-- java.util.List<ReportPlugin> getPlugins()
166    
167        /**
168         * Method removePlugin.
169         * 
170         * @param reportPlugin
171         */
172        public void removePlugin( ReportPlugin reportPlugin )
173        {
174            getPlugins().remove( reportPlugin );
175        } //-- void removePlugin( ReportPlugin )
176    
177        /**
178         * Set if true, then the default reports are not included in
179         * the site generation.
180         *             This includes the reports in the "Project Info"
181         * menu. Note: While the type
182         *             of this field is <code>String</code> for
183         * technical reasons, the semantic type is actually
184         *             <code>Boolean</code>. Default value is
185         * <code>false</code>.
186         * 
187         * @param excludeDefaults
188         */
189        public void setExcludeDefaults( String excludeDefaults )
190        {
191            this.excludeDefaults = excludeDefaults;
192        } //-- void setExcludeDefaults( String )
193    
194        /**
195         * 
196         * 
197         * @param key
198         * @param location
199         */
200        public void setLocation( Object key, InputLocation location )
201        {
202            if ( location != null )
203            {
204                if ( this.locations == null )
205                {
206                    this.locations = new java.util.LinkedHashMap<Object, InputLocation>();
207                }
208                this.locations.put( key, location );
209            }
210        } //-- void setLocation( Object, InputLocation )
211    
212        /**
213         * Set where to store all of the generated reports. The default
214         * is
215         *             <code>${project.build.directory}/site</code>
216         *             .
217         * 
218         * @param outputDirectory
219         */
220        public void setOutputDirectory( String outputDirectory )
221        {
222            this.outputDirectory = outputDirectory;
223        } //-- void setOutputDirectory( String )
224    
225        /**
226         * Set the reporting plugins to use and their configuration.
227         * 
228         * @param plugins
229         */
230        public void setPlugins( java.util.List<ReportPlugin> plugins )
231        {
232            this.plugins = plugins;
233        } //-- void setPlugins( java.util.List )
234    
235        
236                
237        public boolean isExcludeDefaults()
238        {
239            return ( excludeDefaults != null ) ? Boolean.parseBoolean( excludeDefaults ) : false;
240        }
241    
242        public void setExcludeDefaults( boolean excludeDefaults )
243        {
244            this.excludeDefaults = String.valueOf( excludeDefaults );
245        }
246    
247        java.util.Map<String, ReportPlugin> reportPluginMap;
248    
249        /**
250         * Reset the <code>reportPluginMap</code> field to <code>null</code>
251         */
252        public synchronized void flushReportPluginMap()
253        {
254            this.reportPluginMap = null;
255        }
256    
257        /**
258         * @return a Map of plugins field with <code>ReportPlugin#getKey()</code> as key
259         * @see org.apache.maven.model.ReportPlugin#getKey()
260         */
261        public synchronized java.util.Map<String, ReportPlugin> getReportPluginsAsMap()
262        {
263            if ( reportPluginMap == null )
264            {
265                reportPluginMap = new java.util.LinkedHashMap<String, ReportPlugin>();
266                if ( getPlugins() != null )
267                {
268                    for ( java.util.Iterator<ReportPlugin> it = getPlugins().iterator(); it.hasNext(); )
269                    {
270                        ReportPlugin reportPlugin = (ReportPlugin) it.next();
271                        reportPluginMap.put( reportPlugin.getKey(), reportPlugin );
272                    }
273                }
274            }
275    
276            return reportPluginMap;
277        }
278                
279              
280    }