/**
* @see IType#getSuperclassTypeSignature()
* @since 3.0
*/
public String getSuperclassTypeSignature() throws JavaModelException {
IBinaryType info = (IBinaryType) getElementInfo();
char[] genericSignature = info.getGenericSignature();
if (genericSignature != null) {
int signatureLength = genericSignature.length;
// skip type parameters
int index = 0;
if (genericSignature[0] == '<') {
int count = 1;
while (count > 0 && ++index < signatureLength) {
switch (genericSignature[index]) {
case '<':
count++;
break;
case '>':
count--;
break;
}
}
index++;
}
int start = index;
index = org.eclipse.jdt.internal.compiler.util.Util.scanClassTypeSignature(genericSignature, start) + 1;
char[] superclassSig = CharOperation.subarray(genericSignature, start, index);
return new String(ClassFile.translatedName(superclassSig));
} else {
char[] superclassName = info.getSuperclassName();
if (superclassName == null) {
return null;
}
return new String(Signature.createTypeSignature(ClassFile.translatedName(superclassName), true));
}