in remoting/server/web/web.ui/src/org/netbeans/modules/jackpot30/backend/ui/UI.java [527:590]
static String decodeSignatureType(String signature, int[] pos) {
char c = signature.charAt(pos[0]++);
switch (c) {
case 'V': return "void";
case 'Z': return "boolean";
case 'B': return "byte";
case 'S': return "short";
case 'I': return "int";
case 'J': return "long";
case 'C': return "char";
case 'F': return "float";
case 'D': return "double";
case '[': return decodeSignatureType(signature, pos) + "[]";
case 'L': {
int lastSlash = pos[0];
StringBuilder result = new StringBuilder();
while (signature.charAt(pos[0]) != ';' && signature.charAt(pos[0]) != '<') {
if (signature.charAt(pos[0]) == '/') {
lastSlash = pos[0] + 1;
}
if (signature.charAt(pos[0]) == '$') {
lastSlash = pos[0] + 1;
}
pos[0]++;
}
result.append(signature.substring(lastSlash, pos[0]));
if (signature.charAt(pos[0]++) == '<') {
result.append('<');
while (signature.charAt(pos[0]) != '>') {
if (result.charAt(result.length() - 1) != '<') {
result.append(", ");
}
result.append(decodeSignatureType(signature, pos));
}
result.append('>');
pos[0] += 2;
}
return result.toString();
}
case 'T': {
StringBuilder result = new StringBuilder();
while (signature.charAt(pos[0]) != ';') {
result.append(signature.charAt(pos[0]));
pos[0]++;
}
pos[0]++;
return result.toString();
}
case '+': return "? extends " + decodeSignatureType(signature, pos);
case '-': return "? super " + decodeSignatureType(signature, pos);
case '*': return "?";
default: return "unknown";
}
}