}
handleSig.append('>');
}
handleSig.append(';');
} else if (ref instanceof ArrayTypeReference) {
ArrayTypeReference atr = (ArrayTypeReference) ref;
for (int i = 0; i < atr.dimensions; i++) {
handleSig.append("\\[");
}
TypeBinding typeB = atr.resolvedType;
if (typeB == null) {
typeB = atr.resolveType(scope);
}
if (typeB.leafComponentType().isBaseType()) {
handleSig.append(tb.leafComponentType().signature());
} else {
handleSig.append('Q').append(atr.token).append(';');
}
} else if (ref instanceof SingleTypeReference) {
SingleTypeReference str = (SingleTypeReference) ref;
if (tb.isBaseType()) {
handleSig.append(tb.signature());
} else {
handleSig.append('Q').append(str.token).append(';');
}
} else if (ref instanceof ParameterizedQualifiedTypeReference) {
ParameterizedQualifiedTypeReference pstr = (ParameterizedQualifiedTypeReference) ref;
char[][] tokens = pstr.tokens;
for (int i = pstr.dimensions(); i > 0; i--) {
handleSig.append("\\[");
}
handleSig.append('Q');
for (int i = 0; i < tokens.length; i++) {
if (i > 0) {
handleSig.append('.');
}
handleSig.append(tokens[i]);
TypeReference[] typeRefs = pstr.typeArguments[i];
if (typeRefs != null && typeRefs.length > 0) {
handleSig.append("\\<");
for (int j = 0; j < typeRefs.length; j++) {
TypeReference typeR = typeRefs[j];
TypeBinding typeB = typeR.resolvedType;
if (typeB == null) {
typeB = typeR.resolveType(scope);
}
createHandleSigForReference(typeR, typeB, scope, handleSig);
}
handleSig.append('>');
}
}
handleSig.append(';');
} else if (ref instanceof ArrayQualifiedTypeReference) {
ArrayQualifiedTypeReference atr = (ArrayQualifiedTypeReference) ref;
for (int i = 0; i < atr.dimensions(); i++) {
handleSig.append("\\[");
}
TypeBinding typeB = atr.resolvedType;
if (typeB == null) {
typeB = atr.resolveType(scope);
}
if (typeB.leafComponentType().isBaseType()) {
handleSig.append(tb.leafComponentType().signature());
} else {
char[][] tokens = atr.tokens;