【Java开源代码栏目提醒】:本文主要为网学会员提供UIDFactory.java,希望对需要UIDFactory.java网友有所帮助,学习一下!
package util.uid;
import java.io.PrintStream;
import java.net.InetAddress;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Random;
public abstract class UIDFactory
{
public UIDFactory()
{
isMd5 = false;
}
public static UIDFactory getDefault()
{
return UUID.getInstance();
}
public static UIDFactory getInstance(String uidfactory)
throws UIDNotSupportException
{
if(uidfactory.equalsIgnoreCase("UUID"))
return UUID.getInstance();
else
throw new UIDNotSupportException(uidfactory + " Not Found!");
}
public abstract String getNextUID();
public abstract String getUID();
public boolean isMD5()
{
return isMd5;
}
public void setMD5(boolean flag)
{
isMd5 = flag;
}
public abstract void setUID(String s)
throws Exception;
public abstract String toPrintableString();
protected static byte[] toMD5(byte bytes[])
{
return md5.digest(bytes);
}
private static long getMachineID()
{
long i = 0L;
try
{
InetAddress inetaddress = InetAddress.getLocalHost();
byte abyte0[] = inetaddress.getAddress();
i = toInt(abyte0);
}
catch(Exception ex)
{
ex.printStackTrace();
}
return i;
}
private static int toInt(byte abyte0[])
{
int i = abyte0[0] << 24 & 0xff000000 | abyte0[1] << 16 & 0xff0000 | abyte0[2] << 8 & 0xff00 | abyte0[3] & 0xff;
return i;
}
public static final String UID_GUID = "GUID";
public static final String UID_UUID = "UUID";
protected static final long EPOCH;
protected static final long JVMHASH = (long)Math.abs((new Object()).hashCode());
protected static final long MACHINEID = getMachineID();
protected static final Random m_random;
private static MessageDigest md5;
private boolean isMd5;
static
{
EPOCH = System.currentTimeMillis();
m_random = new Random(EPOCH);
try
{
md5 = MessageDigest.getInstance("MD5");
}
catch(NoSuchAlgorithmException ex)
{
System.out.println("->" + ex);
}
}
}