1 // 2 // Copyright 1998 CDS Networks, Inc., Medford Oregon 3 // 4 // All rights reserved. 5 // 6 // Redistribution and use in source and binary forms, with or without 7 // modification, are permitted provided that the following conditions are met: 8 // 1. Redistributions of source code must retain the above copyright 9 // 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 34 package com.internetcds.jdbc.tds; 35 36 37 /** 38 * return a monotonically increasing number. 39 * 40 * This class provides a thread safe way of generating unique 41 * numbers. It is used in the TDS driver to help generate unique 42 * names for temporary stored procedures and temporary tables. 43 * 44 * @author Craig Spannring 45 * @version $Id: UniqueId.java,v 1.1 2006/06/23 10:39:30 sinisa Exp $ 46 */ 47 public class UniqueId { 48 public static final String cvsVersion = "$Id: UniqueId.java,v 1.1 2006/06/23 10:39:30 sinisa Exp $"; 49 50 // next number to return from the getUniqueId() method 51 private static long id = 1; 52 53 54 /** 55 * return a unique number. 56 * <p> 57 * The number is unique for a given invocation of the JVM. Currently 58 * the number is monotonically increasing, but I make no guarantees 59 * that it will be that way in future releases. 60 * 61 * @return unique number 62 */ 63 public static synchronized long getUniqueId() 64 { 65 return id++; 66 } 67 } 68