abstractuuidgenerator.java

来自「介绍了hibernate的入门有一些基本常用的事例」· Java 代码 · 共 78 行

JAVA
78
字号
//$Id: AbstractUUIDGenerator.java,v 1.1 2004/12/19 16:24:10 oneovthafew Exp $package org.hibernate.id;import java.net.InetAddress;import org.hibernate.util.BytesHelper;/** * The base class for identifier generators that use a UUID algorithm. This * class implements the algorithm, subclasses define the identifier * format. * * @see UUIDHexGenerator * @author Gavin King */public abstract class AbstractUUIDGenerator implements IdentifierGenerator {	private static final int IP;	static {		int ipadd;		try {			ipadd = BytesHelper.toInt( InetAddress.getLocalHost().getAddress() );		}		catch (Exception e) {			ipadd = 0;		}		IP = ipadd;	}	private static short counter = (short) 0;	private static final int JVM = (int) ( System.currentTimeMillis() >>> 8 );	public AbstractUUIDGenerator() {	}	/**	 * Unique across JVMs on this machine (unless they load this class	 * in the same quater second - very unlikely)	 */	protected int getJVM() {		return JVM;	}	/**	 * Unique in a millisecond for this JVM instance (unless there	 * are > Short.MAX_VALUE instances created in a millisecond)	 */	protected short getCount() {		synchronized(AbstractUUIDGenerator.class) {			if (counter<0) counter=0;			return counter++;		}	}	/**	 * Unique in a local network	 */	protected int getIP() {		return IP;	}	/**	 * Unique down to millisecond	 */	protected short getHiTime() {		return (short) ( System.currentTimeMillis() >>> 32 );	}	protected int getLoTime() {		return (int) System.currentTimeMillis();	}}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?