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);
}
}