generate method
Ex: Input: abstract class UserService { @Access(type: 'permission', permission: AppPermission.userRead) Future
@Access(type: 'self', ownerParam: 'userId') Future
Future
Output: class UserServiceGuarded implements UserService { final UserService _inner; final RBACSessionStore _sessionStore; final RBACUserContextResolver _contextResolver;
UserServiceGuarded(this._inner, this._sessionStore, this._contextResolver);
@override Future
@override Future
@override Future
Implementation
@override
Future<String?> generate(LibraryReader library, BuildStep buildStep) async {
final buffer = StringBuffer();
for (final annotated in library.annotatedWith(_checker)) {
final element = annotated.element;
final output = _generateForElement(element);
if (output != null) {
buffer.writeln(output);
}
}
return buffer.isEmpty ? null : buffer.toString();
}