/**
  * File: 		StateTransferType.java
  * Content: 	part of the RMI specification of sensei domains
  *           Defines an enumeration for the state transfer type for a given subgroup
  * Author: 	LuisM Pena
  * Date:     27th October 2001
  * Version:  0.51.00
  * Last change:
  *
  **/


package sensei.middleware.domains;

final public class StateTransferType implements java.io.Serializable
{
    private static StateTransferType [] values_ = new StateTransferType[5];
    private int value_;

    public final static int _STT_StateHandler = 0;
    public final static StateTransferType STT_StateHandler = new StateTransferType(_STT_StateHandler);
    public final static int _STT_BasicStateHandler = 1;
    public final static StateTransferType STT_BasicStateHandler = new StateTransferType(_STT_BasicStateHandler);
    public final static int _STT_ExtendedCheckpointable = 2;
    public final static StateTransferType STT_ExtendedCheckpointable = new StateTransferType(_STT_ExtendedCheckpointable);
    public final static int _STT_Checkpointable = 3;
    public final static StateTransferType STT_Checkpointable = new StateTransferType(_STT_Checkpointable);
    public final static int _STT_StatelessTransfer = 4;
    public final static StateTransferType STT_StatelessTransfer = new StateTransferType(_STT_StatelessTransfer);

    protected
    StateTransferType(int value)
    {
        values_[value] = this;
        value_ = value;
    }

    public int
    value()
    {
        return value_;
    }

    public int
    hash()
    {
        return value_;
    }

    protected Object readResolve() throws java.io.ObjectStreamException
    {
      return values_[value_];
    }

    public static StateTransferType
    from_int(int value)
    {
        return values_[value];
    }
}