@@ -56,90 +56,16 @@ class DartdocGeneratorBackendOptions implements TemplateOptions {
5656 packageOrder = context.packageOrder;
5757}
5858
59- /// An interface for classes which are responsible for outputing the generated
60- /// documentation.
61- abstract interface class GeneratorBackend {
62- FileWriter get writer;
63-
64- /// Emits JSON describing the [categories] defined by the package.
65- void generateCategoryJson (List <Categorization > categories);
66-
67- /// Emits a JSON catalog of [indexedElements] for use with a search index.
68- void generateSearchIndex (List <Indexable > indexedElements);
69-
70- /// Emits documentation content for the [package] .
71- void generatePackage (PackageGraph packageGraph, Package package);
72-
73- /// Emits documentation content for the [category] .
74- void generateCategory (PackageGraph packageGraph, Category category);
75-
76- /// Emits documentation content for the [library] .
77- void generateLibrary (PackageGraph packageGraph, Library library);
78-
79- /// Emits documentation content for the [clazz] .
80- void generateClass (PackageGraph packageGraph, Library library, Class clazz);
81-
82- /// Emits documentation content for the [eNum] .
83- void generateEnum (PackageGraph packageGraph, Library library, Enum eNum);
84-
85- /// Emits documentation content for the [extension] .
86- void generateExtension (
87- PackageGraph packageGraph, Library library, Extension extension );
88-
89- /// Emits documentation content for the [extensionType] .
90- void generateExtensionType (
91- PackageGraph packageGraph, Library library, ExtensionType extensionType);
92-
93- /// Emits documentation content for the [mixin] .
94- void generateMixin (PackageGraph packageGraph, Library library, Mixin mixin );
95-
96- /// Emits documentation content for the [constructor] .
97- void generateConstructor (PackageGraph packageGraph, Library library,
98- Constructable constructable, Constructor constructor);
99-
100- /// Emits documentation content for the [field] .
101- void generateConstant (
102- PackageGraph packageGraph, Library library, Container clazz, Field field);
103-
104- /// Emits documentation content for the [field] .
105- void generateProperty (
106- PackageGraph packageGraph, Library library, Container clazz, Field field);
107-
108- /// Emits documentation content for the [method] .
109- void generateMethod (PackageGraph packageGraph, Library library,
110- Container clazz, Method method);
111-
112- /// Emits documentation content for the [function] .
113- void generateFunction (
114- PackageGraph packageGraph, Library library, ModelFunction function);
115-
116- /// Emits documentation content for the [constant] .
117- void generateTopLevelConstant (
118- PackageGraph packageGraph, Library library, TopLevelVariable constant);
119-
120- /// Emits documentation content for the [property] .
121- void generateTopLevelProperty (
122- PackageGraph packageGraph, Library library, TopLevelVariable property);
123-
124- /// Emits documentation content for the [typedef] .
125- void generateTypeDef (
126- PackageGraph packageGraph, Library library, Typedef typedef );
127-
128- /// Emits files not specific to a Dart language element (like a favicon, etc).
129- Future <void > generateAdditionalFiles ();
130- }
131-
132- /// Base [GeneratorBackend] for Dartdoc's supported formats.
133- abstract class GeneratorBackendBase implements GeneratorBackend {
59+ /// Outputs generated documentation.
60+ abstract class GeneratorBackend {
13461 final DartdocGeneratorBackendOptions options;
13562 final Templates templates;
13663
137- @override
13864 final FileWriter writer;
13965 final ResourceProvider resourceProvider;
14066 final p.Context _pathContext;
14167
142- GeneratorBackendBase (
68+ GeneratorBackend (
14369 this .options, this .templates, this .writer, this .resourceProvider)
14470 : _pathContext = resourceProvider.pathContext;
14571
@@ -164,7 +90,7 @@ abstract class GeneratorBackendBase implements GeneratorBackend {
16490 element: element is Warnable ? element : null );
16591 }
16692
167- @override
93+ /// Emits JSON describing the [categories] defined by the package.
16894 void generateCategoryJson (List <Categorization > categories) {
16995 var json = '[]' ;
17096 if (categories.isNotEmpty) {
@@ -178,7 +104,7 @@ abstract class GeneratorBackendBase implements GeneratorBackend {
178104 writer.write (_pathContext.join ('categories.json' ), '$json \n ' );
179105 }
180106
181- @override
107+ /// Emits a JSON catalog of [indexedElements] for use with a search index.
182108 void generateSearchIndex (List <Indexable > indexedElements) {
183109 var json = generator_util.generateSearchIndexJson (
184110 indexedElements,
@@ -191,28 +117,23 @@ abstract class GeneratorBackendBase implements GeneratorBackend {
191117 writer.write (_pathContext.join ('index.json' ), '$json \n ' );
192118 }
193119
194- @override
120+ /// Emits documentation content for the [category] .
195121 void generateCategory (PackageGraph packageGraph, Category category) {
196122 var data = CategoryTemplateData (options, packageGraph, category);
197123 var content = templates.renderCategory (data);
198124 write (writer, category.filePath, data, content);
199125 runtimeStats.incrementAccumulator ('writtenCategoryFileCount' );
200126 }
201127
202- @override
128+ /// Emits documentation content for the [clazz] .
203129 void generateClass (PackageGraph packageGraph, Library library, Class clazz) {
204130 var data = ClassTemplateData (options, packageGraph, library, clazz);
205131 var content = templates.renderClass (data);
206132 write (writer, clazz.filePath, data, content);
207133 runtimeStats.incrementAccumulator ('writtenClassFileCount' );
208134 }
209135
210- @override
211- void generateConstant (PackageGraph packageGraph, Library library,
212- Container clazz, Field field) =>
213- generateProperty (packageGraph, library, clazz, field);
214-
215- @override
136+ /// Emits documentation content for the [constructor] .
216137 void generateConstructor (PackageGraph packageGraph, Library library,
217138 Constructable constructable, Constructor constructor) {
218139 var data = ConstructorTemplateData (
@@ -222,15 +143,15 @@ abstract class GeneratorBackendBase implements GeneratorBackend {
222143 runtimeStats.incrementAccumulator ('writtenConstructorFileCount' );
223144 }
224145
225- @override
146+ /// Emits documentation content for the [eNum] .
226147 void generateEnum (PackageGraph packageGraph, Library library, Enum eNum) {
227148 var data = EnumTemplateData (options, packageGraph, library, eNum);
228149 var content = templates.renderEnum (data);
229150 write (writer, eNum.filePath, data, content);
230151 runtimeStats.incrementAccumulator ('writtenEnumFileCount' );
231152 }
232153
233- @override
154+ /// Emits documentation content for the [extension] .
234155 void generateExtension (
235156 PackageGraph packageGraph, Library library, Extension extension ) {
236157 var data = ExtensionTemplateData (options, packageGraph, library, extension );
@@ -239,7 +160,7 @@ abstract class GeneratorBackendBase implements GeneratorBackend {
239160 runtimeStats.incrementAccumulator ('writtenExtensionFileCount' );
240161 }
241162
242- @override
163+ /// Emits documentation content for the [extensionType] .
243164 void generateExtensionType (
244165 PackageGraph packageGraph, Library library, ExtensionType extensionType) {
245166 var data = ExtensionTypeTemplateData (
@@ -249,7 +170,7 @@ abstract class GeneratorBackendBase implements GeneratorBackend {
249170 runtimeStats.incrementAccumulator ('writtenExtensionTypeFileCount' );
250171 }
251172
252- @override
173+ /// Emits documentation content for the [function] .
253174 void generateFunction (
254175 PackageGraph packageGraph, Library library, ModelFunction function) {
255176 var data = FunctionTemplateData (options, packageGraph, library, function);
@@ -258,15 +179,15 @@ abstract class GeneratorBackendBase implements GeneratorBackend {
258179 runtimeStats.incrementAccumulator ('writtenFunctionFileCount' );
259180 }
260181
261- @override
182+ /// Emits documentation content for the [library] .
262183 void generateLibrary (PackageGraph packageGraph, Library library) {
263184 var data = LibraryTemplateData (options, packageGraph, library);
264185 var content = templates.renderLibrary (data);
265186 write (writer, library.filePath, data, content);
266187 runtimeStats.incrementAccumulator ('writtenLibraryFileCount' );
267188 }
268189
269- @override
190+ /// Emits documentation content for the [method] .
270191 void generateMethod (PackageGraph packageGraph, Library library,
271192 Container clazz, Method method) {
272193 var data =
@@ -276,23 +197,23 @@ abstract class GeneratorBackendBase implements GeneratorBackend {
276197 runtimeStats.incrementAccumulator ('writtenMethodFileCount' );
277198 }
278199
279- @override
200+ /// Emits documentation content for the [mixin] .
280201 void generateMixin (PackageGraph packageGraph, Library library, Mixin mixin ) {
281202 var data = MixinTemplateData (options, packageGraph, library, mixin );
282203 var content = templates.renderMixin (data);
283204 write (writer, mixin .filePath, data, content);
284205 runtimeStats.incrementAccumulator ('writtenMixinFileCount' );
285206 }
286207
287- @override
208+ /// Emits documentation content for the [package] .
288209 void generatePackage (PackageGraph packageGraph, Package package) {
289210 var data = PackageTemplateData (options, packageGraph, package);
290211 var content = templates.renderIndex (data);
291212 write (writer, package.filePath, data, content);
292213 runtimeStats.incrementAccumulator ('writtenPackageFileCount' );
293214 }
294215
295- @override
216+ /// Emits documentation content for the [field] .
296217 void generateProperty (PackageGraph packageGraph, Library library,
297218 Container clazz, Field field) {
298219 var data =
@@ -302,12 +223,7 @@ abstract class GeneratorBackendBase implements GeneratorBackend {
302223 runtimeStats.incrementAccumulator ('writtenPropertyFileCount' );
303224 }
304225
305- @override
306- void generateTopLevelConstant (PackageGraph packageGraph, Library library,
307- TopLevelVariable constant) =>
308- generateTopLevelProperty (packageGraph, library, constant);
309-
310- @override
226+ /// Emits documentation content for the [property] .
311227 void generateTopLevelProperty (
312228 PackageGraph packageGraph, Library library, TopLevelVariable property) {
313229 var data =
@@ -317,7 +233,7 @@ abstract class GeneratorBackendBase implements GeneratorBackend {
317233 runtimeStats.incrementAccumulator ('writtenTopLevelPropertyFileCount' );
318234 }
319235
320- @override
236+ /// Emits documentation content for the [typedef] .
321237 void generateTypeDef (
322238 PackageGraph packageGraph, Library library, Typedef typedef ) {
323239 var data = TypedefTemplateData (options, packageGraph, library, typedef );
@@ -326,6 +242,6 @@ abstract class GeneratorBackendBase implements GeneratorBackend {
326242 runtimeStats.incrementAccumulator ('writtenTypedefFileCount' );
327243 }
328244
329- @override
330- Future <void > generateAdditionalFiles () async {}
245+ /// Emits files not specific to a Dart language element (like a favicon, etc).
246+ Future <void > generateAdditionalFiles ();
331247}
0 commit comments