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