validate method

void validate()

Validates the generation context state for consistency

Implementation

void validate() {
  // Validate that path doesn't contain null or empty type names
  for (final typeName in path) {
    if (typeName.name.isEmpty) {
      throw GenerationContextValidationException(
        'Path cannot contain empty type names',
      );
    }
  }

  // Note: currentClassName and currentFieldName validation is handled by their constructors
  // which use hasValue() assertions, so we don't need to validate them here

  // Validate that generated classes don't have duplicate names
  final classNames = <String>{};
  for (final definition in generatedClasses) {
    if (definition is ClassDefinition) {
      final className = definition.name.name;
      if (classNames.contains(className)) {
        throw GenerationContextValidationException(
          'Duplicate class name found: $className',
        );
      }
      classNames.add(className);
    }
  }

  // Validate that input classes don't have duplicate names
  final inputNames = <String>{};
  for (final input in inputsClasses) {
    final inputName = input.name.name;
    if (inputNames.contains(inputName)) {
      throw GenerationContextValidationException(
        'Duplicate input class name found: $inputName',
      );
    }
    inputNames.add(inputName);
  }

  // Validate that fragments don't have duplicate names
  final fragmentNames = <String>{};
  for (final fragment in fragments) {
    final fragmentName = fragment.name.value;
    if (fragmentNames.contains(fragmentName)) {
      throw GenerationContextValidationException(
        'Duplicate fragment name found: $fragmentName',
      );
    }
    fragmentNames.add(fragmentName);
  }
}