//# 0 errors, 273 messages
//#
/*
    //#ActionGroup.java:1:1: class: com.dmdirc.actions.ActionGroup
    //#ActionGroup.java:1:1: method: com.dmdirc.actions.ActionGroup.com.dmdirc.actions.ActionGroup__static_init
 * Copyright (c) 2006-2009 Chris Smith, Shane Mc Cormack, Gregory Holmes
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 */

package com.dmdirc.actions;

import com.dmdirc.config.prefs.PreferencesSetting;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

/**
 * Represents a group of actions, along with their meta-data.
 * 
 * @author chris
 */
public class ActionGroup implements Iterable<Action> {
    
    /**
     * A version number for this class. It should be changed whenever the class
     * structure is changed (or anything else that would prevent serialized
     * objects being unserialized with the new class).
     */
    private static final long serialVersionUID = 1;    
    
    /** The actions in this group. */
    private final List<Action> actions = new ArrayList<Action>();
    
    /** The name of this action group. */
    private final String name;
    
    /** The description of this action group. */
    private String description = null;
    
    /** The author of this action group. */
    private String author = null;
    
    /** The component number of this action group (for updating). */
    private int component = -1;
    
    /** The version number of this action group. */
    private int version = -1;
    
    /** A list of settings used by this action group. */
    private final Map<String, PreferencesSetting> settings
            = new HashMap<String, PreferencesSetting>();

    /**
     * Creates a new instance of ActionGroup.
     * 
     * @param name The name of this action group
     */
    public ActionGroup(final String name) {
        super();
    //#ActionGroup.java:75: method: void com.dmdirc.actions.ActionGroup.com.dmdirc.actions.ActionGroup(String)
    //#input(void com.dmdirc.actions.ActionGroup(String)): name
    //#input(void com.dmdirc.actions.ActionGroup(String)): this
    //#output(void com.dmdirc.actions.ActionGroup(String)): new ArrayList(ActionGroup#1) num objects
    //#output(void com.dmdirc.actions.ActionGroup(String)): new HashMap(ActionGroup#2) num objects
    //#output(void com.dmdirc.actions.ActionGroup(String)): this.actions
    //#output(void com.dmdirc.actions.ActionGroup(String)): this.author
    //#output(void com.dmdirc.actions.ActionGroup(String)): this.component
    //#output(void com.dmdirc.actions.ActionGroup(String)): this.description
    //#output(void com.dmdirc.actions.ActionGroup(String)): this.name
    //#output(void com.dmdirc.actions.ActionGroup(String)): this.settings
    //#output(void com.dmdirc.actions.ActionGroup(String)): this.version
    //#new obj(void com.dmdirc.actions.ActionGroup(String)): new ArrayList(ActionGroup#1)
    //#new obj(void com.dmdirc.actions.ActionGroup(String)): new HashMap(ActionGroup#2)
    //#post(void com.dmdirc.actions.ActionGroup(String)): this.actions == &new ArrayList(ActionGroup#1)
    //#post(void com.dmdirc.actions.ActionGroup(String)): this.author == null
    //#post(void com.dmdirc.actions.ActionGroup(String)): this.description == null
    //#post(void com.dmdirc.actions.ActionGroup(String)): this.component == -1
    //#post(void com.dmdirc.actions.ActionGroup(String)): this.version == -1
    //#post(void com.dmdirc.actions.ActionGroup(String)): this.name == name
    //#post(void com.dmdirc.actions.ActionGroup(String)): init'ed(this.name)
    //#post(void com.dmdirc.actions.ActionGroup(String)): this.settings == &new HashMap(ActionGroup#2)
    //#post(void com.dmdirc.actions.ActionGroup(String)): new ArrayList(ActionGroup#1) num objects == 1
    //#post(void com.dmdirc.actions.ActionGroup(String)): new HashMap(ActionGroup#2) num objects == 1
        
        this.name = name;
    }
    //#ActionGroup.java:78: end of method: void com.dmdirc.actions.ActionGroup.com.dmdirc.actions.ActionGroup(String)

    /**
     * Retrieves the author of this ActionGroup.
     * 
     * @return This action group's author, or null if the author isn't specified
     */
    public String getAuthor() {
        return author;
    //#ActionGroup.java:86: method: String com.dmdirc.actions.ActionGroup.getAuthor()
    //#input(String getAuthor()): this
    //#input(String getAuthor()): this.author
    //#output(String getAuthor()): return_value
    //#pre[2] (String getAuthor()): init'ed(this.author)
    //#post(String getAuthor()): return_value == this.author
    //#post(String getAuthor()): init'ed(return_value)
    //#ActionGroup.java:86: end of method: String com.dmdirc.actions.ActionGroup.getAuthor()
    }

    /**
     * Sets the author of this ActionGroup.
     * 
     * @param author The new author for this action group
     */
    public void setAuthor(final String author) {
        this.author = author;
    //#ActionGroup.java:95: method: void com.dmdirc.actions.ActionGroup.setAuthor(String)
    //#input(void setAuthor(String)): author
    //#input(void setAuthor(String)): this
    //#output(void setAuthor(String)): this.author
    //#post(void setAuthor(String)): this.author == author
    //#post(void setAuthor(String)): init'ed(this.author)
    }
    //#ActionGroup.java:96: end of method: void com.dmdirc.actions.ActionGroup.setAuthor(String)

    /**
     * Retrieves the description of this action group.
     * 
     * @return This action group's description, or null if none is specified
     */
    public String getDescription() {
        return description;
    //#ActionGroup.java:104: method: String com.dmdirc.actions.ActionGroup.getDescription()
    //#input(String getDescription()): this
    //#input(String getDescription()): this.description
    //#output(String getDescription()): return_value
    //#pre[2] (String getDescription()): init'ed(this.description)
    //#post(String getDescription()): return_value == this.description
    //#post(String getDescription()): init'ed(return_value)
    //#ActionGroup.java:104: end of method: String com.dmdirc.actions.ActionGroup.getDescription()
    }

    /**
     * Sets the description for this action group.
     * 
     * @param description The new description for this action group
     */
    public void setDescription(final String description) {
        this.description = description;
    //#ActionGroup.java:113: method: void com.dmdirc.actions.ActionGroup.setDescription(String)
    //#input(void setDescription(String)): description
    //#input(void setDescription(String)): this
    //#output(void setDescription(String)): this.description
    //#post(void setDescription(String)): this.description == description
    //#post(void setDescription(String)): init'ed(this.description)
    }
    //#ActionGroup.java:114: end of method: void com.dmdirc.actions.ActionGroup.setDescription(String)

    /**
     * Retrieves the name of this action group.
     * 
     * @return This action group's name
     */
    public String getName() {
        return name;
    //#ActionGroup.java:122: method: String com.dmdirc.actions.ActionGroup.getName()
    //#input(String getName()): this
    //#input(String getName()): this.name
    //#output(String getName()): return_value
    //#post(String getName()): return_value == this.name
    //#post(String getName()): init'ed(return_value)
    //#ActionGroup.java:122: end of method: String com.dmdirc.actions.ActionGroup.getName()
    }

    /**
     * Retrieves a map settings used by this action group.
     * 
     * @return A map of setting names to values
     */
    public Map<String, PreferencesSetting> getSettings() {
        return settings;
    //#ActionGroup.java:131: method: Map com.dmdirc.actions.ActionGroup.getSettings()
    //#input(Map getSettings()): this
    //#input(Map getSettings()): this.settings
    //#output(Map getSettings()): return_value
    //#post(Map getSettings()): return_value == this.settings
    //#post(Map getSettings()): init'ed(return_value)
    //#ActionGroup.java:131: end of method: Map com.dmdirc.actions.ActionGroup.getSettings()
    }

    /**
     * Retrieves the version number of this action group.
     * 
     * @return This action group's version number, or -1 if none is specified.
     */
    public int getVersion() {
        return version;
    //#ActionGroup.java:140: method: int com.dmdirc.actions.ActionGroup.getVersion()
    //#input(int getVersion()): this
    //#input(int getVersion()): this.version
    //#output(int getVersion()): return_value
    //#pre[2] (int getVersion()): init'ed(this.version)
    //#post(int getVersion()): return_value == this.version
    //#post(int getVersion()): init'ed(return_value)
    //#ActionGroup.java:140: end of method: int com.dmdirc.actions.ActionGroup.getVersion()
    }

    /**
     * Sets the version of this action group.
     * 
     * @param version This action group's new version number.
     */
    public void setVersion(final int version) {
        this.version = version;
    //#ActionGroup.java:149: method: void com.dmdirc.actions.ActionGroup.setVersion(int)
    //#input(void setVersion(int)): this
    //#input(void setVersion(int)): version
    //#output(void setVersion(int)): this.version
    //#post(void setVersion(int)): this.version == version
    //#post(void setVersion(int)): init'ed(this.version)
    }
    //#ActionGroup.java:150: end of method: void com.dmdirc.actions.ActionGroup.setVersion(int)

    /**
     * Retrieves the addon site component number for this action group.
     * 
     * @return The component number for this action group, or -1 if none is
     * specified.
     */
    public int getComponent() {
        return component;
    //#ActionGroup.java:159: method: int com.dmdirc.actions.ActionGroup.getComponent()
    //#input(int getComponent()): this
    //#input(int getComponent()): this.component
    //#output(int getComponent()): return_value
    //#pre[2] (int getComponent()): init'ed(this.component)
    //#post(int getComponent()): return_value == this.component
    //#post(int getComponent()): init'ed(return_value)
    //#ActionGroup.java:159: end of method: int com.dmdirc.actions.ActionGroup.getComponent()
    }

    /**
     * Sets the addon site component number for this action group.
     * 
     * @param component The component number for this action group
     */
    public void setComponent(final int component) {
        this.component = component;
    //#ActionGroup.java:168: method: void com.dmdirc.actions.ActionGroup.setComponent(int)
    //#input(void setComponent(int)): component
    //#input(void setComponent(int)): this
    //#output(void setComponent(int)): this.component
    //#post(void setComponent(int)): this.component == component
    //#post(void setComponent(int)): init'ed(this.component)
    }
    //#ActionGroup.java:169: end of method: void com.dmdirc.actions.ActionGroup.setComponent(int)
    
    /**
     * Determines the size of this group.
     * 
     * @return The size of this group
     */
    public int size() {
        return actions.size();
    //#ActionGroup.java:177: method: int com.dmdirc.actions.ActionGroup.size()
    //#input(int size()): this
    //#input(int size()): this.actions
    //#output(int size()): return_value
    //#pre[2] (int size()): this.actions != null
    //#post(int size()): init'ed(return_value)
    //#ActionGroup.java:177: end of method: int com.dmdirc.actions.ActionGroup.size()
    }

    /**
     * Removes the specified action from this group.
     * 
     * @param action The action to be removed
     */
    public void remove(final Action action) {
        actions.remove(action);
    //#ActionGroup.java:186: method: void com.dmdirc.actions.ActionGroup.remove(Action)
    //#input(void remove(Action)): action
    //#input(void remove(Action)): this
    //#input(void remove(Action)): this.actions
    //#pre[3] (void remove(Action)): this.actions != null
    }
    //#ActionGroup.java:187: end of method: void com.dmdirc.actions.ActionGroup.remove(Action)

    /** {@inheritDoc} */
    @Override
    public Iterator<Action> iterator() {
        return actions.iterator();
    //#ActionGroup.java:192: method: Iterator com.dmdirc.actions.ActionGroup.iterator()
    //#input(Iterator iterator()): this
    //#input(Iterator iterator()): this.actions
    //#output(Iterator iterator()): return_value
    //#pre[2] (Iterator iterator()): this.actions != null
    //#post(Iterator iterator()): return_value != null
    //#ActionGroup.java:192: end of method: Iterator com.dmdirc.actions.ActionGroup.iterator()
    }

    /**
     * Retrieves the action at the specified index.
     * 
     * @param index The index of the action to return
     * @return The action at the specified index
     */
    public Action get(final int index) {
        return actions.get(index);
    //#ActionGroup.java:202: method: Action com.dmdirc.actions.ActionGroup.get(int)
    //#input(Action get(int)): com/dmdirc/actions/Action.__Descendant_Table[com/dmdirc/actions/Action]
    //#input(Action get(int)): com/dmdirc/actions/Action.__Descendant_Table[others]
    //#input(Action get(int)): index
    //#input(Action get(int)): this
    //#input(Action get(int)): this.actions
    //#output(Action get(int)): return_value
    //#pre[3] (Action get(int)): this.actions != null
    //#presumption(Action get(int)): java.util.List:get(...).__Tag@202 == com/dmdirc/actions/Action
    //#post(Action get(int)): init'ed(return_value)
    //#ActionGroup.java:202: end of method: Action com.dmdirc.actions.ActionGroup.get(int)
    }

    /**
     * Determines if this group contains the specified action.
     * 
     * @param action The action to search for
     * @return True if the action is contained in this list, false otherwise
     */
    public boolean contains(final Action action) {
        return actions.contains(action);
    //#ActionGroup.java:212: method: bool com.dmdirc.actions.ActionGroup.contains(Action)
    //#input(bool contains(Action)): action
    //#input(bool contains(Action)): this
    //#input(bool contains(Action)): this.actions
    //#output(bool contains(Action)): return_value
    //#pre[3] (bool contains(Action)): this.actions != null
    //#post(bool contains(Action)): init'ed(return_value)
    //#ActionGroup.java:212: end of method: bool com.dmdirc.actions.ActionGroup.contains(Action)
    }

    /**
     * Removes all actions from this group, and removes all meta-data.
     */
    public void clear() {
        for (Action action : new ArrayList<Action>(actions)) {
    //#ActionGroup.java:219: method: void com.dmdirc.actions.ActionGroup.clear()
    //#ActionGroup.java:219: Warning: suspicious precondition
    //#    The precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.actions.ActionGroup
    //#    method: void clear()
    //#    suspicious precondition index: [4]
    //#    Attribs:  Soft
    //#input(void clear()): __Descendant_Table[com/dmdirc/actions/ActionGroup]
    //#input(void clear()): __Descendant_Table[com/dmdirc/actions/wrappers/AliasWrapper]
    //#input(void clear()): __Descendant_Table[com/dmdirc/actions/wrappers/PerformWrapper]
    //#input(void clear()): __Descendant_Table[others]
    //#input(void clear()): __Dispatch_Table.remove(Lcom/dmdirc/actions/Action;)V
    //#input(void clear()): com/dmdirc/Server.__Descendant_Table[com/dmdirc/Server]
    //#input(void clear()): com/dmdirc/Server.__Descendant_Table[others]
    //#input(void clear()): com/dmdirc/Server.__Dispatch_Table.getTabCompleter()Lcom/dmdirc/ui/input/TabCompleter;
    //#input(void clear()): com/dmdirc/ServerManager.__Class_Obj.__Lock
    //#input(void clear()): com/dmdirc/ServerManager.me.servers
    //#input(void clear()): com/dmdirc/actions/Action.__Descendant_Table[com/dmdirc/actions/Action]
    //#input(void clear()): com/dmdirc/actions/Action.__Descendant_Table[others]
    //#input(void clear()): com/dmdirc/actions/Action.__Dispatch_Table.getConditions()Ljava/util/List;
    //#input(void clear()): com/dmdirc/actions/Action.__Dispatch_Table.getTriggers()[Lcom/dmdirc/actions/interfaces/ActionType;
    //#input(void clear()): com/dmdirc/actions/ActionCondition.__Descendant_Table[com/dmdirc/actions/ActionCondition]
    //#input(void clear()): com/dmdirc/actions/ActionCondition.__Descendant_Table[others]
    //#input(void clear()): com/dmdirc/actions/ActionCondition.__Dispatch_Table.getArg()I
    //#input(void clear()): com/dmdirc/actions/ActionCondition.__Dispatch_Table.getTarget()Ljava/lang/String;
    //#input(void clear()): com/dmdirc/actions/CoreActionType.UNKNOWN_COMMAND
    //#input(void clear()): com/dmdirc/actions/wrappers/AliasWrapper.__Dispatch_Table.remove(Lcom/dmdirc/actions/Action;)V
    //#input(void clear()): com/dmdirc/actions/wrappers/AliasWrapper.com.dmdirc.ui.input.TabCompletionType.COMMAND
    //#input(void clear()): com/dmdirc/actions/wrappers/PerformWrapper.__Dispatch_Table.remove(Lcom/dmdirc/actions/Action;)V
    //#input(void clear()): this
    //#input(void clear()): this.__Tag
    //#input(void clear()): this.actions
    //#input(void clear()): this.aliases
    //#input(void clear()): this.settings
    //#output(void clear()): com/dmdirc/ServerManager.me
    //#output(void clear()): new ArrayList(ServerManager#1) num objects
    //#output(void clear()): new ServerManager(getServerManager#1) num objects
    //#output(void clear()): new ServerManager(getServerManager#1).__Tag
    //#output(void clear()): new ServerManager(getServerManager#1).servers
    //#output(void clear()): this.author
    //#output(void clear()): this.component
    //#output(void clear()): this.description
    //#output(void clear()): this.version
    //#new obj(void clear()): new ArrayList(ServerManager#1)
    //#new obj(void clear()): new ServerManager(getServerManager#1)
    //#pre[7] (void clear()): this.settings != null
    //#pre[4] (void clear()): (soft) this.__Tag in {com/dmdirc/actions/ActionGroup, com/dmdirc/actions/wrappers/AliasWrapper, com/dmdirc/actions/wrappers/PerformWrapper}
    //#pre[5] (void clear()): (soft) this.actions != null
    //#presumption(void clear()): java.util.ArrayList:iterator(...)@219 != null
    //#presumption(void clear()): java.util.Iterator:next(...).__Tag@219 == com/dmdirc/actions/Action
    //#post(void clear()): possibly_updated(com/dmdirc/ServerManager.me)
    //#post(void clear()): this.author == null
    //#post(void clear()): this.description == null
    //#post(void clear()): this.component == -1
    //#post(void clear()): this.version == -1
    //#post(void clear()): init'ed(new ArrayList(ServerManager#1) num objects)
    //#post(void clear()): init'ed(new ServerManager(getServerManager#1) num objects)
    //#post(void clear()): init'ed(new ServerManager(getServerManager#1).__Tag)
    //#post(void clear()): init'ed(new ServerManager(getServerManager#1).servers)
    //#unanalyzed(void clear()): Effects-of-calling:java.util.List:remove
    //#unanalyzed(void clear()): Effects-of-calling:remove
    //#unanalyzed(void clear()): Effects-of-calling:getTriggers
    //#unanalyzed(void clear()): Effects-of-calling:java.lang.Object:equals
    //#unanalyzed(void clear()): Effects-of-calling:getCommandName
    //#unanalyzed(void clear()): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void clear()): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void clear()): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void clear()): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void clear()): Effects-of-calling:getTabCompleter
    //#unanalyzed(void clear()): Effects-of-calling:com.dmdirc.ui.input.TabCompleter:removeEntry
    //#unanalyzed(void clear()): Effects-of-calling:getConditions
    //#unanalyzed(void clear()): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void clear()): Effects-of-calling:com.dmdirc.commandparser.CommandManager:getCommandChar
    //#unanalyzed(void clear()): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void clear()): Effects-of-calling:java.lang.StringBuilder:toString
    //#test_vector(void clear()): java.util.Iterator:hasNext(...)@219: {0}, {1}
            remove(action);
        }
        
        settings.clear();
        description = null;
        author = null;
        component = -1;
        version = -1;
    }
    //#ActionGroup.java:228: end of method: void com.dmdirc.actions.ActionGroup.clear()

    /**
     * Adds the specified action to this group.
     * 
     * @param action The action to be added
     */
    public void add(final Action action) {
        actions.add(action);
    //#ActionGroup.java:236: method: void com.dmdirc.actions.ActionGroup.add(Action)
    //#input(void add(Action)): action
    //#input(void add(Action)): this
    //#input(void add(Action)): this.actions
    //#pre[3] (void add(Action)): this.actions != null
    }
    //#ActionGroup.java:237: end of method: void com.dmdirc.actions.ActionGroup.add(Action)
    
    /**
     * Retrieves a copy of the list of all actions in this group.
     * 
     * @return A list of actions in this group
     */
    public List<Action> getActions() {
        return new ArrayList<Action>(actions);
    //#ActionGroup.java:245: method: List com.dmdirc.actions.ActionGroup.getActions()
    //#input(List getActions()): this
    //#input(List getActions()): this.actions
    //#output(List getActions()): new ArrayList(getActions#1) num objects
    //#output(List getActions()): return_value
    //#new obj(List getActions()): new ArrayList(getActions#1)
    //#post(List getActions()): return_value == &new ArrayList(getActions#1)
    //#post(List getActions()): new ArrayList(getActions#1) num objects == 1
    //#ActionGroup.java:245: end of method: List com.dmdirc.actions.ActionGroup.getActions()
    }
    
    /**
     * Determines if this action group is delible or not.
     * 
     * @return True if the group may be deleted, false if it may not.
     */
    public boolean isDelible() {
        return true;
    //#ActionGroup.java:254: method: bool com.dmdirc.actions.ActionGroup.isDelible()
    //#output(bool isDelible()): return_value
    //#post(bool isDelible()): return_value == 1
    //#ActionGroup.java:254: end of method: bool com.dmdirc.actions.ActionGroup.isDelible()
    }
    
}
    //#output(com.dmdirc.actions.ActionGroup__static_init): __Descendant_Table[com/dmdirc/actions/ActionGroup]
    //#output(com.dmdirc.actions.ActionGroup__static_init): __Dispatch_Table.add(Lcom/dmdirc/actions/Action;)V
    //#output(com.dmdirc.actions.ActionGroup__static_init): __Dispatch_Table.clear()V
    //#output(com.dmdirc.actions.ActionGroup__static_init): __Dispatch_Table.contains(Lcom/dmdirc/actions/Action;)Z
    //#output(com.dmdirc.actions.ActionGroup__static_init): __Dispatch_Table.get(I)Lcom/dmdirc/actions/Action;
    //#output(com.dmdirc.actions.ActionGroup__static_init): __Dispatch_Table.getActions()Ljava/util/List;
    //#output(com.dmdirc.actions.ActionGroup__static_init): __Dispatch_Table.getAuthor()Ljava/lang/String;
    //#output(com.dmdirc.actions.ActionGroup__static_init): __Dispatch_Table.getComponent()I
    //#output(com.dmdirc.actions.ActionGroup__static_init): __Dispatch_Table.getDescription()Ljava/lang/String;
    //#output(com.dmdirc.actions.ActionGroup__static_init): __Dispatch_Table.getName()Ljava/lang/String;
    //#output(com.dmdirc.actions.ActionGroup__static_init): __Dispatch_Table.getSettings()Ljava/util/Map;
    //#output(com.dmdirc.actions.ActionGroup__static_init): __Dispatch_Table.getVersion()I
    //#output(com.dmdirc.actions.ActionGroup__static_init): __Dispatch_Table.isDelible()Z
    //#output(com.dmdirc.actions.ActionGroup__static_init): __Dispatch_Table.iterator()Ljava/util/Iterator;
    //#output(com.dmdirc.actions.ActionGroup__static_init): __Dispatch_Table.remove(Lcom/dmdirc/actions/Action;)V
    //#output(com.dmdirc.actions.ActionGroup__static_init): __Dispatch_Table.setAuthor(Ljava/lang/String;)V
    //#output(com.dmdirc.actions.ActionGroup__static_init): __Dispatch_Table.setComponent(I)V
    //#output(com.dmdirc.actions.ActionGroup__static_init): __Dispatch_Table.setDescription(Ljava/lang/String;)V
    //#output(com.dmdirc.actions.ActionGroup__static_init): __Dispatch_Table.setVersion(I)V
    //#output(com.dmdirc.actions.ActionGroup__static_init): __Dispatch_Table.size()I
    //#post(com.dmdirc.actions.ActionGroup__static_init): __Descendant_Table[com/dmdirc/actions/ActionGroup] == &__Dispatch_Table
    //#post(com.dmdirc.actions.ActionGroup__static_init): __Dispatch_Table.add(Lcom/dmdirc/actions/Action;)V == &add
    //#post(com.dmdirc.actions.ActionGroup__static_init): __Dispatch_Table.clear()V == &clear
    //#post(com.dmdirc.actions.ActionGroup__static_init): __Dispatch_Table.contains(Lcom/dmdirc/actions/Action;)Z == &contains
    //#post(com.dmdirc.actions.ActionGroup__static_init): __Dispatch_Table.get(I)Lcom/dmdirc/actions/Action; == &get
    //#post(com.dmdirc.actions.ActionGroup__static_init): __Dispatch_Table.getActions()Ljava/util/List; == &getActions
    //#post(com.dmdirc.actions.ActionGroup__static_init): __Dispatch_Table.getAuthor()Ljava/lang/String; == &getAuthor
    //#post(com.dmdirc.actions.ActionGroup__static_init): __Dispatch_Table.getComponent()I == &getComponent
    //#post(com.dmdirc.actions.ActionGroup__static_init): __Dispatch_Table.getDescription()Ljava/lang/String; == &getDescription
    //#post(com.dmdirc.actions.ActionGroup__static_init): __Dispatch_Table.getName()Ljava/lang/String; == &getName
    //#post(com.dmdirc.actions.ActionGroup__static_init): __Dispatch_Table.getSettings()Ljava/util/Map; == &getSettings
    //#post(com.dmdirc.actions.ActionGroup__static_init): __Dispatch_Table.getVersion()I == &getVersion
    //#post(com.dmdirc.actions.ActionGroup__static_init): __Dispatch_Table.isDelible()Z == &isDelible
    //#post(com.dmdirc.actions.ActionGroup__static_init): __Dispatch_Table.iterator()Ljava/util/Iterator; == &iterator
    //#post(com.dmdirc.actions.ActionGroup__static_init): __Dispatch_Table.remove(Lcom/dmdirc/actions/Action;)V == &remove
    //#post(com.dmdirc.actions.ActionGroup__static_init): __Dispatch_Table.setAuthor(Ljava/lang/String;)V == &setAuthor
    //#post(com.dmdirc.actions.ActionGroup__static_init): __Dispatch_Table.setComponent(I)V == &setComponent
    //#post(com.dmdirc.actions.ActionGroup__static_init): __Dispatch_Table.setDescription(Ljava/lang/String;)V == &setDescription
    //#post(com.dmdirc.actions.ActionGroup__static_init): __Dispatch_Table.setVersion(I)V == &setVersion
    //#post(com.dmdirc.actions.ActionGroup__static_init): __Dispatch_Table.size()I == &size
    //#ActionGroup.java:: end of method: com.dmdirc.actions.ActionGroup.com.dmdirc.actions.ActionGroup__static_init
    //#ActionGroup.java:: end of class: com.dmdirc.actions.ActionGroup
