01: //
02: // Copyright 1998 CDS Networks, Inc., Medford Oregon
03: //
04: // All rights reserved.
05: //
06: // Redistribution and use in source and binary forms, with or without
07: // modification, are permitted provided that the following conditions are met:
08: // 1. Redistributions of source code must retain the above copyright
09: // notice, this list of conditions and the following disclaimer.
10: // 2. Redistributions in binary form must reproduce the above copyright
11: // notice, this list of conditions and the following disclaimer in the
12: // documentation and/or other materials provided with the distribution.
13: // 3. All advertising materials mentioning features or use of this software
14: // must display the following acknowledgement:
15: // This product includes software developed by CDS Networks, Inc.
16: // 4. The name of CDS Networks, Inc. may not be used to endorse or promote
17: // products derived from this software without specific prior
18: // written permission.
19: //
20: // THIS SOFTWARE IS PROVIDED BY CDS NETWORKS, INC. ``AS IS'' AND
21: // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22: // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23: // ARE DISCLAIMED. IN NO EVENT SHALL CDS NETWORKS, INC. BE LIABLE
24: // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25: // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26: // OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27: // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28: // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29: // OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30: // SUCH DAMAGE.
31: //
32:
33: package com.internetcds.jdbc.tds;
34:
35: /**
36: * return a monotonically increasing number.
37: *
38: * This class provides a thread safe way of generating unique
39: * numbers. It is used in the TDS driver to help generate unique
40: * names for temporary stored procedures and temporary tables.
41: *
42: * @author Craig Spannring
43: * @version $Id: UniqueId.java,v 1.2 2007-10-19 13:23:55 sinisa Exp $
44: */
45: public class UniqueId {
46: public static final String cvsVersion = "$Id: UniqueId.java,v 1.2 2007-10-19 13:23:55 sinisa Exp $";
47:
48: // next number to return from the getUniqueId() method
49: private static long id = 1;
50:
51: /**
52: * return a unique number.
53: * <p>
54: * The number is unique for a given invocation of the JVM. Currently
55: * the number is monotonically increasing, but I make no guarantees
56: * that it will be that way in future releases.
57: *
58: * @return unique number
59: */
60: public static synchronized long getUniqueId() {
61: return id++;
62: }
63: }
|