StaticMethodFromBuilder function

Method StaticMethodFromBuilder({
  1. required String className,
})

Implementation

Method StaticMethodFromBuilder({required String className}) {
  return Method((builder) {
    builder.docs.addAll(['/// Retrieves the [$className] from a MixData.']);
    builder.name = 'from';
    builder.returns = refer(className);
    builder.static = true;
    builder.requiredParameters.add(
      Parameter((builder) {
        builder.name = 'mix';
        builder.type = MixTypes.mixData;
      }),
    );
    builder.body = Code('''
        return mix.attributeOf<${className}Attribute>()?.resolve(mix) ?? const $className();
      ''');
  });
}