resolveGenericType static method
Recursively resolves a type string into its components.
Parameters:
typeString
: The type string to resolve
Returns:
- GenericTypeParsingResult containing the base type and all generic arguments
Example:
final result = GenericTypeParser.resolveGenericType('Map<String, List<int>>');
print(result.base); // 'Map'
print(result.types.length); // 2
Implementation
static GenericTypeParsingResult resolveGenericType(String typeString) {
// Handle generic types like "List<String>"
if (isGeneric(typeString)) {
String baseName = typeString.split('<').first;
if(_caveats.any((c) => c == baseName)) {
baseName = baseName.replaceAll("_", "");
}
// Extract generic parameters and recursively parse them
final genericPart = extractGenericPart(typeString);
final genericTypes = parseGenericTypes(genericPart);
return GenericTypeParsingResult(baseName, typeString, genericTypes);
}
// Handle non-generic types (base case for recursion)
return GenericTypeParsingResult(typeString, typeString, []);
}