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     * Contains the plugins informations for the project.
012     * 
013     * @version $Revision$ $Date$
014     */
015    @SuppressWarnings( "all" )
016    public class PluginContainer
017        implements java.io.Serializable, java.lang.Cloneable, org.apache.maven.model.InputLocationTracker
018    {
019    
020          //--------------------------/
021         //- Class/Member Variables -/
022        //--------------------------/
023    
024        /**
025         * Field plugins.
026         */
027        private java.util.List<Plugin> plugins;
028    
029        /**
030         * Field locations.
031         */
032        private java.util.Map<Object, InputLocation> locations;
033    
034    
035          //-----------/
036         //- Methods -/
037        //-----------/
038    
039        /**
040         * Method addPlugin.
041         * 
042         * @param plugin
043         */
044        public void addPlugin( Plugin plugin )
045        {
046            getPlugins().add( plugin );
047        } //-- void addPlugin( Plugin )
048    
049        /**
050         * Method clone.
051         * 
052         * @return PluginContainer
053         */
054        public PluginContainer clone()
055        {
056            try
057            {
058                PluginContainer copy = (PluginContainer) super.clone();
059    
060                if ( this.plugins != null )
061                {
062                    copy.plugins = new java.util.ArrayList<Plugin>();
063                    for ( Plugin item : this.plugins )
064                    {
065                        copy.plugins.add( ( (Plugin) item).clone() );
066                    }
067                }
068    
069                if ( copy.locations != null )
070                {
071                    copy.locations = new java.util.LinkedHashMap( copy.locations );
072                }
073    
074                return copy;
075            }
076            catch ( java.lang.Exception ex )
077            {
078                throw (java.lang.RuntimeException) new java.lang.UnsupportedOperationException( getClass().getName()
079                    + " does not support clone()" ).initCause( ex );
080            }
081        } //-- PluginContainer clone()
082    
083        /**
084         * 
085         * 
086         * @param key
087         * @return InputLocation
088         */
089        public InputLocation getLocation( Object key )
090        {
091            return ( locations != null ) ? locations.get( key ) : null;
092        } //-- InputLocation getLocation( Object )
093    
094        /**
095         * Method getPlugins.
096         * 
097         * @return List
098         */
099        public java.util.List<Plugin> getPlugins()
100        {
101            if ( this.plugins == null )
102            {
103                this.plugins = new java.util.ArrayList<Plugin>();
104            }
105    
106            return this.plugins;
107        } //-- java.util.List<Plugin> getPlugins()
108    
109        /**
110         * Method removePlugin.
111         * 
112         * @param plugin
113         */
114        public void removePlugin( Plugin plugin )
115        {
116            getPlugins().remove( plugin );
117        } //-- void removePlugin( Plugin )
118    
119        /**
120         * 
121         * 
122         * @param key
123         * @param location
124         */
125        public void setLocation( Object key, InputLocation location )
126        {
127            if ( location != null )
128            {
129                if ( this.locations == null )
130                {
131                    this.locations = new java.util.LinkedHashMap<Object, InputLocation>();
132                }
133                this.locations.put( key, location );
134            }
135        } //-- void setLocation( Object, InputLocation )
136    
137        /**
138         * Set the list of plugins to use.
139         * 
140         * @param plugins
141         */
142        public void setPlugins( java.util.List<Plugin> plugins )
143        {
144            this.plugins = plugins;
145        } //-- void setPlugins( java.util.List )
146    
147        
148                
149        java.util.Map<String, Plugin> pluginMap;
150    
151        /**
152         * Reset the <code>pluginsMap</code> field to <code>null</code>
153         */
154        public synchronized void flushPluginMap()
155        {
156            this.pluginMap = null;
157        }
158    
159        /**
160         * @return a Map of plugins field with <code>Plugins#getKey()</code> as key
161         * @see org.apache.maven.model.Plugin#getKey()
162         */
163        public synchronized java.util.Map<String, Plugin> getPluginsAsMap()
164        {
165            if ( pluginMap == null )
166            {
167                pluginMap = new java.util.LinkedHashMap<String, Plugin>();
168                if ( plugins != null )
169                {
170                    for ( java.util.Iterator<Plugin> it = plugins.iterator(); it.hasNext(); )
171                    {
172                        Plugin plugin = (Plugin) it.next();
173                        pluginMap.put( plugin.getKey(), plugin );
174                    }
175                }
176            }
177    
178            return pluginMap;
179        }
180                
181              
182    }