1- import 'package:analyzer/dart/element/element2 .dart' ;
1+ import 'package:analyzer/dart/element/element .dart' ;
22import 'package:analyzer/dart/element/type.dart' ;
33import 'package:build/build.dart' ;
44import 'package:raiser_annotation/raiser_annotation.dart' ;
@@ -12,8 +12,8 @@ import 'models/parameter_info.dart';
1212/// and generates registration code.
1313class RaiserHandlerGenerator extends GeneratorForAnnotation <RaiserHandler > {
1414 @override
15- String generateForAnnotatedElement (Element2 element, ConstantReader annotation, BuildStep buildStep) {
16- final handlerInfo = extractHandlerInfo (element.firstFragment.element , annotation, buildStep);
15+ String generateForAnnotatedElement (Element element, ConstantReader annotation, BuildStep buildStep) {
16+ final handlerInfo = extractHandlerInfo (element, annotation, buildStep);
1717 // Generate registration code
1818 return _generateRegistrationCode (handlerInfo);
1919 }
@@ -22,7 +22,7 @@ class RaiserHandlerGenerator extends GeneratorForAnnotation<RaiserHandler> {
2222 ///
2323 /// This method is used by both the individual generator and the
2424 /// aggregating builder to extract handler metadata.
25- HandlerInfo extractHandlerInfo (Element2 element, ConstantReader annotation, BuildStep buildStep) {
25+ HandlerInfo extractHandlerInfo (Element element, ConstantReader annotation, BuildStep buildStep) {
2626 // Validate the annotated element
2727 final classElement = _validateElement (element);
2828
@@ -38,7 +38,7 @@ class RaiserHandlerGenerator extends GeneratorForAnnotation<RaiserHandler> {
3838
3939 // Build HandlerInfo
4040 return HandlerInfo (
41- className: classElement.name3 ?? '' ,
41+ className: classElement.name ?? '' ,
4242 eventType: eventType,
4343 priority: priority,
4444 busName: busName,
@@ -48,9 +48,9 @@ class RaiserHandlerGenerator extends GeneratorForAnnotation<RaiserHandler> {
4848 }
4949
5050 /// Validates that the annotated element is a valid handler class.
51- ClassElement2 _validateElement (Element2 element) {
51+ ClassElement _validateElement (Element element) {
5252 // Check if element is a class (Requirement 6.1)
53- if (element is ! ClassElement2 ) {
53+ if (element is ! ClassElement ) {
5454 throw InvalidGenerationSourceError ('@RaiserHandler can only be applied to classes. Found: ${element .kind .displayName }' );
5555 }
5656
@@ -60,38 +60,38 @@ class RaiserHandlerGenerator extends GeneratorForAnnotation<RaiserHandler> {
6060 if (classElement.isAbstract) {
6161 throw InvalidGenerationSourceError (
6262 "@RaiserHandler cannot be applied to abstract classes. "
63- "'${classElement .name3 }' must be concrete." ,
63+ "'${classElement .name ?? '' }' must be concrete." ,
6464 );
6565 }
6666
6767 // Check if class extends EventHandler<T> (Requirement 1.2)
6868 if (! _extendsEventHandler (classElement)) {
69- throw InvalidGenerationSourceError ("Class '${classElement .name3 }' must extend EventHandler<T> to use @RaiserHandler." );
69+ throw InvalidGenerationSourceError ("Class '${classElement .name ?? '' }' must extend EventHandler<T> to use @RaiserHandler." );
7070 }
7171
7272 // Check for accessible constructor (Requirement 6.3)
7373 if (! _hasAccessibleConstructor (classElement)) {
74- throw InvalidGenerationSourceError ("Class '${classElement .name3 }' must have an accessible constructor for registration." );
74+ throw InvalidGenerationSourceError ("Class '${classElement .name ?? '' }' must have an accessible constructor for registration." );
7575 }
7676
7777 return classElement;
7878 }
7979
8080 /// Checks if the class extends EventHandler<T>.
81- bool _extendsEventHandler (ClassElement2 classElement) {
81+ bool _extendsEventHandler (ClassElement classElement) {
8282 // Check supertype chain for EventHandler
8383 for (final supertype in classElement.allSupertypes) {
84- if (supertype.element3.name3 == 'EventHandler' ) {
84+ if (( supertype.element.name ?? '' ) == 'EventHandler' ) {
8585 return true ;
8686 }
8787 }
8888 return false ;
8989 }
9090
9191 /// Checks if the class has an accessible (public) constructor.
92- bool _hasAccessibleConstructor (ClassElement2 classElement) {
92+ bool _hasAccessibleConstructor (ClassElement classElement) {
9393 // Look for any public constructor
94- for (final constructor in classElement.constructors2 ) {
94+ for (final constructor in classElement.constructors ) {
9595 if (! constructor.isPrivate && ! constructor.isFactory) {
9696 return true ;
9797 }
@@ -100,18 +100,18 @@ class RaiserHandlerGenerator extends GeneratorForAnnotation<RaiserHandler> {
100100 }
101101
102102 /// Extracts the event type T from EventHandler<T>.
103- String _extractEventType (ClassElement2 classElement) {
103+ String _extractEventType (ClassElement classElement) {
104104 // Find EventHandler in the supertype chain
105105 for (final supertype in classElement.allSupertypes) {
106- if (supertype.element3.name3 == 'EventHandler' ) {
106+ if (( supertype.element.name ?? '' ) == 'EventHandler' ) {
107107 final typeArgs = supertype.typeArguments;
108108 if (typeArgs.isNotEmpty) {
109109 final eventType = typeArgs.first;
110110
111111 // Check if the type is resolvable (not dynamic or unresolved)
112112 if (eventType is DynamicType ) {
113113 throw InvalidGenerationSourceError (
114- "Cannot resolve event type for '${classElement .name3 }'. "
114+ "Cannot resolve event type for '${classElement .name ?? '' }'. "
115115 "Ensure the generic type parameter is a concrete type." ,
116116 );
117117 }
@@ -125,20 +125,20 @@ class RaiserHandlerGenerator extends GeneratorForAnnotation<RaiserHandler> {
125125 }
126126
127127 throw InvalidGenerationSourceError (
128- "Cannot resolve event type for '${classElement .name3 }'. "
128+ "Cannot resolve event type for '${classElement .name ?? '' }'. "
129129 "Ensure the class extends EventHandler<T> with a concrete type." ,
130130 );
131131 }
132132
133133 /// Analyzes the constructor for dependency injection support.
134- ConstructorInfo _analyzeConstructor (ClassElement2 classElement) {
134+ ConstructorInfo _analyzeConstructor (ClassElement classElement) {
135135 // Find the primary constructor (unnamed or first public)
136- ConstructorElement2 ? primaryConstructor;
136+ ConstructorElement ? primaryConstructor;
137137
138- for (final constructor in classElement.constructors2 ) {
138+ for (final constructor in classElement.constructors ) {
139139 if (! constructor.isPrivate && ! constructor.isFactory) {
140140 // Prefer unnamed constructor
141- if ((constructor.name3 ?? '' ).isEmpty) {
141+ if ((constructor.name ?? '' ).isEmpty) {
142142 primaryConstructor = constructor;
143143 break ;
144144 }
@@ -159,10 +159,11 @@ class RaiserHandlerGenerator extends GeneratorForAnnotation<RaiserHandler> {
159159
160160 // Extract parameter information
161161 final parameterInfos = parameters.map ((param) {
162+ final bool isRequired = param.isRequiredNamed || param.isRequiredPositional;
162163 return ParameterInfo (
163- name: param.name3 ?? '' ,
164+ name: param.name ?? '' ,
164165 type: param.type.getDisplayString (),
165- isRequired: param. isRequired,
166+ isRequired: isRequired,
166167 defaultValue: param.defaultValueCode,
167168 isNamed: param.isNamed,
168169 );
0 commit comments