blob: e1195d28685b6c768404f7c05b0468cc86254e3e [file] [log] [blame] [edit]
// Copyright (c) 2023, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'package:code_builder/code_builder.dart';
import '../generation_options.dart';
import '../located_message_file.dart';
import 'class_generation.dart';
import 'constructor_generation.dart';
import 'field_generation.dart';
import 'method_generation.dart';
class ClassesGeneration {
final GenerationOptions options;
final String? context;
final LocatedMessageFile parent;
final Iterable<LocatedMessageFile> children;
final Map<String, String> emptyFiles;
ClassesGeneration({
required this.options,
required this.context,
required this.parent,
required this.children,
required this.emptyFiles,
});
List<Spec> generate() {
final constructors = ConstructorGeneration(options).generate();
final fields = FieldGeneration(
options,
children,
parent.locale,
).generate();
final methods = MethodGeneration(
options,
context,
parent.file.messages,
emptyFiles,
).generate();
final classes = ClassGeneration(
options,
parent.file.messages,
context,
constructors,
fields,
methods,
).generate();
return classes;
}
}