package com.rayo.core;
import java.net.InetAddress;
import com.voxeo.guido.Guido;
import com.voxeo.guido.GuidoException;
import com.voxeo.logging.Loggerf;
import com.voxeo.utils.IdGenerator;
import com.voxeo.utils.Networks;
public class GuidoIdGenerator implements IdGenerator<String> {
private static Loggerf log = Loggerf.getLogger(GuidoIdGenerator.class);
private InetAddress resolvedAddress;
public GuidoIdGenerator() {
this(null);
}
public GuidoIdGenerator(String networkAddress) {
if (networkAddress == null) {
resolvedAddress = Networks.extractDefaultLocalInetAddress();
}
else {
resolvedAddress = Networks.findInetAddressByIp(networkAddress);
}
log.info("Created GuidoIdGenerator [nic=%s]", resolvedAddress);
}
@Override
public String makeId() {
try {
Guido guido = new Guido(resolvedAddress, null);
return guido.toString();
}
catch (GuidoException e) {
throw new IllegalStateException(e);
}
}
}