generateForElement method
String
generateForElement(
- Element element,
- ConstantReader annotation,
- LibraryReader library
)
Implementation
@visibleForTesting
String generateForElement(
Element element,
ConstantReader annotation,
LibraryReader library,
) {
final classes = annotation.read('classes').listValue;
final ClassElement classElement = _validateElement(element, false);
final subTypes = classes.isNotEmpty
? _findSubTypesForAllClasses(classes, library)
: [_findSubTypesForSingleClass(library, classElement)];
for (final e in subTypes) {
_validateSubType(e, classes.isNotEmpty);
}
final optionsReader = annotation.read('options');
final ClassSwitchOptions generatorOptions =
extractOptionsFromAnnotation(optionsReader);
final ClassSwitchClassGenerator classSwitchCodeBuilder =
ClassSwitchClassGenerator.create(
classElement,
subTypes,
generatorOptions,
);
return classSwitchCodeBuilder.generateAll();
}