generateForAnnotatedElement method
dynamic
generateForAnnotatedElement(
- Element element,
- ConstantReader annotation,
- BuildStep buildStep
Implement to return source code to generate for element
.
This method is invoked based on finding elements annotated with an
instance of T
. The annotation
is provided as a ConstantReader
.
Supported return values include a single String or multiple String instances within an Iterable or Stream. It is also valid to return a Future of String, Iterable, or Stream.
Implementations should return null
when no content is generated. Empty
or whitespace-only String instances are also ignored.
Implementation
@override
generateForAnnotatedElement(Element element, ConstantReader annotation,
BuildStep buildStep) {
/// 注解修饰类时,检查是否注解了url作为baseUrl
if (element is ClassElement) {
baseUrl = annotation.peek('url')?.stringValue ?? '';
print('ClassElement baseUrl : ' + baseUrl);
if (baseUrl.isEmpty) {
print('please check annotation url of class : ' + element.name);
return;
}
mergeByBaseUrl = annotation.peek('mergeByBaseUrl')!.boolValue;
}
/// 添加document中的导入包信息,生成目标文件时要用到
addDocumentImport(element, buildStep);
element.visitChildren(SimpleVisitor(buildStep, baseUrl));
print('\n==========${element.displayName}==========\n');
return getGenerateContent(annotation);
}