onGenerate method
Future<$BuildOutput>
onGenerate(
- ArtifactBuilder builder,
- ClassElement clazz,
- ConstructorElement ctor,
- List<
FormalParameterElement> params, - BuildStep step,
- List<
String> ? eFields,
override
Implementation
@override
Future<$BuildOutput> onGenerate(
ArtifactBuilder builder,
ClassElement clazz,
ConstructorElement ctor,
List<FormalParameterElement> params,
BuildStep step,
List<String>? eFields,
) async {
if (params.isEmpty) return (<Uri>[], StringBuffer());
StringBuffer buf = StringBuffer();
buf.write(" static Map<String,dynamic> get schema=>{");
buf.write("${builder.stringD("type")}:${builder.stringD("object")},");
buf.write("${builder.stringD("properties")}:{");
for (FormalParameterElement param in params) {
String renamed = builder.guardGeneration(
clazz: clazz,
stage: "schema.rename",
param: param,
run:
() => builder.renamedParamName(
clazz,
param,
includeParamAnnotation: false,
),
);
FieldElement? field = builder.fieldForParam(clazz, param);
String? description =
field == null
? null
: ArtifactBuilder.$describeChecker
.firstAnnotationOf(field)
?.getField("description")
?.toStringValue();
String schemaLiteral = builder.guardGeneration(
clazz: clazz,
stage: "schema.property_literal",
param: param,
run: () => _schemaLiteralForType(builder, param.type),
);
buf.write(
"${builder.stringD(renamed)}:${_withOptionalDescription(builder, schemaLiteral, description)},",
);
}
buf.write("},");
List<FormalParameterElement> requiredParams =
params.where(builder.isRequiredParam).toList();
buf.write(
"${builder.stringD("required")}:[${requiredParams.map((param) {
String rn = builder.guardGeneration(clazz: clazz, stage: "schema.required.rename", param: param, run: () => builder.renamedParamName(clazz, param, includeParamAnnotation: false));
return builder.stringD(rn);
}).join(",")}],",
);
buf.write("${builder.stringD("additionalProperties")}:_F");
buf.writeln("};");
return (<Uri>[], buf);
}