@SuppressWarnings("unchecked")
public ParameterizedType getAstParameterizedType(AST ast, String typeName) {
// Get the component type and parameters <Type, Type, ...>
String componentTypeName = StringUtils.substringBefore(typeName, "<");
Type componentType = getAstSimpleType(ast, componentTypeName);
ParameterizedType parameterizedType = ast
.newParameterizedType(componentType);
String paramTypeNames = StringUtils.substringAfter(typeName, "<");
paramTypeNames = StringUtils.removeEnd(paramTypeNames, ">");
// Result: String, Integer, List<Boolean>, de.test.Company
String[] parametersAsString = StringUtils.split(paramTypeNames, ",");
for (int index = 0; index < parametersAsString.length; index++) {
String paramTypeName = parametersAsString[index];
paramTypeName = StringUtils.remove(paramTypeName, ",");
paramTypeName = StringUtils.trim(paramTypeName);
Type paramType = getChosenType(ast, paramTypeName, paramTypeName,
"");
// Add the type arguments
parameterizedType.typeArguments().add(paramType);
}
return parameterizedType;
}