@@ -185,6 +185,34 @@ class ClassTemplateData<T extends Class> extends TemplateData<T> {
185185 }
186186}
187187
188+ /// Base template data class for [Extension] .
189+ class ExtensionTemplateData <T extends Extension > extends TemplateData <T > {
190+ final T extension ;
191+ final Library library;
192+
193+ ExtensionTemplateData (HtmlOptions htmlOptions, PackageGraph packageGraph,
194+ this .library, this .extension )
195+ : super (htmlOptions, packageGraph);
196+
197+ @override
198+ T get self => extension ;
199+
200+ @override
201+ String get title =>
202+ '${extension .name } ${extension .kind } - ${library .name } library - Dart API' ;
203+ @override
204+ String get metaDescription =>
205+ 'API docs for the ${extension .name } ${extension .kind } from the '
206+ '${library .name } library, for the Dart programming language.' ;
207+
208+ @override
209+ String get layoutTitle => _layoutTitle (extension .name, extension .kind, false );
210+ @override
211+ List get navLinks => [packageGraph.defaultPackage, library];
212+ @override
213+ String get htmlBase => '..' ;
214+ }
215+
188216class ConstructorTemplateData extends TemplateData <Constructor > {
189217 final Library library;
190218 final Class clazz;
@@ -255,23 +283,26 @@ class FunctionTemplateData extends TemplateData<ModelFunction> {
255283class MethodTemplateData extends TemplateData <Method > {
256284 final Library library;
257285 final Method method;
258- final Class clazz;
286+ final Container clazz;
287+ String container;
259288
260289 MethodTemplateData (HtmlOptions htmlOptions, PackageGraph packageGraph,
261290 this .library, this .clazz, this .method)
262- : super (htmlOptions, packageGraph);
291+ : super (htmlOptions, packageGraph) {
292+ container = clazz.isClass ? 'class' : 'extension' ;
293+ }
263294
264295 @override
265296 Method get self => method;
266297 @override
267- String get title => '${method .name } method - ${clazz .name } class - '
298+ String get title => '${method .name } method - ${clazz .name } ${ container } - '
268299 '${library .name } library - Dart API' ;
269300 @override
270301 String get layoutTitle => _layoutTitle (
271302 method.nameWithGenerics, method.fullkind, method.isDeprecated);
272303 @override
273304 String get metaDescription =>
274- 'API docs for the ${method .name } method from the ${clazz .name } class , '
305+ 'API docs for the ${method .name } method from the ${clazz .name } ${ container } , '
275306 'for the Dart programming language.' ;
276307 @override
277308 List get navLinks => [packageGraph.defaultPackage, library];
@@ -283,25 +314,28 @@ class MethodTemplateData extends TemplateData<Method> {
283314
284315class PropertyTemplateData extends TemplateData <Field > {
285316 final Library library;
286- final Class clazz;
317+ final Container clazz;
287318 final Field property;
319+ String container;
288320
289321 PropertyTemplateData (HtmlOptions htmlOptions, PackageGraph packageGraph,
290322 this .library, this .clazz, this .property)
291- : super (htmlOptions, packageGraph);
323+ : super (htmlOptions, packageGraph) {
324+ container = clazz.isClass ? 'class' : 'extension' ;
325+ }
292326
293327 @override
294328 Field get self => property;
295329
296330 @override
297- String get title => '${property .name } $type - ${clazz .name } class - '
331+ String get title => '${property .name } $type - ${clazz .name } ${ container } - '
298332 '${library .name } library - Dart API' ;
299333 @override
300334 String get layoutTitle =>
301335 _layoutTitle (property.name, type, property.isDeprecated);
302336 @override
303337 String get metaDescription =>
304- 'API docs for the ${property .name } $type from the ${clazz .name } class , '
338+ 'API docs for the ${property .name } $type from the ${clazz .name } ${ container } , '
305339 'for the Dart programming language.' ;
306340 @override
307341 List get navLinks => [packageGraph.defaultPackage, library];
@@ -315,7 +349,7 @@ class PropertyTemplateData extends TemplateData<Field> {
315349
316350class ConstantTemplateData extends PropertyTemplateData {
317351 ConstantTemplateData (HtmlOptions htmlOptions, PackageGraph packageGraph,
318- Library library, Class clazz, Field property)
352+ Library library, Container clazz, Field property)
319353 : super (htmlOptions, packageGraph, library, clazz, property);
320354
321355 @override
0 commit comments