/**
  * File: 		DomainExpulsionReason.java
  * Content: 	part of the RMI specification of sensei domains
  *           Defines an enumeration for the reasons to expulse a member from a domain
  * Author: 	LuisM Pena
  * Date: 		27th October 2001
  * Version:  0.51.00
  * Last change:
  *
  **/


package sensei.middleware.domains;

/**
 * Defines an enumeration for the reasons to expulse a member from a domain
 */
final public class DomainExpulsionReason implements java.io.Serializable
{
    private static DomainExpulsionReason [] values_ = new DomainExpulsionReason[8];
    private int value_;

    public final static int _GMSLeaveEvent = 0;
    public final static DomainExpulsionReason GMSLeaveEvent = new DomainExpulsionReason(_GMSLeaveEvent);
    public final static int _WrongPropertyAllowance = 1;
    public final static DomainExpulsionReason WrongPropertyAllowance = new DomainExpulsionReason(_WrongPropertyAllowance);
    public final static int _WrongStaticSubgroupsComposition = 2;
    public final static DomainExpulsionReason WrongStaticSubgroupsComposition = new DomainExpulsionReason(_WrongStaticSubgroupsComposition);
    public final static int _WrongCoordinatorElectionPolicy = 3;
    public final static DomainExpulsionReason WrongCoordinatorElectionPolicy = new DomainExpulsionReason(_WrongCoordinatorElectionPolicy);
    public final static int _WrongBehaviourMode = 4;
    public final static DomainExpulsionReason WrongBehaviourMode = new DomainExpulsionReason(_WrongBehaviourMode);
    public final static int _WrongDynamicPolicy = 5;
    public final static DomainExpulsionReason WrongDynamicPolicy = new DomainExpulsionReason(_WrongDynamicPolicy);
    public final static int _WrongSubgroupsTypes = 6;
    public final static DomainExpulsionReason WrongSubgroupsTypes = new DomainExpulsionReason(_WrongSubgroupsTypes);
    public final static int _SubgroupError = 7;
    public final static DomainExpulsionReason SubgroupError = new DomainExpulsionReason(_SubgroupError);

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

    public int
    value()
    {
        return value_;
    }

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

    public int
    hash()
    {
        return value_;
    }

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