try {
int end = id.lastIndexOf(':');
ByteString s = end < 0 ? id.substring(4) : id.substring(4, end);
ByteBuffer bb = new ByteBuffer();
//
// reverse order of dot-separated name components up
// till the first slash.
//
int firstSlash = s.indexOf('/');
if (firstSlash > 0) {
ByteString prefix = s.substring(0, firstSlash);
ByteString[] elems = prefix.split('.');
for (int i = elems.length - 1; i >= 0; i--) {
bb.append(fixName(elems[i]));
bb.append('.');
}
s = s.substring(firstSlash + 1);
}
//
// Append slash-separated name components ...
//
ByteString[] elems = s.split('/');
for (int i = 0; i < elems.length; i++) {
bb.append(fixName(elems[i]));
if (i != elems.length - 1)
bb.append('.');
}
String result = bb.toString();
logger.finer("idToClassName " + repid + " => " + result);
return result;
} catch (IndexOutOfBoundsException ex) {