//# 0 errors, 146 messages
//#
/*
    //#ErrorReportStatus.java:1:1: class: com.dmdirc.logger.ErrorReportStatus
 * 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.logger;

/**
 * Error report status.
 */
public enum ErrorReportStatus {
    //#ErrorReportStatus.java:28: method: ErrorReportStatus[] com.dmdirc.logger.ErrorReportStatus.values()
    //#input(ErrorReportStatus[] values()): $VALUES
    //#input(ErrorReportStatus[] values()): $VALUES.length
    //#input(ErrorReportStatus[] values()): $VALUES[0..6]
    //#output(ErrorReportStatus[] values()): new ErrorReportStatus[](values#1) num objects
    //#output(ErrorReportStatus[] values()): return_value.length
    //#output(ErrorReportStatus[] values()): return_value[0..6]
    //#output(ErrorReportStatus[] values()): return_value
    //#new obj(ErrorReportStatus[] values()): new ErrorReportStatus[](values#1)
    //#pre[1] (ErrorReportStatus[] values()): (soft) init'ed($VALUES[0..6])
    //#post(ErrorReportStatus[] values()): return_value == &new ErrorReportStatus[](values#1)
    //#post(ErrorReportStatus[] values()): new ErrorReportStatus[](values#1) num objects == 1
    //#post(ErrorReportStatus[] values()): return_value.length == 6
    //#post(ErrorReportStatus[] values()): return_value[0..6] == One-of{$VALUES[0..6], undefined}
    //#ErrorReportStatus.java:28: end of method: ErrorReportStatus[] com.dmdirc.logger.ErrorReportStatus.values()
    //#ErrorReportStatus.java:28: method: ErrorReportStatus com.dmdirc.logger.ErrorReportStatus.valueOf(String)
    //#input(ErrorReportStatus valueOf(String)): __Descendant_Table[com/dmdirc/logger/ErrorReportStatus]
    //#input(ErrorReportStatus valueOf(String)): __Descendant_Table[others]
    //#input(ErrorReportStatus valueOf(String)): name
    //#output(ErrorReportStatus valueOf(String)): return_value
    //#presumption(ErrorReportStatus valueOf(String)): java.lang.Enum:valueOf(...).__Tag@28 == com/dmdirc/logger/ErrorReportStatus
    //#post(ErrorReportStatus valueOf(String)): init'ed(return_value)
    //#ErrorReportStatus.java:28: end of method: ErrorReportStatus com.dmdirc.logger.ErrorReportStatus.valueOf(String)
    /** Not applicable. */
    NOT_APPLICABLE("Not applicable", true),
    //#ErrorReportStatus.java:30: method: com.dmdirc.logger.ErrorReportStatus.com.dmdirc.logger.ErrorReportStatus__static_init
    //#output(com.dmdirc.logger.ErrorReportStatus__static_init): $VALUES
    //#output(com.dmdirc.logger.ErrorReportStatus__static_init): ERROR
    //#output(com.dmdirc.logger.ErrorReportStatus__static_init): FINISHED
    //#output(com.dmdirc.logger.ErrorReportStatus__static_init): NOT_APPLICABLE
    //#output(com.dmdirc.logger.ErrorReportStatus__static_init): QUEUED
    //#output(com.dmdirc.logger.ErrorReportStatus__static_init): SENDING
    //#output(com.dmdirc.logger.ErrorReportStatus__static_init): WAITING
    //#output(com.dmdirc.logger.ErrorReportStatus__static_init): __Descendant_Table[com/dmdirc/logger/ErrorReportStatus]
    //#output(com.dmdirc.logger.ErrorReportStatus__static_init): __Dispatch_Table.isTerminal()Z
    //#output(com.dmdirc.logger.ErrorReportStatus__static_init): __Dispatch_Table.toString()Ljava/lang/String;
    //#output(com.dmdirc.logger.ErrorReportStatus__static_init): new ErrorReportStatus(ErrorReportStatus__static_init#1) num objects
    //#output(com.dmdirc.logger.ErrorReportStatus__static_init): NOT_APPLICABLE.__Tag
    //#output(com.dmdirc.logger.ErrorReportStatus__static_init): NOT_APPLICABLE.terminal
    //#output(com.dmdirc.logger.ErrorReportStatus__static_init): NOT_APPLICABLE.value
    //#output(com.dmdirc.logger.ErrorReportStatus__static_init): new ErrorReportStatus(ErrorReportStatus__static_init#2) num objects
    //#output(com.dmdirc.logger.ErrorReportStatus__static_init): FINISHED.__Tag
    //#output(com.dmdirc.logger.ErrorReportStatus__static_init): FINISHED.terminal
    //#output(com.dmdirc.logger.ErrorReportStatus__static_init): FINISHED.value
    //#output(com.dmdirc.logger.ErrorReportStatus__static_init): new ErrorReportStatus(ErrorReportStatus__static_init#3) num objects
    //#output(com.dmdirc.logger.ErrorReportStatus__static_init): SENDING.__Tag
    //#output(com.dmdirc.logger.ErrorReportStatus__static_init): SENDING.terminal
    //#output(com.dmdirc.logger.ErrorReportStatus__static_init): SENDING.value
    //#output(com.dmdirc.logger.ErrorReportStatus__static_init): new ErrorReportStatus(ErrorReportStatus__static_init#4) num objects
    //#output(com.dmdirc.logger.ErrorReportStatus__static_init): ERROR.__Tag
    //#output(com.dmdirc.logger.ErrorReportStatus__static_init): ERROR.terminal
    //#output(com.dmdirc.logger.ErrorReportStatus__static_init): ERROR.value
    //#output(com.dmdirc.logger.ErrorReportStatus__static_init): new ErrorReportStatus(ErrorReportStatus__static_init#5) num objects
    //#output(com.dmdirc.logger.ErrorReportStatus__static_init): QUEUED.__Tag
    //#output(com.dmdirc.logger.ErrorReportStatus__static_init): QUEUED.terminal
    //#output(com.dmdirc.logger.ErrorReportStatus__static_init): QUEUED.value
    //#output(com.dmdirc.logger.ErrorReportStatus__static_init): new ErrorReportStatus(ErrorReportStatus__static_init#6) num objects
    //#output(com.dmdirc.logger.ErrorReportStatus__static_init): WAITING.__Tag
    //#output(com.dmdirc.logger.ErrorReportStatus__static_init): WAITING.terminal
    //#output(com.dmdirc.logger.ErrorReportStatus__static_init): WAITING.value
    //#output(com.dmdirc.logger.ErrorReportStatus__static_init): new ErrorReportStatus[](ErrorReportStatus__static_init#7) num objects
    //#output(com.dmdirc.logger.ErrorReportStatus__static_init): $VALUES.length
    //#output(com.dmdirc.logger.ErrorReportStatus__static_init): $VALUES[0]
    //#output(com.dmdirc.logger.ErrorReportStatus__static_init): $VALUES[1]
    //#output(com.dmdirc.logger.ErrorReportStatus__static_init): $VALUES[2]
    //#output(com.dmdirc.logger.ErrorReportStatus__static_init): $VALUES[3]
    //#output(com.dmdirc.logger.ErrorReportStatus__static_init): $VALUES[4]
    //#output(com.dmdirc.logger.ErrorReportStatus__static_init): $VALUES[5]
    //#new obj(com.dmdirc.logger.ErrorReportStatus__static_init): new ErrorReportStatus(ErrorReportStatus__static_init#1)
    //#new obj(com.dmdirc.logger.ErrorReportStatus__static_init): new ErrorReportStatus(ErrorReportStatus__static_init#2)
    //#new obj(com.dmdirc.logger.ErrorReportStatus__static_init): new ErrorReportStatus(ErrorReportStatus__static_init#3)
    //#new obj(com.dmdirc.logger.ErrorReportStatus__static_init): new ErrorReportStatus(ErrorReportStatus__static_init#4)
    //#new obj(com.dmdirc.logger.ErrorReportStatus__static_init): new ErrorReportStatus(ErrorReportStatus__static_init#5)
    //#new obj(com.dmdirc.logger.ErrorReportStatus__static_init): new ErrorReportStatus(ErrorReportStatus__static_init#6)
    //#new obj(com.dmdirc.logger.ErrorReportStatus__static_init): new ErrorReportStatus[](ErrorReportStatus__static_init#7)
    //#post(com.dmdirc.logger.ErrorReportStatus__static_init): $VALUES == &new ErrorReportStatus[](ErrorReportStatus__static_init#7)
    //#post(com.dmdirc.logger.ErrorReportStatus__static_init): ERROR == &new ErrorReportStatus(ErrorReportStatus__static_init#4)
    //#post(com.dmdirc.logger.ErrorReportStatus__static_init): $VALUES[3] == &new ErrorReportStatus(ErrorReportStatus__static_init#4)
    //#post(com.dmdirc.logger.ErrorReportStatus__static_init): FINISHED == &new ErrorReportStatus(ErrorReportStatus__static_init#2)
    //#post(com.dmdirc.logger.ErrorReportStatus__static_init): $VALUES[1] == &new ErrorReportStatus(ErrorReportStatus__static_init#2)
    //#post(com.dmdirc.logger.ErrorReportStatus__static_init): NOT_APPLICABLE == &new ErrorReportStatus(ErrorReportStatus__static_init#1)
    //#post(com.dmdirc.logger.ErrorReportStatus__static_init): $VALUES[0] == &new ErrorReportStatus(ErrorReportStatus__static_init#1)
    //#post(com.dmdirc.logger.ErrorReportStatus__static_init): QUEUED == &new ErrorReportStatus(ErrorReportStatus__static_init#5)
    //#post(com.dmdirc.logger.ErrorReportStatus__static_init): $VALUES[4] == &new ErrorReportStatus(ErrorReportStatus__static_init#5)
    //#post(com.dmdirc.logger.ErrorReportStatus__static_init): SENDING == &new ErrorReportStatus(ErrorReportStatus__static_init#3)
    //#post(com.dmdirc.logger.ErrorReportStatus__static_init): $VALUES[2] == &new ErrorReportStatus(ErrorReportStatus__static_init#3)
    //#post(com.dmdirc.logger.ErrorReportStatus__static_init): WAITING == &new ErrorReportStatus(ErrorReportStatus__static_init#6)
    //#post(com.dmdirc.logger.ErrorReportStatus__static_init): $VALUES[5] == &new ErrorReportStatus(ErrorReportStatus__static_init#6)
    //#post(com.dmdirc.logger.ErrorReportStatus__static_init): __Descendant_Table[com/dmdirc/logger/ErrorReportStatus] == &__Dispatch_Table
    //#post(com.dmdirc.logger.ErrorReportStatus__static_init): __Dispatch_Table.isTerminal()Z == &isTerminal
    //#post(com.dmdirc.logger.ErrorReportStatus__static_init): __Dispatch_Table.toString()Ljava/lang/String; == &toString
    //#post(com.dmdirc.logger.ErrorReportStatus__static_init): new ErrorReportStatus(ErrorReportStatus__static_init#1) num objects == 1
    //#post(com.dmdirc.logger.ErrorReportStatus__static_init): NOT_APPLICABLE.terminal == 1
    //#post(com.dmdirc.logger.ErrorReportStatus__static_init): new ErrorReportStatus(ErrorReportStatus__static_init#2) num objects == 1
    //#post(com.dmdirc.logger.ErrorReportStatus__static_init): FINISHED.terminal == 1
    //#post(com.dmdirc.logger.ErrorReportStatus__static_init): new ErrorReportStatus(ErrorReportStatus__static_init#3) num objects == 1
    //#post(com.dmdirc.logger.ErrorReportStatus__static_init): new ErrorReportStatus(ErrorReportStatus__static_init#4) num objects == 1
    //#post(com.dmdirc.logger.ErrorReportStatus__static_init): ERROR.terminal == 1
    //#post(com.dmdirc.logger.ErrorReportStatus__static_init): new ErrorReportStatus(ErrorReportStatus__static_init#5) num objects == 1
    //#post(com.dmdirc.logger.ErrorReportStatus__static_init): new ErrorReportStatus(ErrorReportStatus__static_init#6) num objects == 1
    //#post(com.dmdirc.logger.ErrorReportStatus__static_init): WAITING.terminal == 1
    //#post(com.dmdirc.logger.ErrorReportStatus__static_init): new ErrorReportStatus[](ErrorReportStatus__static_init#7) num objects == 1
    //#post(com.dmdirc.logger.ErrorReportStatus__static_init): NOT_APPLICABLE.__Tag == com/dmdirc/logger/ErrorReportStatus
    //#post(com.dmdirc.logger.ErrorReportStatus__static_init): FINISHED.__Tag == com/dmdirc/logger/ErrorReportStatus
    //#post(com.dmdirc.logger.ErrorReportStatus__static_init): SENDING.__Tag == com/dmdirc/logger/ErrorReportStatus
    //#post(com.dmdirc.logger.ErrorReportStatus__static_init): ERROR.__Tag == com/dmdirc/logger/ErrorReportStatus
    //#post(com.dmdirc.logger.ErrorReportStatus__static_init): QUEUED.__Tag == com/dmdirc/logger/ErrorReportStatus
    //#post(com.dmdirc.logger.ErrorReportStatus__static_init): WAITING.__Tag == com/dmdirc/logger/ErrorReportStatus
    //#post(com.dmdirc.logger.ErrorReportStatus__static_init): NOT_APPLICABLE.value == &"Not applicable"
    //#post(com.dmdirc.logger.ErrorReportStatus__static_init): FINISHED.value == &"Finished"
    //#post(com.dmdirc.logger.ErrorReportStatus__static_init): SENDING.terminal == 0
    //#post(com.dmdirc.logger.ErrorReportStatus__static_init): QUEUED.terminal == 0
    //#post(com.dmdirc.logger.ErrorReportStatus__static_init): SENDING.value == &"Sending..."
    //#post(com.dmdirc.logger.ErrorReportStatus__static_init): ERROR.value == &"Error sending"
    //#post(com.dmdirc.logger.ErrorReportStatus__static_init): QUEUED.value == &"Queued"
    //#post(com.dmdirc.logger.ErrorReportStatus__static_init): WAITING.value == &"Waiting"
    //#post(com.dmdirc.logger.ErrorReportStatus__static_init): $VALUES.length == 6
    //#unanalyzed(com.dmdirc.logger.ErrorReportStatus__static_init): Effects-of-calling:java.lang.Enum
    /** Finished state. */
    FINISHED("Finished", true),
    /** Sending state. */
    SENDING("Sending...", false),
    /** Error sending. */
    ERROR("Error sending", true),
    /** Report queued. */
    QUEUED("Queued", false),
    /** Waiting state. */
    WAITING("Waiting", true);
    //#ErrorReportStatus.java:40: end of method: com.dmdirc.logger.ErrorReportStatus.com.dmdirc.logger.ErrorReportStatus__static_init
    
    /** toString value of the item. */
    private final String value;

    /** Whether this state is terminal. */
    private final boolean terminal;
    
    /** 
     * Instantiates the enum. 
     *
     * @param value toString value
     * @param terminal Whether or not the state is terminal (i.e., whether there
     * are pending actions to be performed on the error)
     */
    ErrorReportStatus(final String value, final boolean terminal) {
    //#ErrorReportStatus.java:55: method: void com.dmdirc.logger.ErrorReportStatus.com.dmdirc.logger.ErrorReportStatus(String, int, String, bool)
    //#input(void com.dmdirc.logger.ErrorReportStatus(String, int, String, bool)): Param_1
    //#input(void com.dmdirc.logger.ErrorReportStatus(String, int, String, bool)): Param_2
    //#input(void com.dmdirc.logger.ErrorReportStatus(String, int, String, bool)): terminal
    //#input(void com.dmdirc.logger.ErrorReportStatus(String, int, String, bool)): this
    //#input(void com.dmdirc.logger.ErrorReportStatus(String, int, String, bool)): value
    //#output(void com.dmdirc.logger.ErrorReportStatus(String, int, String, bool)): this.terminal
    //#output(void com.dmdirc.logger.ErrorReportStatus(String, int, String, bool)): this.value
    //#post(void com.dmdirc.logger.ErrorReportStatus(String, int, String, bool)): this.terminal == terminal
    //#post(void com.dmdirc.logger.ErrorReportStatus(String, int, String, bool)): init'ed(this.terminal)
    //#post(void com.dmdirc.logger.ErrorReportStatus(String, int, String, bool)): this.value == value
    //#post(void com.dmdirc.logger.ErrorReportStatus(String, int, String, bool)): init'ed(this.value)
        this.value = value;
        this.terminal = terminal;
    }
    //#ErrorReportStatus.java:58: end of method: void com.dmdirc.logger.ErrorReportStatus.com.dmdirc.logger.ErrorReportStatus(String, int, String, bool)

    /**
     * Determines whether or not this state is terminal. Terminal states are
     * defined as those on which no further actions will be performed without
     * user interaction. Non-terminal states may start or finish sending in
     * the future.
     * 
     * @return True if the state is terminal, false otherwise
     */
    public boolean isTerminal() {
        return terminal;
    //#ErrorReportStatus.java:69: method: bool com.dmdirc.logger.ErrorReportStatus.isTerminal()
    //#input(bool isTerminal()): this
    //#input(bool isTerminal()): this.terminal
    //#output(bool isTerminal()): return_value
    //#post(bool isTerminal()): return_value == this.terminal
    //#post(bool isTerminal()): init'ed(return_value)
    //#ErrorReportStatus.java:69: end of method: bool com.dmdirc.logger.ErrorReportStatus.isTerminal()
    }
    
    /** {@inheritDoc} */
    @Override
    public String toString() {
        return value;
    //#ErrorReportStatus.java:75: method: String com.dmdirc.logger.ErrorReportStatus.toString()
    //#input(String toString()): this
    //#input(String toString()): this.value
    //#output(String toString()): return_value
    //#post(String toString()): return_value == this.value
    //#post(String toString()): init'ed(return_value)
    //#ErrorReportStatus.java:75: end of method: String com.dmdirc.logger.ErrorReportStatus.toString()
    }
}
    //#ErrorReportStatus.java:: end of class: com.dmdirc.logger.ErrorReportStatus
