KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > quadcap > sql > lock > LockMode


1 package com.quadcap.sql.lock;
2
3 /* Copyright 1999 - 2003 Quadcap Software. All rights reserved.
4  *
5  * This software is distributed under the Quadcap Free Software License.
6  * This software may be used or modified for any purpose, personal or
7  * commercial. Open Source redistributions are permitted. Commercial
8  * redistribution of larger works derived from, or works which bundle
9  * this software requires a "Commercial Redistribution License"; see
10  * http://www.quadcap.com/purchase.
11  *
12  * Redistributions qualify as "Open Source" under one of the following terms:
13  *
14  * Redistributions are made at no charge beyond the reasonable cost of
15  * materials and delivery.
16  *
17  * Redistributions are accompanied by a copy of the Source Code or by an
18  * irrevocable offer to provide a copy of the Source Code for up to three
19  * years at the cost of materials and delivery. Such redistributions
20  * must allow further use, modification, and redistribution of the Source
21  * Code under substantially the same terms as this license.
22  *
23  * Redistributions of source code must retain the copyright notices as they
24  * appear in each source code file, these license terms, and the
25  * disclaimer/limitation of liability set forth as paragraph 6 below.
26  *
27  * Redistributions in binary form must reproduce this Copyright Notice,
28  * these license terms, and the disclaimer/limitation of liability set
29  * forth as paragraph 6 below, in the documentation and/or other materials
30  * provided with the distribution.
31  *
32  * The Software is provided on an "AS IS" basis. No warranty is
33  * provided that the Software is free of defects, or fit for a
34  * particular purpose.
35  *
36  * Limitation of Liability. Quadcap Software shall not be liable
37  * for any damages suffered by the Licensee or any third party resulting
38  * from use of the Software.
39  */

40
41 import com.quadcap.util.Debug;
42
43 /**
44  * Lock modes supported by this package.
45  *
46  * @author Stan Bailes
47  */

48 public class LockMode {
49     public static final int NL = 0;
50     public static final int IS = 1;
51     public static final int IX = 2;
52     public static final int S = 3;
53     public static final int SIX = 4;
54     public static final int X = 5;
55     public static final int MAX = 6;
56
57     static final String JavaDoc[] modes = {
58     "NL", "IS", "IX", "S", "SIX", "X"
59     };
60
61     public static final String JavaDoc toString(int mode) {
62     return modes[mode];
63     }
64
65     static int[] impl = {
66     0, // NL
67

68     ((1 << IS)), // IS
69

70     ((1 << IX) | (1 << IS)), // IX
71

72     ((1 << S) | (1 << IS)), // S
73

74     ((1 << SIX) | (1 << IX) | (1 << S) | (1 << IS) | (1 << SIX)), // SIX
75

76     ((1 << SIX) | (1 << IX) | (1 << S) | (1 << IS) | (1 << SIX)
77         | (1 << X)) // X
78
};
79     
80     /**
81      * If you have mode 'a' already, do you even need to bother getting
82      * mode 'b'?
83      */

84     public static boolean implies(int a, int b) {
85     boolean ret = ((impl[a] >> b) & 1) != 0;
86 // Debug.println(0, "implies(" + toString(a) + ", " + toString(b) +
87
// ") = " + ret);
88
return ret;
89     }
90 }
91
92
Popular Tags