splitGenericParts static method

List<String> splitGenericParts(
  1. String content
)

Splits comma-separated generic parameters while handling nested generics.

Parameters:

  • content: The generic parameters string to split

Returns:

  • List of individual generic parameter strings
  • Preserves nested generic structures

Example:

final parts = GenericTypeParser.splitGenericParts('String, List<int>, Map<String, int>');
print(parts); // ['String', 'List<int>', 'Map<String, int>']

Implementation

static List<String> splitGenericParts(String content) {
  if (content.isEmpty) return [];

  final parts = <String>[];
  var current = '';
  var depth = 0;

  for (var i = 0; i < content.length; i++) {
    final char = content[i];

    if (char == '<') {
      depth++;
    } else if (char == '>') {
      depth--;
    } else if (char == ',' && depth == 0) {
      parts.add(current.trim());
      current = '';
      continue;
    }

    current += char;
  }

  if (current.trim().isNotEmpty) {
    parts.add(current.trim());
  }

  return parts;
}