private static void computeFor(JvmParameterizedTypeReference typeReference, char innerClassDelimiter,
NameType nameType, StringBuilder result) {
if (typeReference.eClass() == TypesPackage.Literals.JVM_INNER_TYPE_REFERENCE) {
JvmParameterizedTypeReference outer = ((JvmInnerTypeReference) typeReference).getOuter();
if (outer != null) {
computeFor(outer, innerClassDelimiter, nameType, result);
if (result.length() != 0) {
JvmType type = typeReference.getType();
result.append(innerClassDelimiter);
result.append(type.getSimpleName());
} else {
appendType(typeReference, innerClassDelimiter, nameType, result);
}
} else {
appendType(typeReference, innerClassDelimiter, nameType, result);
}
} else {
appendType(typeReference, innerClassDelimiter, nameType, result);
}
if (typeReference.eIsSet(TypesPackage.Literals.JVM_PARAMETERIZED_TYPE_REFERENCE__ARGUMENTS)) {
result.append("<");
appendArguments(result, typeReference.getArguments(), innerClassDelimiter, nameType);
result.append(">");
}
}