//# 0 errors, 95 messages
//#
/*
    //#TimeActionType.java:1:1: class: com.dmdirc.addons.time.TimeActionType
 * 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.addons.time;

import com.dmdirc.actions.interfaces.ActionMetaType;
import com.dmdirc.actions.interfaces.ActionType;

/**
 * Lists the actions that the time plugin will raise.
 * @author chris
 */
public enum TimeActionType implements ActionType {
    //#TimeActionType.java:32: method: TimeActionType[] com.dmdirc.addons.time.TimeActionType.values()
    //#input(TimeActionType[] values()): $VALUES
    //#input(TimeActionType[] values()): $VALUES.length
    //#input(TimeActionType[] values()): $VALUES[0..3]
    //#output(TimeActionType[] values()): new TimeActionType[](values#1) num objects
    //#output(TimeActionType[] values()): return_value.length
    //#output(TimeActionType[] values()): return_value[0..3]
    //#output(TimeActionType[] values()): return_value
    //#new obj(TimeActionType[] values()): new TimeActionType[](values#1)
    //#pre[1] (TimeActionType[] values()): (soft) init'ed($VALUES[0..3])
    //#post(TimeActionType[] values()): return_value == &new TimeActionType[](values#1)
    //#post(TimeActionType[] values()): new TimeActionType[](values#1) num objects == 1
    //#post(TimeActionType[] values()): return_value.length == 3
    //#post(TimeActionType[] values()): return_value[0..3] == One-of{$VALUES[0..3], undefined}
    //#TimeActionType.java:32: end of method: TimeActionType[] com.dmdirc.addons.time.TimeActionType.values()
    //#TimeActionType.java:32: method: TimeActionType com.dmdirc.addons.time.TimeActionType.valueOf(String)
    //#input(TimeActionType valueOf(String)): __Descendant_Table[com/dmdirc/addons/time/TimeActionType]
    //#input(TimeActionType valueOf(String)): __Descendant_Table[others]
    //#input(TimeActionType valueOf(String)): name
    //#output(TimeActionType valueOf(String)): return_value
    //#presumption(TimeActionType valueOf(String)): java.lang.Enum:valueOf(...).__Tag@32 == com/dmdirc/addons/time/TimeActionType
    //#post(TimeActionType valueOf(String)): init'ed(return_value)
    //#TimeActionType.java:32: end of method: TimeActionType com.dmdirc.addons.time.TimeActionType.valueOf(String)
    
    /** Minute type. */
    TIME_MINUTE("Every minute"),
    //#TimeActionType.java:35: method: com.dmdirc.addons.time.TimeActionType.com.dmdirc.addons.time.TimeActionType__static_init
    //#output(com.dmdirc.addons.time.TimeActionType__static_init): $VALUES
    //#output(com.dmdirc.addons.time.TimeActionType__static_init): TIME_DAY
    //#output(com.dmdirc.addons.time.TimeActionType__static_init): TIME_HOUR
    //#output(com.dmdirc.addons.time.TimeActionType__static_init): TIME_MINUTE
    //#output(com.dmdirc.addons.time.TimeActionType__static_init): __Descendant_Table[com/dmdirc/addons/time/TimeActionType]
    //#output(com.dmdirc.addons.time.TimeActionType__static_init): __Dispatch_Table.getName()Ljava/lang/String;
    //#output(com.dmdirc.addons.time.TimeActionType__static_init): __Dispatch_Table.getType()Lcom/dmdirc/actions/interfaces/ActionMetaType;
    //#output(com.dmdirc.addons.time.TimeActionType__static_init): new TimeActionType(TimeActionType__static_init#1) num objects
    //#output(com.dmdirc.addons.time.TimeActionType__static_init): TIME_MINUTE.__Tag
    //#output(com.dmdirc.addons.time.TimeActionType__static_init): TIME_MINUTE.name
    //#output(com.dmdirc.addons.time.TimeActionType__static_init): new TimeActionType(TimeActionType__static_init#2) num objects
    //#output(com.dmdirc.addons.time.TimeActionType__static_init): TIME_HOUR.__Tag
    //#output(com.dmdirc.addons.time.TimeActionType__static_init): TIME_HOUR.name
    //#output(com.dmdirc.addons.time.TimeActionType__static_init): new TimeActionType(TimeActionType__static_init#3) num objects
    //#output(com.dmdirc.addons.time.TimeActionType__static_init): TIME_DAY.__Tag
    //#output(com.dmdirc.addons.time.TimeActionType__static_init): TIME_DAY.name
    //#output(com.dmdirc.addons.time.TimeActionType__static_init): new TimeActionType[](TimeActionType__static_init#4) num objects
    //#output(com.dmdirc.addons.time.TimeActionType__static_init): $VALUES.length
    //#output(com.dmdirc.addons.time.TimeActionType__static_init): $VALUES[0]
    //#output(com.dmdirc.addons.time.TimeActionType__static_init): $VALUES[1]
    //#output(com.dmdirc.addons.time.TimeActionType__static_init): $VALUES[2]
    //#new obj(com.dmdirc.addons.time.TimeActionType__static_init): new TimeActionType(TimeActionType__static_init#1)
    //#new obj(com.dmdirc.addons.time.TimeActionType__static_init): new TimeActionType(TimeActionType__static_init#2)
    //#new obj(com.dmdirc.addons.time.TimeActionType__static_init): new TimeActionType(TimeActionType__static_init#3)
    //#new obj(com.dmdirc.addons.time.TimeActionType__static_init): new TimeActionType[](TimeActionType__static_init#4)
    //#post(com.dmdirc.addons.time.TimeActionType__static_init): $VALUES == &new TimeActionType[](TimeActionType__static_init#4)
    //#post(com.dmdirc.addons.time.TimeActionType__static_init): TIME_DAY == &new TimeActionType(TimeActionType__static_init#3)
    //#post(com.dmdirc.addons.time.TimeActionType__static_init): $VALUES[2] == &new TimeActionType(TimeActionType__static_init#3)
    //#post(com.dmdirc.addons.time.TimeActionType__static_init): TIME_HOUR == &new TimeActionType(TimeActionType__static_init#2)
    //#post(com.dmdirc.addons.time.TimeActionType__static_init): $VALUES[1] == &new TimeActionType(TimeActionType__static_init#2)
    //#post(com.dmdirc.addons.time.TimeActionType__static_init): TIME_MINUTE == &new TimeActionType(TimeActionType__static_init#1)
    //#post(com.dmdirc.addons.time.TimeActionType__static_init): $VALUES[0] == &new TimeActionType(TimeActionType__static_init#1)
    //#post(com.dmdirc.addons.time.TimeActionType__static_init): __Descendant_Table[com/dmdirc/addons/time/TimeActionType] == &__Dispatch_Table
    //#post(com.dmdirc.addons.time.TimeActionType__static_init): __Dispatch_Table.getName()Ljava/lang/String; == &getName
    //#post(com.dmdirc.addons.time.TimeActionType__static_init): __Dispatch_Table.getType()Lcom/dmdirc/actions/interfaces/ActionMetaType; == &getType
    //#post(com.dmdirc.addons.time.TimeActionType__static_init): new TimeActionType(TimeActionType__static_init#1) num objects == 1
    //#post(com.dmdirc.addons.time.TimeActionType__static_init): new TimeActionType(TimeActionType__static_init#2) num objects == 1
    //#post(com.dmdirc.addons.time.TimeActionType__static_init): new TimeActionType(TimeActionType__static_init#3) num objects == 1
    //#post(com.dmdirc.addons.time.TimeActionType__static_init): new TimeActionType[](TimeActionType__static_init#4) num objects == 1
    //#post(com.dmdirc.addons.time.TimeActionType__static_init): TIME_MINUTE.__Tag == com/dmdirc/addons/time/TimeActionType
    //#post(com.dmdirc.addons.time.TimeActionType__static_init): TIME_HOUR.__Tag == com/dmdirc/addons/time/TimeActionType
    //#post(com.dmdirc.addons.time.TimeActionType__static_init): TIME_DAY.__Tag == com/dmdirc/addons/time/TimeActionType
    //#post(com.dmdirc.addons.time.TimeActionType__static_init): TIME_MINUTE.name == &"Every minute"
    //#post(com.dmdirc.addons.time.TimeActionType__static_init): TIME_HOUR.name == &"Every hour"
    //#post(com.dmdirc.addons.time.TimeActionType__static_init): TIME_DAY.name == &"Every day"
    //#post(com.dmdirc.addons.time.TimeActionType__static_init): $VALUES.length == 3
    //#unanalyzed(com.dmdirc.addons.time.TimeActionType__static_init): Effects-of-calling:java.lang.Enum
    /** Hour type. */
    TIME_HOUR("Every hour"),
    /** Day type. */
    TIME_DAY("Every day");
    //#TimeActionType.java:39: end of method: com.dmdirc.addons.time.TimeActionType.com.dmdirc.addons.time.TimeActionType__static_init
    
    /** Action type name. */
    private final String name;
    
    /**
     * Creates a new instance of a TimeActionType.
     * @param name The name of the action type
     */
    TimeActionType(final String name) {
    //#TimeActionType.java:48: method: void com.dmdirc.addons.time.TimeActionType.com.dmdirc.addons.time.TimeActionType(String, int, String)
    //#input(void com.dmdirc.addons.time.TimeActionType(String, int, String)): Param_1
    //#input(void com.dmdirc.addons.time.TimeActionType(String, int, String)): Param_2
    //#input(void com.dmdirc.addons.time.TimeActionType(String, int, String)): name
    //#input(void com.dmdirc.addons.time.TimeActionType(String, int, String)): this
    //#output(void com.dmdirc.addons.time.TimeActionType(String, int, String)): this.name
    //#post(void com.dmdirc.addons.time.TimeActionType(String, int, String)): this.name == name
    //#post(void com.dmdirc.addons.time.TimeActionType(String, int, String)): init'ed(this.name)
        this.name = name;
    }
    //#TimeActionType.java:50: end of method: void com.dmdirc.addons.time.TimeActionType.com.dmdirc.addons.time.TimeActionType(String, int, String)
    
    /** {@inheritDoc} */
    @Override
    public ActionMetaType getType() {
        return TimeActionMetaType.TIME_TIME;
    //#TimeActionType.java:55: method: ActionMetaType com.dmdirc.addons.time.TimeActionType.getType()
    //#input(ActionMetaType getType()): com/dmdirc/addons/time/TimeActionMetaType.TIME_TIME
    //#output(ActionMetaType getType()): return_value
    //#post(ActionMetaType getType()): return_value == &com.dmdirc.addons.time.TimeActionMetaType__static_init.new TimeActionMetaType$1(TimeActionMetaType__static_init#1)
    //#TimeActionType.java:55: end of method: ActionMetaType com.dmdirc.addons.time.TimeActionType.getType()
    }
    
    /** {@inheritDoc} */
    @Override
    public String getName() {
        return name;
    //#TimeActionType.java:61: method: String com.dmdirc.addons.time.TimeActionType.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)
    //#TimeActionType.java:61: end of method: String com.dmdirc.addons.time.TimeActionType.getName()
    }
    
}
    //#TimeActionType.java:: end of class: com.dmdirc.addons.time.TimeActionType
