KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > tm > remoting > interfaces > Vote


1 /*
2   * JBoss, Home of Professional Open Source
3   * Copyright 2005, JBoss Inc., and individual contributors as indicated
4   * by the @authors tag. See the copyright.txt in the distribution for a
5   * full listing of individual contributors.
6   *
7   * This is free software; you can redistribute it and/or modify it
8   * under the terms of the GNU Lesser General Public License as
9   * published by the Free Software Foundation; either version 2.1 of
10   * the License, or (at your option) any later version.
11   *
12   * This software is distributed in the hope that it will be useful,
13   * but WITHOUT ANY WARRANTY; without even the implied warranty of
14   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15   * Lesser General Public License for more details.
16   *
17   * You should have received a copy of the GNU Lesser General Public
18   * License along with this software; if not, write to the Free
19   * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20   * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
21   */

22 package org.jboss.tm.remoting.interfaces;
23
24 import java.io.ObjectStreamException JavaDoc;
25 import java.io.Serializable JavaDoc;
26
27 /**
28  * Type safe enumeration for <code>Resource</code> votes.
29  *
30  * @author Scott.Stark@jboss.org
31  * @author <a HREF="mailto:reverbel@ime.usp.br">Francisco Reverbel</a>
32  * @version $Revision: 37459 $
33  */

34 public class Vote implements Serializable JavaDoc
35 {
36    static final long serialVersionUID = -6997498750766547785L;
37
38    /**
39     * The max ordinal value in use for the Vote enums. When you add a
40     * new key enum value you must assign it an ordinal value of the current
41     * MAX_TYPE_ID+1 and update the MAX_TYPE_ID value.
42     */

43    private static final int MAX_TYPE_ID = 2;
44
45    /** The array of Vote indexed by ordinal value of the key */
46    private static final Vote[] values = new Vote[MAX_TYPE_ID + 1];
47    
48    public static final Vote COMMIT = new Vote("COMMIT", 0);
49    public static final Vote ROLLBACK = new Vote("ROLLBACK", 1);
50    public static final Vote READONLY = new Vote("READONLY", 2);
51    
52    private final transient String JavaDoc name;
53
54    // this is the only value serialized
55
private final int ordinal;
56
57    private Vote(String JavaDoc name, int ordinal)
58    {
59       this.name = name;
60       this.ordinal = ordinal;
61       values[ordinal] = this;
62    }
63
64    public String JavaDoc toString()
65    {
66       return name;
67    }
68    
69    Object JavaDoc readResolve() throws ObjectStreamException JavaDoc
70    {
71       return values[ordinal];
72    }
73
74 }
75
Popular Tags