diff --git a/.gitattributes b/.gitattributes index 2e65bac8f6..70dcb0adca 100644 --- a/.gitattributes +++ b/.gitattributes @@ -15,5 +15,4 @@ lib/resources/docs.dart.js.map merge=theirs lib/resources/styles.css merge=theirs lib/src/generator/templates.aot_renderers_for_html.dart merge=theirs lib/src/generator/templates.aot_renderers_for_md.dart merge=theirs -lib/src/generator/templates.runtime_renderers.dart merge=theirs web/sig.txt merge=theirs diff --git a/lib/src/generator/templates.dart b/lib/src/generator/templates.dart index 9b5e1a260c..af8a63c8eb 100644 --- a/lib/src/generator/templates.dart +++ b/lib/src/generator/templates.dart @@ -6,7 +6,6 @@ // functions. These are generated into: // // * templates.aot_renderers_for_html.dart -// * templates.runtime_renderers.dart // // See tool/mustachio/README.md for details. @@ -46,8 +45,6 @@ import 'package:dartdoc/src/element_type.dart'; import 'package:dartdoc/src/generator/template_data.dart'; import 'package:dartdoc/src/generator/templates.aot_renderers_for_html.dart' as aot_renderers_for_html; -import 'package:dartdoc/src/generator/templates.runtime_renderers.dart' - as runtime_renderers; import 'package:dartdoc/src/model/annotation.dart'; import 'package:dartdoc/src/model/model.dart'; import 'package:dartdoc/src/model/tag.dart'; @@ -196,131 +193,3 @@ class HtmlAotTemplates implements Templates { String renderTypedef(TypedefTemplateData context) => aot_renderers_for_html.renderTypedef(context); } - -/// The collection of [Template] objects parsed at runtime. -// TODO(srawlins): Remove this class, and `templates.runtime_renderers.dart`, as -// runtime templates are no longer supported. -class RuntimeTemplates implements Templates { - @override - String renderCategory(CategoryTemplateData context) => - runtime_renderers.renderCategory(context, _categoryTemplate); - - @override - String renderCategoryRedirect(CategoryTemplateData context) => - runtime_renderers.renderCategoryRedirect(context, _categoryTemplate); - - @override - String renderClass(ClassTemplateData context) => - runtime_renderers.renderClass(context, _classTemplate); - - @override - String renderConstructor(ConstructorTemplateData context) => - runtime_renderers.renderConstructor(context, _constructorTemplate); - - @override - String renderEnum(EnumTemplateData context) => - runtime_renderers.renderEnum(context, _enumTemplate); - - @override - String renderError(PackageTemplateData context) => - runtime_renderers.renderError(context, _errorTemplate); - - @override - String renderExtension(ExtensionTemplateData context) => - runtime_renderers.renderExtension(context, _extensionTemplate); - - @override - String renderExtensionType(ExtensionTypeTemplateData context) => - runtime_renderers.renderExtensionType(context, _extensionTemplate); - - @override - String renderFunction(FunctionTemplateData context) => - runtime_renderers.renderFunction(context, _functionTemplate); - - @override - String renderIndex(PackageTemplateData context) => - runtime_renderers.renderIndex(context, _indexTemplate); - - @override - String renderLibrary(LibraryTemplateData context) => - runtime_renderers.renderLibrary(context, _libraryTemplate); - - @override - String renderLibraryRedirect(LibraryTemplateData context) => - runtime_renderers.renderLibraryRedirect(context, _libraryTemplate); - - @override - String renderMethod(MethodTemplateData context) => - runtime_renderers.renderMethod(context, _methodTemplate); - - @override - String renderMixin(MixinTemplateData context) => - runtime_renderers.renderMixin(context, _mixinTemplate); - - @override - String renderProperty(PropertyTemplateData context) => - runtime_renderers.renderProperty(context, _propertyTemplate); - - @override - String renderSearchPage(PackageTemplateData context) => - runtime_renderers.renderSearchPage(context, _searchPageTemplate); - - @override - String renderSidebarForContainer( - TemplateDataWithContainer context) => - runtime_renderers.renderSidebarForContainer( - context, _sidebarContainerTemplate); - - @override - String renderSidebarForLibrary( - TemplateDataWithLibrary context) => - runtime_renderers.renderSidebarForLibrary( - context, _sidebarLibraryTemplate); - - @override - String renderTopLevelProperty(TopLevelPropertyTemplateData context) => - runtime_renderers.renderTopLevelProperty( - context, _topLevelPropertyTemplate); - - @override - String renderTypedef(TypedefTemplateData context) => - runtime_renderers.renderTypedef(context, _typedefTemplate); - - final Template _categoryTemplate; - final Template _classTemplate; - final Template _constructorTemplate; - final Template _enumTemplate; - final Template _errorTemplate; - final Template _extensionTemplate; - final Template _functionTemplate; - final Template _indexTemplate; - final Template _libraryTemplate; - final Template _methodTemplate; - final Template _mixinTemplate; - final Template _propertyTemplate; - final Template _searchPageTemplate; - final Template _sidebarContainerTemplate; - final Template _sidebarLibraryTemplate; - final Template _topLevelPropertyTemplate; - final Template _typedefTemplate; - - RuntimeTemplates._( - this._categoryTemplate, - this._libraryTemplate, - this._classTemplate, - this._constructorTemplate, - this._enumTemplate, - this._errorTemplate, - this._extensionTemplate, - this._functionTemplate, - this._indexTemplate, - this._methodTemplate, - this._mixinTemplate, - this._propertyTemplate, - this._searchPageTemplate, - this._sidebarContainerTemplate, - this._sidebarLibraryTemplate, - this._topLevelPropertyTemplate, - this._typedefTemplate, - ); -} diff --git a/lib/src/generator/templates.runtime_renderers.dart b/lib/src/generator/templates.runtime_renderers.dart deleted file mode 100644 index 360fda7b35..0000000000 --- a/lib/src/generator/templates.runtime_renderers.dart +++ /dev/null @@ -1,25895 +0,0 @@ -// GENERATED CODE. DO NOT EDIT. -// -// To change the contents of this library, make changes to the builder source -// files in the tool/mustachio/ directory. - -// ignore_for_file: camel_case_types, deprecated_member_use_from_same_package -// ignore_for_file: non_constant_identifier_names, unnecessary_string_escapes -// ignore_for_file: unused_import -// ignore_for_file: use_super_parameters - -import 'package:dartdoc/src/element_type.dart'; -import 'package:dartdoc/src/generator/template_data.dart'; -import 'package:dartdoc/src/model/annotation.dart'; -import 'package:dartdoc/src/model/attribute.dart'; -import 'package:dartdoc/src/model/comment_referable.dart'; -import 'package:dartdoc/src/model/model.dart'; -import 'package:dartdoc/src/model/tag.dart'; -import 'package:dartdoc/src/mustachio/parser.dart'; -import 'package:dartdoc/src/mustachio/renderer_base.dart'; -import 'package:dartdoc/src/warnings.dart'; -import 'templates.dart'; - -void _render_Accessor( - Accessor context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_Accessor(context, parent, template, sink); - renderer.renderBlock(ast); -} - -class _Renderer_Accessor extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_ModelElement.propertyMap(), - 'aboveSidebarPath': Property( - getValue: (CT_ c) => c.aboveSidebarPath, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.aboveSidebarPath, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'belowSidebarPath': Property( - getValue: (CT_ c) => c.belowSidebarPath, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.belowSidebarPath == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.belowSidebarPath!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'characterLocation': Property( - getValue: (CT_ c) => c.characterLocation, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'CharacterLocation', - ), - - isNullValue: (CT_ c) => c.characterLocation == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.characterLocation, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['CharacterLocation']!, - ); - }, - ), - 'definingCombo': Property( - getValue: (CT_ c) => c.definingCombo, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = - _Renderer_GetterSetterCombo.propertyMap().getValue( - name, - ); - return nextProperty.renderVariable( - self.getValue(c) as GetterSetterCombo, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.definingCombo, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['GetterSetterCombo']!, - ); - }, - ), - 'documentationComment': Property( - getValue: (CT_ c) => c.documentationComment, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.documentationComment, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'element': Property( - getValue: (CT_ c) => c.element, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'PropertyAccessorElement', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.element, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['PropertyAccessorElement']!, - ); - }, - ), - 'enclosingCombo': Property( - getValue: (CT_ c) => c.enclosingCombo, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = - _Renderer_GetterSetterCombo.propertyMap().getValue( - name, - ); - return nextProperty.renderVariable( - self.getValue(c) as GetterSetterCombo, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.enclosingCombo, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['GetterSetterCombo']!, - ); - }, - ), - 'enclosingElement': Property( - getValue: (CT_ c) => c.enclosingElement, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_ModelElement.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as ModelElement, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_ModelElement( - c.enclosingElement, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'filePath': Property( - getValue: (CT_ c) => c.filePath, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.filePath, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'hasDocumentationComment': Property( - getValue: (CT_ c) => c.hasDocumentationComment, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasDocumentationComment, - ), - 'href': Property( - getValue: (CT_ c) => c.href, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.href == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.href!, ast, r.template, sink, parent: r); - }, - ), - 'isCanonical': Property( - getValue: (CT_ c) => c.isCanonical, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isCanonical, - ), - 'isGetter': Property( - getValue: (CT_ c) => c.isGetter, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isGetter, - ), - 'isSetter': Property( - getValue: (CT_ c) => c.isSetter, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isSetter, - ), - 'isSynthetic': Property( - getValue: (CT_ c) => c.isSynthetic, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isSynthetic, - ), - 'kind': Property( - getValue: (CT_ c) => c.kind, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'Kind'), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.kind, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Kind']!, - ); - }, - ), - 'modelType': Property( - getValue: (CT_ c) => c.modelType, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Callable.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Callable, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Callable( - c.modelType, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'originalMember': Property( - getValue: (CT_ c) => c.originalMember, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'ExecutableElement', - ), - - isNullValue: (CT_ c) => c.originalMember == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.originalMember, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['ExecutableElement']!, - ); - }, - ), - 'referenceChildren': Property( - getValue: (CT_ c) => c.referenceChildren, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Map', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.referenceChildren, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Map']!, - ); - }, - ), - 'referenceParents': Property( - getValue: (CT_ c) => c.referenceParents, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.referenceParents.map( - (e) => renderSimple( - e, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['CommentReferable']!, - ), - ); - }, - ), - 'sourceCode': Property( - getValue: (CT_ c) => c.sourceCode, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.sourceCode, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - }, - ) - as Map>; - - _Renderer_Accessor( - Accessor context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -void _render_Annotation( - Annotation context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_Annotation(context, parent, template, sink); - renderer.renderBlock(ast); -} - -class _Renderer_Annotation extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_Attribute.propertyMap(), - 'cssClassName': Property( - getValue: (CT_ c) => c.cssClassName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.cssClassName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'hashCode': Property( - getValue: (CT_ c) => c.hashCode, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'int'), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.hashCode, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['int']!, - ); - }, - ), - 'isPublic': Property( - getValue: (CT_ c) => c.isPublic, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isPublic, - ), - 'linkedName': Property( - getValue: (CT_ c) => c.linkedName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.linkedName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'linkedNameWithParameters': Property( - getValue: (CT_ c) => c.linkedNameWithParameters, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.linkedNameWithParameters, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - }, - ) - as Map>; - - _Renderer_Annotation( - Annotation context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -class _Renderer_Attribute extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_Object.propertyMap(), - 'cssClassName': Property( - getValue: (CT_ c) => c.cssClassName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.cssClassName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'linkedName': Property( - getValue: (CT_ c) => c.linkedName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.linkedName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'linkedNameWithParameters': Property( - getValue: (CT_ c) => c.linkedNameWithParameters, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.linkedNameWithParameters, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'sortGroup': Property( - getValue: (CT_ c) => c.sortGroup, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'int'), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.sortGroup, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['int']!, - ); - }, - ), - }, - ) - as Map>; - - _Renderer_Attribute( - Attribute context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -void _render_Callable( - Callable context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_Callable(context, parent, template, sink); - renderer.renderBlock(ast); -} - -class _Renderer_Callable extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - 'linkedName': Property( - getValue: (CT_ c) => c.linkedName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.linkedName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'parameters': Property( - getValue: (CT_ c) => c.parameters, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.parameters.map( - (e) => _render_Parameter( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'returnType': Property( - getValue: (CT_ c) => c.returnType, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_ElementType.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as ElementType, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_ElementType( - c.returnType, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'type': Property( - getValue: (CT_ c) => c.type, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'FunctionType', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.type, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['FunctionType']!, - ); - }, - ), - }, - ) - as Map>; - - _Renderer_Callable( - Callable context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -class _Renderer_CanonicalFor extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - 'canonicalFor': Property( - getValue: (CT_ c) => c.canonicalFor, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Set', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.canonicalFor.map( - (e) => - _render_String(e, ast, r.template, sink, parent: r), - ); - }, - ), - }, - ) - as Map>; - - _Renderer_CanonicalFor( - CanonicalFor context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -class _Renderer_Categorization extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - 'categoryNames': Property( - getValue: (CT_ c) => c.categoryNames, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - isNullValue: (CT_ c) => c.categoryNames == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.categoryNames, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['List']!, - ); - }, - ), - 'displayedCategories': Property( - getValue: (CT_ c) => c.displayedCategories, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.displayedCategories.map( - (e) => _render_Category( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'hasCategorization': Property( - getValue: (CT_ c) => c.hasCategorization, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasCategorization, - ), - 'hasCategoryNames': Property( - getValue: (CT_ c) => c.hasCategoryNames, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasCategoryNames, - ), - 'hasSubCategoryNames': Property( - getValue: (CT_ c) => c.hasSubCategoryNames, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasSubCategoryNames, - ), - 'subCategoryNames': Property( - getValue: (CT_ c) => c.subCategoryNames, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - isNullValue: (CT_ c) => c.subCategoryNames == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.subCategoryNames, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['List']!, - ); - }, - ), - }, - ) - as Map>; - - _Renderer_Categorization( - Categorization context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -void _render_Category( - Category context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_Category(context, parent, template, sink); - renderer.renderBlock(ast); -} - -class _Renderer_Category extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_Object.propertyMap(), - ..._Renderer_Nameable.propertyMap(), - ..._Renderer_Warnable.propertyMap(), - ..._Renderer_CommentReferable.propertyMap(), - ..._Renderer_Locatable.propertyMap(), - ..._Renderer_MarkdownFileDocumentation.propertyMap(), - ..._Renderer_LibraryContainer.propertyMap(), - ..._Renderer_TopLevelContainer.propertyMap(), - 'aboveSidebarPath': Property( - getValue: (CT_ c) => c.aboveSidebarPath, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.aboveSidebarPath == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.aboveSidebarPath!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'belowSidebarPath': Property( - getValue: (CT_ c) => c.belowSidebarPath, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.belowSidebarPath == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.belowSidebarPath!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'categoryIndex': Property( - getValue: (CT_ c) => c.categoryIndex, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'int'), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.categoryIndex, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['int']!, - ); - }, - ), - 'categoryLabel': Property( - getValue: (CT_ c) => c.categoryLabel, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.categoryLabel, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'classes': Property( - getValue: (CT_ c) => c.classes, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.classes.map( - (e) => - _render_Class(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'config': Property( - getValue: (CT_ c) => c.config, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'DartdocOptionContext', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.config, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['DartdocOptionContext']!, - ); - }, - ), - 'constants': Property( - getValue: (CT_ c) => c.constants, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Set', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.constants.map( - (e) => _render_TopLevelVariable( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'containerOrder': Property( - getValue: (CT_ c) => c.containerOrder, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.containerOrder.map( - (e) => - _render_String(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'documentationFile': Property( - getValue: (CT_ c) => c.documentationFile, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'File'), - - isNullValue: (CT_ c) => c.documentationFile == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.documentationFile, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['File']!, - ); - }, - ), - 'documentationFrom': Property( - getValue: (CT_ c) => c.documentationFrom, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.documentationFrom.map( - (e) => renderSimple( - e, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Locatable']!, - ), - ); - }, - ), - 'documentedWhere': Property( - getValue: (CT_ c) => c.documentedWhere, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'DocumentLocation', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.documentedWhere, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['DocumentLocation']!, - ); - }, - ), - 'element': Property( - getValue: (CT_ c) => c.element, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'Element'), - - isNullValue: (CT_ c) => c.element == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.element, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Element']!, - ); - }, - ), - 'enclosingName': Property( - getValue: (CT_ c) => c.enclosingName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.enclosingName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'enums': Property( - getValue: (CT_ c) => c.enums, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Set', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.enums.map( - (e) => - _render_Enum(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'exceptions': Property( - getValue: (CT_ c) => c.exceptions, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.exceptions.map( - (e) => - _render_Class(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'extensionTypes': Property( - getValue: (CT_ c) => c.extensionTypes, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Set', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.extensionTypes.map( - (e) => _render_ExtensionType( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'extensions': Property( - getValue: (CT_ c) => c.extensions, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Set', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.extensions.map( - (e) => _render_Extension( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'externalItems': Property( - getValue: (CT_ c) => c.externalItems, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.externalItems.map( - (e) => _render_ExternalItem( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'fileName': Property( - getValue: (CT_ c) => c.fileName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.fileName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'filePath': Property( - getValue: (CT_ c) => c.filePath, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.filePath, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'functions': Property( - getValue: (CT_ c) => c.functions, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Set', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.functions.map( - (e) => _render_ModelFunction( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'href': Property( - getValue: (CT_ c) => c.href, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.href == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.href!, ast, r.template, sink, parent: r); - }, - ), - 'isCanonical': Property( - getValue: (CT_ c) => c.isCanonical, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isCanonical, - ), - 'isDocumented': Property( - getValue: (CT_ c) => c.isDocumented, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isDocumented, - ), - 'kind': Property( - getValue: (CT_ c) => c.kind, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'Kind'), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.kind, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Kind']!, - ); - }, - ), - 'linkedName': Property( - getValue: (CT_ c) => c.linkedName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.linkedName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'mixins': Property( - getValue: (CT_ c) => c.mixins, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Set', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.mixins.map( - (e) => - _render_Mixin(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'name': Property( - getValue: (CT_ c) => c.name, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.name, ast, r.template, sink, parent: r); - }, - ), - 'package': Property( - getValue: (CT_ c) => c.package, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Package.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Package, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Package( - c.package, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'packageGraph': Property( - getValue: (CT_ c) => c.packageGraph, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'PackageGraph', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.packageGraph, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['PackageGraph']!, - ); - }, - ), - 'properties': Property( - getValue: (CT_ c) => c.properties, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Set', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.properties.map( - (e) => _render_TopLevelVariable( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'redirectFilePath': Property( - getValue: (CT_ c) => c.redirectFilePath, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.redirectFilePath, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'referenceChildren': Property( - getValue: (CT_ c) => c.referenceChildren, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Map', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.referenceChildren, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Map']!, - ); - }, - ), - 'referenceParents': Property( - getValue: (CT_ c) => c.referenceParents, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.referenceParents.map( - (e) => renderSimple( - e, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['CommentReferable']!, - ), - ); - }, - ), - 'sortKey': Property( - getValue: (CT_ c) => c.sortKey, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.sortKey, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'typedefs': Property( - getValue: (CT_ c) => c.typedefs, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Set', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.typedefs.map( - (e) => _render_Typedef( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - }, - ) - as Map>; - - _Renderer_Category( - Category context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -String renderCategoryRedirect(CategoryTemplateData context, Template template) { - var buffer = StringBuffer(); - _render_CategoryTemplateData(context, template.ast, template, buffer); - return buffer.toString(); -} - -void _render_CategoryTemplateData( - CategoryTemplateData context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_CategoryTemplateData( - context, - parent, - template, - sink, - ); - renderer.renderBlock(ast); -} - -class _Renderer_CategoryTemplateData - extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> - propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_TemplateData.propertyMap(), - ..._Renderer_OneDirectoryDown.propertyMap(), - 'category': Property( - getValue: (CT_ c) => c.category, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Category.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Category, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Category( - c.category, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'layoutTitle': Property( - getValue: (CT_ c) => c.layoutTitle, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.layoutTitle, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'metaDescription': Property( - getValue: (CT_ c) => c.metaDescription, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.metaDescription, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'navLinks': Property( - getValue: (CT_ c) => c.navLinks, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.navLinks.map( - (e) => _render_Documentable( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'self': Property( - getValue: (CT_ c) => c.self, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Category.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Category, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Category( - c.self, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'title': Property( - getValue: (CT_ c) => c.title, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.title, ast, r.template, sink, parent: r); - }, - ), - }, - ) - as Map>; - - _Renderer_CategoryTemplateData( - CategoryTemplateData context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -String renderCategory(CategoryTemplateData context, Template template) { - var buffer = StringBuffer(); - _render_CategoryTemplateData(context, template.ast, template, buffer); - return buffer.toString(); -} - -void _render_Class( - Class context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_Class(context, parent, template, sink); - renderer.renderBlock(ast); -} - -class _Renderer_Class extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_InheritingContainer.propertyMap(), - ..._Renderer_Constructable.propertyMap(), - ..._Renderer_MixedInTypes.propertyMap(), - 'allModelElements': Property( - getValue: (CT_ c) => c.allModelElements, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.allModelElements.map( - (e) => _render_ModelElement( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'element': Property( - getValue: (CT_ c) => c.element, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'ClassElement', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.element, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['ClassElement']!, - ); - }, - ), - 'fileName': Property( - getValue: (CT_ c) => c.fileName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.fileName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'isAbstract': Property( - getValue: (CT_ c) => c.isAbstract, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isAbstract, - ), - 'isBase': Property( - getValue: (CT_ c) => c.isBase, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isBase, - ), - 'isErrorOrException': Property( - getValue: (CT_ c) => c.isErrorOrException, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isErrorOrException, - ), - 'isFinal': Property( - getValue: (CT_ c) => c.isFinal, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isFinal, - ), - 'isImplementableInterface': Property( - getValue: (CT_ c) => c.isImplementableInterface, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isImplementableInterface, - ), - 'isMixinClass': Property( - getValue: (CT_ c) => c.isMixinClass, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isMixinClass, - ), - 'isSealed': Property( - getValue: (CT_ c) => c.isSealed, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isSealed, - ), - 'kind': Property( - getValue: (CT_ c) => c.kind, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'Kind'), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.kind, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Kind']!, - ); - }, - ), - 'relationshipsClass': Property( - getValue: (CT_ c) => c.relationshipsClass, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.relationshipsClass, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'sidebarPath': Property( - getValue: (CT_ c) => c.sidebarPath, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.sidebarPath, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - }, - ) - as Map>; - - _Renderer_Class( - Class context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -String renderClass(ClassTemplateData context, Template template) { - var buffer = StringBuffer(); - _render_ClassTemplateData(context, template.ast, template, buffer); - return buffer.toString(); -} - -void _render_ClassTemplateData( - ClassTemplateData context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_ClassTemplateData(context, parent, template, sink); - renderer.renderBlock(ast); -} - -class _Renderer_ClassTemplateData extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> - propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_InheritingContainerTemplateData.propertyMap< - Class, - CT_ - >(), - 'clazz': Property( - getValue: (CT_ c) => c.clazz, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Class.propertyMap().getValue( - name, - ); - return nextProperty.renderVariable( - self.getValue(c) as Class, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Class(c.clazz, ast, r.template, sink, parent: r); - }, - ), - }, - ) - as Map>; - - _Renderer_ClassTemplateData( - ClassTemplateData context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -class _Renderer_CommentReferable extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> - propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - 'href': Property( - getValue: (CT_ c) => c.href, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.href == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.href!, ast, r.template, sink, parent: r); - }, - ), - 'library': Property( - getValue: (CT_ c) => c.library, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Library.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Library, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.library == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Library( - c.library!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'referenceChildren': Property( - getValue: (CT_ c) => c.referenceChildren, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Map', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.referenceChildren, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Map']!, - ); - }, - ), - 'referenceGrandparentOverrides': Property( - getValue: (CT_ c) => c.referenceGrandparentOverrides, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - isNullValue: (CT_ c) => c.referenceGrandparentOverrides == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.referenceGrandparentOverrides, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Iterable']!, - ); - }, - ), - 'referenceName': Property( - getValue: (CT_ c) => c.referenceName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.referenceName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'referenceParents': Property( - getValue: (CT_ c) => c.referenceParents, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.referenceParents.map( - (e) => renderSimple( - e, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['CommentReferable']!, - ), - ); - }, - ), - 'scope': Property( - getValue: (CT_ c) => c.scope, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'Scope'), - - isNullValue: (CT_ c) => c.scope == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.scope, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Scope']!, - ); - }, - ), - }, - ) - as Map>; - - _Renderer_CommentReferable( - CommentReferable context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -class _Renderer_Constructable extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - 'constructors': Property( - getValue: (CT_ c) => c.constructors, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.constructors.map( - (e) => _render_Constructor( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'hasPublicConstructors': Property( - getValue: (CT_ c) => c.hasPublicConstructors, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasPublicConstructors, - ), - 'publicConstructorsSorted': Property( - getValue: (CT_ c) => c.publicConstructorsSorted, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.publicConstructorsSorted.map( - (e) => _render_Constructor( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - }, - ) - as Map>; - - _Renderer_Constructable( - Constructable context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -void _render_Constructor( - Constructor context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_Constructor(context, parent, template, sink); - renderer.renderBlock(ast); -} - -class _Renderer_Constructor extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_ModelElement.propertyMap(), - ..._Renderer_ContainerMember.propertyMap(), - ..._Renderer_TypeParameters.propertyMap(), - 'aboveSidebarPath': Property( - getValue: (CT_ c) => c.aboveSidebarPath, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.aboveSidebarPath, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'belowSidebarPath': Property( - getValue: (CT_ c) => c.belowSidebarPath, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.belowSidebarPath == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.belowSidebarPath!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'characterLocation': Property( - getValue: (CT_ c) => c.characterLocation, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'CharacterLocation', - ), - - isNullValue: (CT_ c) => c.characterLocation == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.characterLocation, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['CharacterLocation']!, - ); - }, - ), - 'element': Property( - getValue: (CT_ c) => c.element, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'ConstructorElement', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.element, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['ConstructorElement']!, - ); - }, - ), - 'enclosingElement': Property( - getValue: (CT_ c) => c.enclosingElement, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Container.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Container, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Container( - c.enclosingElement, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'fileName': Property( - getValue: (CT_ c) => c.fileName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.fileName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'fullKind': Property( - getValue: (CT_ c) => c.fullKind, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.fullKind, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'fullyQualifiedName': Property( - getValue: (CT_ c) => c.fullyQualifiedName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.fullyQualifiedName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'isConst': Property( - getValue: (CT_ c) => c.isConst, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isConst, - ), - 'isFactory': Property( - getValue: (CT_ c) => c.isFactory, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isFactory, - ), - 'isPublic': Property( - getValue: (CT_ c) => c.isPublic, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isPublic, - ), - 'isUnnamedConstructor': Property( - getValue: (CT_ c) => c.isUnnamedConstructor, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isUnnamedConstructor, - ), - 'kind': Property( - getValue: (CT_ c) => c.kind, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'Kind'), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.kind, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Kind']!, - ); - }, - ), - 'modelType': Property( - getValue: (CT_ c) => c.modelType, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Callable.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Callable, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Callable( - c.modelType, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'name': Property( - getValue: (CT_ c) => c.name, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.name, ast, r.template, sink, parent: r); - }, - ), - 'nameWithGenerics': Property( - getValue: (CT_ c) => c.nameWithGenerics, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.nameWithGenerics, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'referenceChildren': Property( - getValue: (CT_ c) => c.referenceChildren, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Map', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.referenceChildren, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Map']!, - ); - }, - ), - 'referenceName': Property( - getValue: (CT_ c) => c.referenceName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.referenceName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'shortName': Property( - getValue: (CT_ c) => c.shortName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.shortName == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.shortName!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'typeParameters': Property( - getValue: (CT_ c) => c.typeParameters, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.typeParameters.map( - (e) => _render_TypeParameter( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - }, - ) - as Map>; - - _Renderer_Constructor( - Constructor context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -String renderConstructor(ConstructorTemplateData context, Template template) { - var buffer = StringBuffer(); - _render_ConstructorTemplateData(context, template.ast, template, buffer); - return buffer.toString(); -} - -void _render_ConstructorTemplateData( - ConstructorTemplateData context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_ConstructorTemplateData( - context, - parent, - template, - sink, - ); - renderer.renderBlock(ast); -} - -class _Renderer_ConstructorTemplateData - extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> - propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_TemplateData.propertyMap(), - ..._Renderer_TwoDirectoriesDown.propertyMap(), - 'constructable': Property( - getValue: (CT_ c) => c.constructable, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Constructable.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Constructable, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.constructable, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Constructable']!, - ); - }, - ), - 'constructor': Property( - getValue: (CT_ c) => c.constructor, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Constructor.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Constructor, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Constructor( - c.constructor, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'container': Property( - getValue: (CT_ c) => c.container, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Container.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Container, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Container( - c.container, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'layoutTitle': Property( - getValue: (CT_ c) => c.layoutTitle, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.layoutTitle, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'library': Property( - getValue: (CT_ c) => c.library, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Library.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Library, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Library( - c.library, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'metaDescription': Property( - getValue: (CT_ c) => c.metaDescription, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.metaDescription, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'navLinks': Property( - getValue: (CT_ c) => c.navLinks, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.navLinks.map( - (e) => _render_Documentable( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'navLinksWithGenerics': Property( - getValue: (CT_ c) => c.navLinksWithGenerics, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.navLinksWithGenerics.map( - (e) => _render_Container( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'self': Property( - getValue: (CT_ c) => c.self, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Constructor.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Constructor, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Constructor( - c.self, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'title': Property( - getValue: (CT_ c) => c.title, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.title, ast, r.template, sink, parent: r); - }, - ), - }, - ) - as Map>; - - _Renderer_ConstructorTemplateData( - ConstructorTemplateData context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -void _render_Container( - Container context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_Container(context, parent, template, sink); - renderer.renderBlock(ast); -} - -class _Renderer_Container extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_ModelElement.propertyMap(), - ..._Renderer_Categorization.propertyMap(), - ..._Renderer_TypeParameters.propertyMap(), - 'aboveSidebarPath': Property( - getValue: (CT_ c) => c.aboveSidebarPath, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.aboveSidebarPath, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'allCanonicalModelElements': Property( - getValue: (CT_ c) => c.allCanonicalModelElements, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.allCanonicalModelElements.map( - (e) => _render_ModelElement( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'allModelElements': Property( - getValue: (CT_ c) => c.allModelElements, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.allModelElements.map( - (e) => _render_ModelElement( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'availableInstanceFieldsSorted': Property( - getValue: (CT_ c) => c.availableInstanceFieldsSorted, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.availableInstanceFieldsSorted.map( - (e) => - _render_Field(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'availableInstanceMethodsSorted': Property( - getValue: (CT_ c) => c.availableInstanceMethodsSorted, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.availableInstanceMethodsSorted.map( - (e) => - _render_Method(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'availableInstanceOperatorsSorted': Property( - getValue: (CT_ c) => c.availableInstanceOperatorsSorted, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.availableInstanceOperatorsSorted.map( - (e) => _render_Operator( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'belowSidebarPath': Property( - getValue: (CT_ c) => c.belowSidebarPath, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.belowSidebarPath, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'constantFields': Property( - getValue: (CT_ c) => c.constantFields, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.constantFields.map( - (e) => - _render_Field(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'declaredFields': Property( - getValue: (CT_ c) => c.declaredFields, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.declaredFields.map( - (e) => - _render_Field(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'declaredMethods': Property( - getValue: (CT_ c) => c.declaredMethods, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.declaredMethods.map( - (e) => - _render_Method(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'declaredOperators': Property( - getValue: (CT_ c) => c.declaredOperators, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.declaredOperators.map( - (e) => _render_Operator( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'element': Property( - getValue: (CT_ c) => c.element, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'Element'), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.element, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Element']!, - ); - }, - ), - 'enclosingElement': Property( - getValue: (CT_ c) => c.enclosingElement, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_ModelElement.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as ModelElement, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_ModelElement( - c.enclosingElement, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'hasAvailableInstanceFields': Property( - getValue: (CT_ c) => c.hasAvailableInstanceFields, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasAvailableInstanceFields, - ), - 'hasAvailableInstanceMethods': Property( - getValue: (CT_ c) => c.hasAvailableInstanceMethods, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasAvailableInstanceMethods, - ), - 'hasAvailableInstanceOperators': Property( - getValue: (CT_ c) => c.hasAvailableInstanceOperators, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasAvailableInstanceOperators, - ), - 'hasInstanceFields': Property( - getValue: (CT_ c) => c.hasInstanceFields, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasInstanceFields, - ), - 'hasParameters': Property( - getValue: (CT_ c) => c.hasParameters, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasParameters, - ), - 'hasPublicConstantFields': Property( - getValue: (CT_ c) => c.hasPublicConstantFields, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasPublicConstantFields, - ), - 'hasPublicConstructors': Property( - getValue: (CT_ c) => c.hasPublicConstructors, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasPublicConstructors, - ), - 'hasPublicEnumValues': Property( - getValue: (CT_ c) => c.hasPublicEnumValues, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasPublicEnumValues, - ), - 'hasPublicStaticFields': Property( - getValue: (CT_ c) => c.hasPublicStaticFields, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasPublicStaticFields, - ), - 'hasPublicStaticMethods': Property( - getValue: (CT_ c) => c.hasPublicStaticMethods, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasPublicStaticMethods, - ), - 'hasPublicVariableStaticFields': Property( - getValue: (CT_ c) => c.hasPublicVariableStaticFields, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasPublicVariableStaticFields, - ), - 'instanceAccessors': Property( - getValue: (CT_ c) => c.instanceAccessors, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.instanceAccessors.map( - (e) => _render_Accessor( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'instanceFields': Property( - getValue: (CT_ c) => c.instanceFields, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.instanceFields.map( - (e) => - _render_Field(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'instanceMethods': Property( - getValue: (CT_ c) => c.instanceMethods, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.instanceMethods.map( - (e) => - _render_Method(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'instanceOperators': Property( - getValue: (CT_ c) => c.instanceOperators, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.instanceOperators.map( - (e) => _render_Operator( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'isDartCoreObject': Property( - getValue: (CT_ c) => c.isDartCoreObject, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isDartCoreObject, - ), - 'isEnum': Property( - getValue: (CT_ c) => c.isEnum, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isEnum, - ), - 'isExtension': Property( - getValue: (CT_ c) => c.isExtension, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isExtension, - ), - 'isInterface': Property( - getValue: (CT_ c) => c.isInterface, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isInterface, - ), - 'isMixin': Property( - getValue: (CT_ c) => c.isMixin, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isMixin, - ), - 'publicConstantFieldsSorted': Property( - getValue: (CT_ c) => c.publicConstantFieldsSorted, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.publicConstantFieldsSorted.map( - (e) => - _render_Field(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'publicConstructorsSorted': Property( - getValue: (CT_ c) => c.publicConstructorsSorted, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.publicConstructorsSorted.map( - (e) => _render_Constructor( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'publicEnumValues': Property( - getValue: (CT_ c) => c.publicEnumValues, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.publicEnumValues.map( - (e) => - _render_Field(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'publicInheritedInstanceFields': Property( - getValue: (CT_ c) => c.publicInheritedInstanceFields, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.publicInheritedInstanceFields, - ), - 'publicInheritedInstanceMethods': Property( - getValue: (CT_ c) => c.publicInheritedInstanceMethods, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.publicInheritedInstanceMethods, - ), - 'publicInheritedInstanceOperators': Property( - getValue: (CT_ c) => c.publicInheritedInstanceOperators, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.publicInheritedInstanceOperators, - ), - 'publicStaticFieldsSorted': Property( - getValue: (CT_ c) => c.publicStaticFieldsSorted, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.publicStaticFieldsSorted.map( - (e) => - _render_Field(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'publicStaticMethodsSorted': Property( - getValue: (CT_ c) => c.publicStaticMethodsSorted, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.publicStaticMethodsSorted.map( - (e) => - _render_Method(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'publicVariableStaticFieldsSorted': Property( - getValue: (CT_ c) => c.publicVariableStaticFieldsSorted, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.publicVariableStaticFieldsSorted.map( - (e) => - _render_Field(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'referenceChildren': Property( - getValue: (CT_ c) => c.referenceChildren, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Map', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.referenceChildren, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Map']!, - ); - }, - ), - 'referenceParents': Property( - getValue: (CT_ c) => c.referenceParents, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.referenceParents.map( - (e) => renderSimple( - e, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['CommentReferable']!, - ), - ); - }, - ), - 'relationshipsClass': Property( - getValue: (CT_ c) => c.relationshipsClass, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.relationshipsClass, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'scope': Property( - getValue: (CT_ c) => c.scope, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'Scope'), - - isNullValue: (CT_ c) => c.scope == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.scope, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Scope']!, - ); - }, - ), - 'sidebarPath': Property( - getValue: (CT_ c) => c.sidebarPath, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.sidebarPath, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'staticAccessors': Property( - getValue: (CT_ c) => c.staticAccessors, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.staticAccessors.map( - (e) => _render_Accessor( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'staticFields': Property( - getValue: (CT_ c) => c.staticFields, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.staticFields.map( - (e) => - _render_Field(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'staticMethods': Property( - getValue: (CT_ c) => c.staticMethods, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.staticMethods.map( - (e) => - _render_Method(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'variableStaticFields': Property( - getValue: (CT_ c) => c.variableStaticFields, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.variableStaticFields.map( - (e) => - _render_Field(e, ast, r.template, sink, parent: r), - ); - }, - ), - }, - ) - as Map>; - - _Renderer_Container( - Container context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -void _render_ContainerAccessor( - ContainerAccessor context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_ContainerAccessor(context, parent, template, sink); - renderer.renderBlock(ast); -} - -class _Renderer_ContainerAccessor extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> - propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_Accessor.propertyMap(), - ..._Renderer_ContainerMember.propertyMap(), - ..._Renderer_Inheritable.propertyMap(), - 'characterLocation': Property( - getValue: (CT_ c) => c.characterLocation, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'CharacterLocation', - ), - - isNullValue: (CT_ c) => c.characterLocation == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.characterLocation, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['CharacterLocation']!, - ); - }, - ), - 'enclosingElement': Property( - getValue: (CT_ c) => c.enclosingElement, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Container.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Container, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Container( - c.enclosingElement, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'isCovariant': Property( - getValue: (CT_ c) => c.isCovariant, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isCovariant, - ), - 'isInherited': Property( - getValue: (CT_ c) => c.isInherited, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isInherited, - ), - 'overriddenElement': Property( - getValue: (CT_ c) => c.overriddenElement, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = - _Renderer_ContainerAccessor.propertyMap().getValue( - name, - ); - return nextProperty.renderVariable( - self.getValue(c) as ContainerAccessor, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.overriddenElement == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_ContainerAccessor( - c.overriddenElement!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - }, - ) - as Map>; - - _Renderer_ContainerAccessor( - ContainerAccessor context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -class _Renderer_ContainerMember extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> - propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - 'attributes': Property( - getValue: (CT_ c) => c.attributes, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Set', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.attributes.map( - (e) => renderSimple( - e, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Attribute']!, - ), - ); - }, - ), - 'canonicalEnclosingContainer': Property( - getValue: (CT_ c) => c.canonicalEnclosingContainer, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Container.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Container, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.canonicalEnclosingContainer == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Container( - c.canonicalEnclosingContainer!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'enclosingElement': Property( - getValue: (CT_ c) => c.enclosingElement, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Container.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Container, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Container( - c.enclosingElement, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'filePath': Property( - getValue: (CT_ c) => c.filePath, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.filePath, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'isExtended': Property( - getValue: (CT_ c) => c.isExtended, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isExtended, - ), - 'referenceGrandparentOverrides': Property( - getValue: (CT_ c) => c.referenceGrandparentOverrides, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.referenceGrandparentOverrides.map( - (e) => _render_Library( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'referenceParents': Property( - getValue: (CT_ c) => c.referenceParents, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.referenceParents.map( - (e) => _render_Container( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - }, - ) - as Map>; - - _Renderer_ContainerMember( - ContainerMember context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -void _render_DefinedElementType( - DefinedElementType context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_DefinedElementType(context, parent, template, sink); - renderer.renderBlock(ast); -} - -class _Renderer_DefinedElementType extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> - propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_ElementType.propertyMap(), - 'fullyQualifiedName': Property( - getValue: (CT_ c) => c.fullyQualifiedName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.fullyQualifiedName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'isPublic': Property( - getValue: (CT_ c) => c.isPublic, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isPublic, - ), - 'modelElement': Property( - getValue: (CT_ c) => c.modelElement, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_ModelElement.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as ModelElement, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_ModelElement( - c.modelElement, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'name': Property( - getValue: (CT_ c) => c.name, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.name, ast, r.template, sink, parent: r); - }, - ), - 'referenceChildren': Property( - getValue: (CT_ c) => c.referenceChildren, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Map', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.referenceChildren, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Map']!, - ); - }, - ), - 'referenceGrandparentOverrides': Property( - getValue: (CT_ c) => c.referenceGrandparentOverrides, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - isNullValue: (CT_ c) => c.referenceGrandparentOverrides == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.referenceGrandparentOverrides, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Iterable']!, - ); - }, - ), - 'referenceParents': Property( - getValue: (CT_ c) => c.referenceParents, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.referenceParents.map( - (e) => renderSimple( - e, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['CommentReferable']!, - ), - ); - }, - ), - 'typeArguments': Property( - getValue: (CT_ c) => c.typeArguments, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.typeArguments.map( - (e) => _render_ElementType( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - }, - ) - as Map>; - - _Renderer_DefinedElementType( - DefinedElementType context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -void _render_Documentable( - Documentable context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_Documentable(context, parent, template, sink); - renderer.renderBlock(ast); -} - -class _Renderer_Documentable extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_Object.propertyMap(), - ..._Renderer_Nameable.propertyMap(), - 'aboveSidebarPath': Property( - getValue: (CT_ c) => c.aboveSidebarPath, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.aboveSidebarPath == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.aboveSidebarPath!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'belowSidebarPath': Property( - getValue: (CT_ c) => c.belowSidebarPath, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.belowSidebarPath == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.belowSidebarPath!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'config': Property( - getValue: (CT_ c) => c.config, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'DartdocOptionContext', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.config, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['DartdocOptionContext']!, - ); - }, - ), - 'documentation': Property( - getValue: (CT_ c) => c.documentation, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.documentation == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.documentation!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'documentationAsHtml': Property( - getValue: (CT_ c) => c.documentationAsHtml, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.documentationAsHtml, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'hasDocumentation': Property( - getValue: (CT_ c) => c.hasDocumentation, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasDocumentation, - ), - 'href': Property( - getValue: (CT_ c) => c.href, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.href == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.href!, ast, r.template, sink, parent: r); - }, - ), - 'isDocumented': Property( - getValue: (CT_ c) => c.isDocumented, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isDocumented, - ), - 'kind': Property( - getValue: (CT_ c) => c.kind, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'Kind'), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.kind, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Kind']!, - ); - }, - ), - 'oneLineDoc': Property( - getValue: (CT_ c) => c.oneLineDoc, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.oneLineDoc, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'package': Property( - getValue: (CT_ c) => c.package, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Package.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Package, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Package( - c.package, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'packageGraph': Property( - getValue: (CT_ c) => c.packageGraph, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'PackageGraph', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.packageGraph, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['PackageGraph']!, - ); - }, - ), - }, - ) - as Map>; - - _Renderer_Documentable( - Documentable context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -class _Renderer_DocumentationComment - extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> - propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - 'documentationAsHtml': Property( - getValue: (CT_ c) => c.documentationAsHtml, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.documentationAsHtml, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'documentationComment': Property( - getValue: (CT_ c) => c.documentationComment, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.documentationComment, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'documentationFrom': Property( - getValue: (CT_ c) => c.documentationFrom, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.documentationFrom.map( - (e) => renderSimple( - e, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['DocumentationComment']!, - ), - ); - }, - ), - 'documentationLocal': Property( - getValue: (CT_ c) => c.documentationLocal, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.documentationLocal, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'element': Property( - getValue: (CT_ c) => c.element, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'Element'), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.element, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Element']!, - ); - }, - ), - 'elementDocumentation': Property( - getValue: (CT_ c) => c.elementDocumentation, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Documentation', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.elementDocumentation, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Documentation']!, - ); - }, - ), - 'hasDocumentationComment': Property( - getValue: (CT_ c) => c.hasDocumentationComment, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasDocumentationComment, - ), - 'hasNodoc': Property( - getValue: (CT_ c) => c.hasNodoc, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasNodoc, - ), - 'needsPrecache': Property( - getValue: (CT_ c) => c.needsPrecache, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.needsPrecache, - ), - 'pathContext': Property( - getValue: (CT_ c) => c.pathContext, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'Context'), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.pathContext, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Context']!, - ); - }, - ), - 'sourceFileName': Property( - getValue: (CT_ c) => c.sourceFileName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.sourceFileName == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.sourceFileName!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - }, - ) - as Map>; - - _Renderer_DocumentationComment( - DocumentationComment context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -void _render_ElementType( - ElementType context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_ElementType(context, parent, template, sink); - renderer.renderBlock(ast); -} - -class _Renderer_ElementType extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_Object.propertyMap(), - ..._Renderer_CommentReferable.propertyMap(), - ..._Renderer_Nameable.propertyMap(), - 'breadcrumbName': Property( - getValue: (CT_ c) => c.breadcrumbName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.breadcrumbName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'displayName': Property( - getValue: (CT_ c) => c.displayName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.displayName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'isTypedef': Property( - getValue: (CT_ c) => c.isTypedef, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isTypedef, - ), - 'library': Property( - getValue: (CT_ c) => c.library, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Library.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Library, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Library( - c.library, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'linkedName': Property( - getValue: (CT_ c) => c.linkedName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.linkedName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'nameWithGenerics': Property( - getValue: (CT_ c) => c.nameWithGenerics, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.nameWithGenerics, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'nameWithGenericsPlain': Property( - getValue: (CT_ c) => c.nameWithGenericsPlain, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.nameWithGenericsPlain, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'nullabilitySuffix': Property( - getValue: (CT_ c) => c.nullabilitySuffix, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.nullabilitySuffix, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'packageGraph': Property( - getValue: (CT_ c) => c.packageGraph, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'PackageGraph', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.packageGraph, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['PackageGraph']!, - ); - }, - ), - 'type': Property( - getValue: (CT_ c) => c.type, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'DartType', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.type, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['DartType']!, - ); - }, - ), - 'typeArguments': Property( - getValue: (CT_ c) => c.typeArguments, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.typeArguments.map( - (e) => _render_ElementType( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - }, - ) - as Map>; - - _Renderer_ElementType( - ElementType context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -void _render_Enum( - Enum context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_Enum(context, parent, template, sink); - renderer.renderBlock(ast); -} - -class _Renderer_Enum extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_InheritingContainer.propertyMap(), - ..._Renderer_Constructable.propertyMap(), - ..._Renderer_MixedInTypes.propertyMap(), - 'allModelElements': Property( - getValue: (CT_ c) => c.allModelElements, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.allModelElements.map( - (e) => _render_ModelElement( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'constantFields': Property( - getValue: (CT_ c) => c.constantFields, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.constantFields.map( - (e) => - _render_Field(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'element': Property( - getValue: (CT_ c) => c.element, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'EnumElement', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.element, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['EnumElement']!, - ); - }, - ), - 'fileName': Property( - getValue: (CT_ c) => c.fileName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.fileName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'isAbstract': Property( - getValue: (CT_ c) => c.isAbstract, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isAbstract, - ), - 'isBase': Property( - getValue: (CT_ c) => c.isBase, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isBase, - ), - 'isImplementableInterface': Property( - getValue: (CT_ c) => c.isImplementableInterface, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isImplementableInterface, - ), - 'isMixinClass': Property( - getValue: (CT_ c) => c.isMixinClass, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isMixinClass, - ), - 'isSealed': Property( - getValue: (CT_ c) => c.isSealed, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isSealed, - ), - 'kind': Property( - getValue: (CT_ c) => c.kind, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'Kind'), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.kind, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Kind']!, - ); - }, - ), - 'publicEnumValues': Property( - getValue: (CT_ c) => c.publicEnumValues, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.publicEnumValues.map( - (e) => - _render_Field(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'relationshipsClass': Property( - getValue: (CT_ c) => c.relationshipsClass, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.relationshipsClass, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'sidebarPath': Property( - getValue: (CT_ c) => c.sidebarPath, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.sidebarPath, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - }, - ) - as Map>; - - _Renderer_Enum( - Enum context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -String renderEnum(EnumTemplateData context, Template template) { - var buffer = StringBuffer(); - _render_EnumTemplateData(context, template.ast, template, buffer); - return buffer.toString(); -} - -void _render_EnumTemplateData( - EnumTemplateData context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_EnumTemplateData(context, parent, template, sink); - renderer.renderBlock(ast); -} - -class _Renderer_EnumTemplateData extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> - propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_InheritingContainerTemplateData.propertyMap< - Enum, - CT_ - >(), - 'eNum': Property( - getValue: (CT_ c) => c.eNum, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Enum.propertyMap().getValue( - name, - ); - return nextProperty.renderVariable( - self.getValue(c) as Enum, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Enum(c.eNum, ast, r.template, sink, parent: r); - }, - ), - 'self': Property( - getValue: (CT_ c) => c.self, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Enum.propertyMap().getValue( - name, - ); - return nextProperty.renderVariable( - self.getValue(c) as Enum, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Enum(c.self, ast, r.template, sink, parent: r); - }, - ), - }, - ) - as Map>; - - _Renderer_EnumTemplateData( - EnumTemplateData context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -void _render_Extension( - Extension context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_Extension(context, parent, template, sink); - renderer.renderBlock(ast); -} - -class _Renderer_Extension extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_Container.propertyMap(), - 'allModelElements': Property( - getValue: (CT_ c) => c.allModelElements, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.allModelElements.map( - (e) => _render_ModelElement( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'alwaysApplies': Property( - getValue: (CT_ c) => c.alwaysApplies, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.alwaysApplies, - ), - 'availableInstanceFieldsSorted': Property( - getValue: (CT_ c) => c.availableInstanceFieldsSorted, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.availableInstanceFieldsSorted.map( - (e) => - _render_Field(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'availableInstanceMethodsSorted': Property( - getValue: (CT_ c) => c.availableInstanceMethodsSorted, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.availableInstanceMethodsSorted.map( - (e) => - _render_Method(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'availableInstanceOperatorsSorted': Property( - getValue: (CT_ c) => c.availableInstanceOperatorsSorted, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.availableInstanceOperatorsSorted.map( - (e) => _render_Operator( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'declaredFields': Property( - getValue: (CT_ c) => c.declaredFields, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.declaredFields.map( - (e) => - _render_Field(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'declaredMethods': Property( - getValue: (CT_ c) => c.declaredMethods, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.declaredMethods.map( - (e) => - _render_Method(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'element': Property( - getValue: (CT_ c) => c.element, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'ExtensionElement', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.element, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['ExtensionElement']!, - ); - }, - ), - 'enclosingElement': Property( - getValue: (CT_ c) => c.enclosingElement, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Library.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Library, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Library( - c.enclosingElement, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'extendedElement': Property( - getValue: (CT_ c) => c.extendedElement, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_ElementType.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as ElementType, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_ElementType( - c.extendedElement, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'instanceMethods': Property( - getValue: (CT_ c) => c.instanceMethods, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.instanceMethods.map( - (e) => - _render_Method(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'kind': Property( - getValue: (CT_ c) => c.kind, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'Kind'), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.kind, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Kind']!, - ); - }, - ), - 'name': Property( - getValue: (CT_ c) => c.name, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.name, ast, r.template, sink, parent: r); - }, - ), - 'referenceChildren': Property( - getValue: (CT_ c) => c.referenceChildren, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Map', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.referenceChildren, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Map']!, - ); - }, - ), - 'relationshipsClass': Property( - getValue: (CT_ c) => c.relationshipsClass, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.relationshipsClass, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'sidebarPath': Property( - getValue: (CT_ c) => c.sidebarPath, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.sidebarPath, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'typeParameters': Property( - getValue: (CT_ c) => c.typeParameters, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.typeParameters.map( - (e) => _render_TypeParameter( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - }, - ) - as Map>; - - _Renderer_Extension( - Extension context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -String renderExtension( - ExtensionTemplateData context, - Template template, -) { - var buffer = StringBuffer(); - _render_ExtensionTemplateData(context, template.ast, template, buffer); - return buffer.toString(); -} - -void _render_ExtensionTemplateData( - ExtensionTemplateData context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_ExtensionTemplateData( - context, - parent, - template, - sink, - ); - renderer.renderBlock(ast); -} - -class _Renderer_ExtensionTemplateData - extends RendererBase> { - static final Map _propertyMapCache = {}; - static Map> - propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_TemplateData.propertyMap(), - ..._Renderer_OneDirectoryDown.propertyMap(), - 'container': Property( - getValue: (CT_ c) => c.container, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Container.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Container, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Container( - c.container, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'extension': Property( - getValue: (CT_ c) => c.extension, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Extension.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Extension, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Extension( - c.extension, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'layoutTitle': Property( - getValue: (CT_ c) => c.layoutTitle, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.layoutTitle, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'library': Property( - getValue: (CT_ c) => c.library, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Library.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Library, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Library( - c.library, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'metaDescription': Property( - getValue: (CT_ c) => c.metaDescription, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.metaDescription, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'navLinks': Property( - getValue: (CT_ c) => c.navLinks, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.navLinks.map( - (e) => _render_Documentable( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'self': Property( - getValue: (CT_ c) => c.self, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Extension.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Extension, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Extension( - c.self, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'title': Property( - getValue: (CT_ c) => c.title, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.title, ast, r.template, sink, parent: r); - }, - ), - }, - ) - as Map>; - - _Renderer_ExtensionTemplateData( - ExtensionTemplateData context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property>? getProperty(String key) { - if (propertyMap>().containsKey(key)) { - return propertyMap>()[key]; - } else { - return null; - } - } -} - -void _render_ExtensionType( - ExtensionType context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_ExtensionType(context, parent, template, sink); - renderer.renderBlock(ast); -} - -class _Renderer_ExtensionType extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_InheritingContainer.propertyMap(), - ..._Renderer_Constructable.propertyMap(), - 'allModelElements': Property( - getValue: (CT_ c) => c.allModelElements, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.allModelElements.map( - (e) => _render_ModelElement( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'declaredFields': Property( - getValue: (CT_ c) => c.declaredFields, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.declaredFields.map( - (e) => - _render_Field(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'element': Property( - getValue: (CT_ c) => c.element, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'ExtensionTypeElement', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.element, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['ExtensionTypeElement']!, - ); - }, - ), - 'enclosingElement': Property( - getValue: (CT_ c) => c.enclosingElement, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Library.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Library, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Library( - c.enclosingElement, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'fileName': Property( - getValue: (CT_ c) => c.fileName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.fileName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'isAbstract': Property( - getValue: (CT_ c) => c.isAbstract, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isAbstract, - ), - 'isBase': Property( - getValue: (CT_ c) => c.isBase, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isBase, - ), - 'isImplementableInterface': Property( - getValue: (CT_ c) => c.isImplementableInterface, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isImplementableInterface, - ), - 'isMixinClass': Property( - getValue: (CT_ c) => c.isMixinClass, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isMixinClass, - ), - 'isSealed': Property( - getValue: (CT_ c) => c.isSealed, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isSealed, - ), - 'kind': Property( - getValue: (CT_ c) => c.kind, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'Kind'), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.kind, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Kind']!, - ); - }, - ), - 'referenceChildren': Property( - getValue: (CT_ c) => c.referenceChildren, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Map', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.referenceChildren, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Map']!, - ); - }, - ), - 'relationshipsClass': Property( - getValue: (CT_ c) => c.relationshipsClass, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.relationshipsClass, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'representationType': Property( - getValue: (CT_ c) => c.representationType, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_ElementType.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as ElementType, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_ElementType( - c.representationType, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'sidebarPath': Property( - getValue: (CT_ c) => c.sidebarPath, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.sidebarPath, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - }, - ) - as Map>; - - _Renderer_ExtensionType( - ExtensionType context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -String renderExtensionType( - ExtensionTypeTemplateData context, - Template template, -) { - var buffer = StringBuffer(); - _render_ExtensionTypeTemplateData(context, template.ast, template, buffer); - return buffer.toString(); -} - -void _render_ExtensionTypeTemplateData( - ExtensionTypeTemplateData context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_ExtensionTypeTemplateData( - context, - parent, - template, - sink, - ); - renderer.renderBlock(ast); -} - -class _Renderer_ExtensionTypeTemplateData - extends RendererBase> { - static final Map _propertyMapCache = {}; - static Map> propertyMap< - T extends ExtensionType, - CT_ extends ExtensionTypeTemplateData - >() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_TemplateData.propertyMap(), - ..._Renderer_OneDirectoryDown.propertyMap(), - 'container': Property( - getValue: (CT_ c) => c.container, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Container.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Container, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Container( - c.container, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'extensionType': Property( - getValue: (CT_ c) => c.extensionType, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_ExtensionType.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as ExtensionType, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_ExtensionType( - c.extensionType, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'layoutTitle': Property( - getValue: (CT_ c) => c.layoutTitle, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.layoutTitle, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'library': Property( - getValue: (CT_ c) => c.library, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Library.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Library, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Library( - c.library, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'metaDescription': Property( - getValue: (CT_ c) => c.metaDescription, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.metaDescription, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'navLinks': Property( - getValue: (CT_ c) => c.navLinks, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.navLinks.map( - (e) => _render_Documentable( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'self': Property( - getValue: (CT_ c) => c.self, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_ExtensionType.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as ExtensionType, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_ExtensionType( - c.self, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'title': Property( - getValue: (CT_ c) => c.title, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.title, ast, r.template, sink, parent: r); - }, - ), - }, - ) - as Map>; - - _Renderer_ExtensionTypeTemplateData( - ExtensionTypeTemplateData context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property>? getProperty(String key) { - if (propertyMap>().containsKey(key)) { - return propertyMap>()[key]; - } else { - return null; - } - } -} - -void _render_ExternalItem( - ExternalItem context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_ExternalItem(context, parent, template, sink); - renderer.renderBlock(ast); -} - -class _Renderer_ExternalItem extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_Object.propertyMap(), - 'docs': Property( - getValue: (CT_ c) => c.docs, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.docs, ast, r.template, sink, parent: r); - }, - ), - 'name': Property( - getValue: (CT_ c) => c.name, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.name, ast, r.template, sink, parent: r); - }, - ), - 'url': Property( - getValue: (CT_ c) => c.url, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.url, ast, r.template, sink, parent: r); - }, - ), - }, - ) - as Map>; - - _Renderer_ExternalItem( - ExternalItem context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -void _render_Field( - Field context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_Field(context, parent, template, sink); - renderer.renderBlock(ast); -} - -class _Renderer_Field extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_ModelElement.propertyMap(), - ..._Renderer_GetterSetterCombo.propertyMap(), - ..._Renderer_ContainerMember.propertyMap(), - ..._Renderer_Inheritable.propertyMap(), - 'aboveSidebarPath': Property( - getValue: (CT_ c) => c.aboveSidebarPath, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.aboveSidebarPath, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'attributes': Property( - getValue: (CT_ c) => c.attributes, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Set', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.attributes.map( - (e) => renderSimple( - e, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Attribute']!, - ), - ); - }, - ), - 'belowSidebarPath': Property( - getValue: (CT_ c) => c.belowSidebarPath, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.belowSidebarPath == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.belowSidebarPath!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'documentation': Property( - getValue: (CT_ c) => c.documentation, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.documentation, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'element': Property( - getValue: (CT_ c) => c.element, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'FieldElement', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.element, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['FieldElement']!, - ); - }, - ), - 'enclosingElement': Property( - getValue: (CT_ c) => c.enclosingElement, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Container.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Container, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Container( - c.enclosingElement, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'enclosingExtension': Property( - getValue: (CT_ c) => c.enclosingExtension, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Extension.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Extension, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Extension( - c.enclosingExtension, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'fileName': Property( - getValue: (CT_ c) => c.fileName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.fileName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'fullkind': Property( - getValue: (CT_ c) => c.fullkind, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.fullkind, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'getter': Property( - getValue: (CT_ c) => c.getter, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = - _Renderer_ContainerAccessor.propertyMap().getValue( - name, - ); - return nextProperty.renderVariable( - self.getValue(c) as ContainerAccessor, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.getter == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_ContainerAccessor( - c.getter!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'href': Property( - getValue: (CT_ c) => c.href, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.href == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.href!, ast, r.template, sink, parent: r); - }, - ), - 'isConst': Property( - getValue: (CT_ c) => c.isConst, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isConst, - ), - 'isCovariant': Property( - getValue: (CT_ c) => c.isCovariant, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isCovariant, - ), - 'isFinal': Property( - getValue: (CT_ c) => c.isFinal, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isFinal, - ), - 'isInherited': Property( - getValue: (CT_ c) => c.isInherited, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isInherited, - ), - 'isLate': Property( - getValue: (CT_ c) => c.isLate, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isLate, - ), - 'isProvidedByExtension': Property( - getValue: (CT_ c) => c.isProvidedByExtension, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isProvidedByExtension, - ), - 'isStatic': Property( - getValue: (CT_ c) => c.isStatic, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isStatic, - ), - 'kind': Property( - getValue: (CT_ c) => c.kind, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'Kind'), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.kind, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Kind']!, - ); - }, - ), - 'overriddenElement': Property( - getValue: (CT_ c) => c.overriddenElement, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Inheritable.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Inheritable, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.overriddenElement == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.overriddenElement, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Inheritable']!, - ); - }, - ), - 'setter': Property( - getValue: (CT_ c) => c.setter, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = - _Renderer_ContainerAccessor.propertyMap().getValue( - name, - ); - return nextProperty.renderVariable( - self.getValue(c) as ContainerAccessor, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.setter == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_ContainerAccessor( - c.setter!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'sourceCode': Property( - getValue: (CT_ c) => c.sourceCode, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.sourceCode, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - }, - ) - as Map>; - - _Renderer_Field( - Field context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -String renderFunction(FunctionTemplateData context, Template template) { - var buffer = StringBuffer(); - _render_FunctionTemplateData(context, template.ast, template, buffer); - return buffer.toString(); -} - -void _render_FunctionTemplateData( - FunctionTemplateData context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_FunctionTemplateData( - context, - parent, - template, - sink, - ); - renderer.renderBlock(ast); -} - -class _Renderer_FunctionTemplateData - extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> - propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_TemplateData.propertyMap(), - ..._Renderer_OneDirectoryDown.propertyMap(), - 'function': Property( - getValue: (CT_ c) => c.function, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_ModelFunction.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as ModelFunction, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_ModelFunction( - c.function, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'layoutTitle': Property( - getValue: (CT_ c) => c.layoutTitle, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.layoutTitle, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'library': Property( - getValue: (CT_ c) => c.library, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Library.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Library, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Library( - c.library, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'metaDescription': Property( - getValue: (CT_ c) => c.metaDescription, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.metaDescription, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'navLinks': Property( - getValue: (CT_ c) => c.navLinks, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.navLinks.map( - (e) => _render_Documentable( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'self': Property( - getValue: (CT_ c) => c.self, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_ModelFunction.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as ModelFunction, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_ModelFunction( - c.self, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'title': Property( - getValue: (CT_ c) => c.title, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.title, ast, r.template, sink, parent: r); - }, - ), - }, - ) - as Map>; - - _Renderer_FunctionTemplateData( - FunctionTemplateData context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -void _render_FunctionTypedef( - FunctionTypedef context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_FunctionTypedef(context, parent, template, sink); - renderer.renderBlock(ast); -} - -class _Renderer_FunctionTypedef extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> - propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_Typedef.propertyMap(), - 'modelType': Property( - getValue: (CT_ c) => c.modelType, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Callable.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Callable, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Callable( - c.modelType, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'referenceChildren': Property( - getValue: (CT_ c) => c.referenceChildren, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Map', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.referenceChildren, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Map']!, - ); - }, - ), - }, - ) - as Map>; - - _Renderer_FunctionTypedef( - FunctionTypedef context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -class _Renderer_GetterSetterCombo extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> - propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - 'allAccessors': Property( - getValue: (CT_ c) => c.allAccessors, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.allAccessors.map( - (e) => _render_Accessor( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'annotations': Property( - getValue: (CT_ c) => c.annotations, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.annotations.map( - (e) => _render_Annotation( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'arrow': Property( - getValue: (CT_ c) => c.arrow, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.arrow, ast, r.template, sink, parent: r); - }, - ), - 'characterLocation': Property( - getValue: (CT_ c) => c.characterLocation, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'CharacterLocation', - ), - - isNullValue: (CT_ c) => c.characterLocation == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.characterLocation, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['CharacterLocation']!, - ); - }, - ), - 'constantValue': Property( - getValue: (CT_ c) => c.constantValue, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.constantValue, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'constantValueBase': Property( - getValue: (CT_ c) => c.constantValueBase, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.constantValueBase, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'constantValueTruncated': Property( - getValue: (CT_ c) => c.constantValueTruncated, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.constantValueTruncated, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'documentationComment': Property( - getValue: (CT_ c) => c.documentationComment, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.documentationComment, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'documentationFrom': Property( - getValue: (CT_ c) => c.documentationFrom, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.documentationFrom.map( - (e) => renderSimple( - e, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['DocumentationComment']!, - ), - ); - }, - ), - 'enclosingElement': Property( - getValue: (CT_ c) => c.enclosingElement, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_ModelElement.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as ModelElement, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_ModelElement( - c.enclosingElement, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'fileName': Property( - getValue: (CT_ c) => c.fileName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.fileName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'getter': Property( - getValue: (CT_ c) => c.getter, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Accessor.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Accessor, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.getter == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Accessor( - c.getter!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'getterSetterBothAvailable': Property( - getValue: (CT_ c) => c.getterSetterBothAvailable, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.getterSetterBothAvailable, - ), - 'hasAccessorsWithDocs': Property( - getValue: (CT_ c) => c.hasAccessorsWithDocs, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasAccessorsWithDocs, - ), - 'hasConstantValueForDisplay': Property( - getValue: (CT_ c) => c.hasConstantValueForDisplay, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasConstantValueForDisplay, - ), - 'hasDocumentationComment': Property( - getValue: (CT_ c) => c.hasDocumentationComment, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasDocumentationComment, - ), - 'hasExplicitGetter': Property( - getValue: (CT_ c) => c.hasExplicitGetter, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasExplicitGetter, - ), - 'hasExplicitSetter': Property( - getValue: (CT_ c) => c.hasExplicitSetter, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasExplicitSetter, - ), - 'hasGetter': Property( - getValue: (CT_ c) => c.hasGetter, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasGetter, - ), - 'hasGetterOrSetter': Property( - getValue: (CT_ c) => c.hasGetterOrSetter, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasGetterOrSetter, - ), - 'hasParameters': Property( - getValue: (CT_ c) => c.hasParameters, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasParameters, - ), - 'hasPublicGetter': Property( - getValue: (CT_ c) => c.hasPublicGetter, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasPublicGetter, - ), - 'hasPublicGetterNoSetter': Property( - getValue: (CT_ c) => c.hasPublicGetterNoSetter, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasPublicGetterNoSetter, - ), - 'hasPublicSetter': Property( - getValue: (CT_ c) => c.hasPublicSetter, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasPublicSetter, - ), - 'hasSetter': Property( - getValue: (CT_ c) => c.hasSetter, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasSetter, - ), - 'isCallable': Property( - getValue: (CT_ c) => c.isCallable, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isCallable, - ), - 'isInherited': Property( - getValue: (CT_ c) => c.isInherited, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isInherited, - ), - 'isPublic': Property( - getValue: (CT_ c) => c.isPublic, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isPublic, - ), - 'linkedParamsNoMetadata': Property( - getValue: (CT_ c) => c.linkedParamsNoMetadata, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.linkedParamsNoMetadata == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.linkedParamsNoMetadata!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'modelType': Property( - getValue: (CT_ c) => c.modelType, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_ElementType.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as ElementType, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_ElementType( - c.modelType, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'name': Property( - getValue: (CT_ c) => c.name, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.name, ast, r.template, sink, parent: r); - }, - ), - 'oneLineDoc': Property( - getValue: (CT_ c) => c.oneLineDoc, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.oneLineDoc, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'parameters': Property( - getValue: (CT_ c) => c.parameters, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.parameters.map( - (e) => _render_Parameter( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'readOnly': Property( - getValue: (CT_ c) => c.readOnly, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.readOnly, - ), - 'readWrite': Property( - getValue: (CT_ c) => c.readWrite, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.readWrite, - ), - 'referenceChildren': Property( - getValue: (CT_ c) => c.referenceChildren, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Map', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.referenceChildren, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Map']!, - ); - }, - ), - 'setter': Property( - getValue: (CT_ c) => c.setter, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Accessor.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Accessor, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.setter == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Accessor( - c.setter!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'writeOnly': Property( - getValue: (CT_ c) => c.writeOnly, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.writeOnly, - ), - }, - ) - as Map>; - - _Renderer_GetterSetterCombo( - GetterSetterCombo context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -class _Renderer_HasNoPage extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - 'aboveSidebarPath': Property( - getValue: (CT_ c) => c.aboveSidebarPath, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.aboveSidebarPath == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.aboveSidebarPath!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'belowSidebarPath': Property( - getValue: (CT_ c) => c.belowSidebarPath, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.belowSidebarPath == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.belowSidebarPath!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'filePath': Property( - getValue: (CT_ c) => c.filePath, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.filePath, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - }, - ) - as Map>; - - _Renderer_HasNoPage( - HasNoPage context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -class _Renderer_Inheritable extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - 'attributes': Property( - getValue: (CT_ c) => c.attributes, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Set', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.attributes.map( - (e) => renderSimple( - e, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Attribute']!, - ), - ); - }, - ), - 'canonicalLibrary': Property( - getValue: (CT_ c) => c.canonicalLibrary, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Library.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Library, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.canonicalLibrary == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Library( - c.canonicalLibrary!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'canonicalModelElement': Property( - getValue: (CT_ c) => c.canonicalModelElement, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_ModelElement.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as ModelElement, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.canonicalModelElement == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_ModelElement( - c.canonicalModelElement!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'isCovariant': Property( - getValue: (CT_ c) => c.isCovariant, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isCovariant, - ), - 'isInherited': Property( - getValue: (CT_ c) => c.isInherited, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isInherited, - ), - 'isOverride': Property( - getValue: (CT_ c) => c.isOverride, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isOverride, - ), - 'overriddenDepth': Property( - getValue: (CT_ c) => c.overriddenDepth, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'int'), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.overriddenDepth, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['int']!, - ); - }, - ), - 'overriddenElement': Property( - getValue: (CT_ c) => c.overriddenElement, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Inheritable.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Inheritable, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.overriddenElement == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.overriddenElement, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Inheritable']!, - ); - }, - ), - }, - ) - as Map>; - - _Renderer_Inheritable( - Inheritable context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -void _render_InheritingContainer( - InheritingContainer context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_InheritingContainer(context, parent, template, sink); - renderer.renderBlock(ast); -} - -class _Renderer_InheritingContainer extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> - propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_Container.propertyMap(), - 'allModelElements': Property( - getValue: (CT_ c) => c.allModelElements, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.allModelElements.map( - (e) => _render_ModelElement( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'availableInstanceFieldsSorted': Property( - getValue: (CT_ c) => c.availableInstanceFieldsSorted, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.availableInstanceFieldsSorted.map( - (e) => - _render_Field(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'availableInstanceMethodsSorted': Property( - getValue: (CT_ c) => c.availableInstanceMethodsSorted, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.availableInstanceMethodsSorted.map( - (e) => - _render_Method(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'availableInstanceOperatorsSorted': Property( - getValue: (CT_ c) => c.availableInstanceOperatorsSorted, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.availableInstanceOperatorsSorted.map( - (e) => _render_Operator( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'constantFields': Property( - getValue: (CT_ c) => c.constantFields, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.constantFields.map( - (e) => - _render_Field(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'containerModifiers': Property( - getValue: (CT_ c) => c.containerModifiers, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.containerModifiers.map( - (e) => renderSimple( - e, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['ContainerModifier']!, - ), - ); - }, - ), - 'declaredFields': Property( - getValue: (CT_ c) => c.declaredFields, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.declaredFields.map( - (e) => - _render_Field(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'declaredMethods': Property( - getValue: (CT_ c) => c.declaredMethods, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.declaredMethods.map( - (e) => - _render_Method(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'definingContainer': Property( - getValue: (CT_ c) => c.definingContainer, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = - _Renderer_InheritingContainer.propertyMap().getValue( - name, - ); - return nextProperty.renderVariable( - self.getValue(c) as InheritingContainer, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_InheritingContainer( - c.definingContainer, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'element': Property( - getValue: (CT_ c) => c.element, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'InterfaceElement', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.element, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['InterfaceElement']!, - ); - }, - ), - 'enclosingElement': Property( - getValue: (CT_ c) => c.enclosingElement, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Library.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Library, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Library( - c.enclosingElement, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'fullkind': Property( - getValue: (CT_ c) => c.fullkind, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.fullkind, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'hasModifiers': Property( - getValue: (CT_ c) => c.hasModifiers, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasModifiers, - ), - 'hasPotentiallyApplicableExtensions': Property( - getValue: (CT_ c) => c.hasPotentiallyApplicableExtensions, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasPotentiallyApplicableExtensions, - ), - 'hasPublicImplementers': Property( - getValue: (CT_ c) => c.hasPublicImplementers, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasPublicImplementers, - ), - 'hasPublicInterfaces': Property( - getValue: (CT_ c) => c.hasPublicInterfaces, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasPublicInterfaces, - ), - 'hasPublicSuperChainReversed': Property( - getValue: (CT_ c) => c.hasPublicSuperChainReversed, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasPublicSuperChainReversed, - ), - 'instanceFields': Property( - getValue: (CT_ c) => c.instanceFields, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.instanceFields.map( - (e) => - _render_Field(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'instanceMethods': Property( - getValue: (CT_ c) => c.instanceMethods, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.instanceMethods.map( - (e) => - _render_Method(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'instanceOperators': Property( - getValue: (CT_ c) => c.instanceOperators, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.instanceOperators.map( - (e) => _render_Operator( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'interfaceElements': Property( - getValue: (CT_ c) => c.interfaceElements, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.interfaceElements.map( - (e) => _render_InheritingContainer( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'isAbstract': Property( - getValue: (CT_ c) => c.isAbstract, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isAbstract, - ), - 'isBase': Property( - getValue: (CT_ c) => c.isBase, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isBase, - ), - 'isCanonical': Property( - getValue: (CT_ c) => c.isCanonical, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isCanonical, - ), - 'isFinal': Property( - getValue: (CT_ c) => c.isFinal, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isFinal, - ), - 'isImplementableInterface': Property( - getValue: (CT_ c) => c.isImplementableInterface, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isImplementableInterface, - ), - 'isMixinClass': Property( - getValue: (CT_ c) => c.isMixinClass, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isMixinClass, - ), - 'isSealed': Property( - getValue: (CT_ c) => c.isSealed, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isSealed, - ), - 'modelType': Property( - getValue: (CT_ c) => c.modelType, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = - _Renderer_DefinedElementType.propertyMap().getValue( - name, - ); - return nextProperty.renderVariable( - self.getValue(c) as DefinedElementType, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_DefinedElementType( - c.modelType, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'potentiallyApplicableExtensionsSorted': Property( - getValue: (CT_ c) => c.potentiallyApplicableExtensionsSorted, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.potentiallyApplicableExtensionsSorted.map( - (e) => _render_Extension( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'publicImplementersSorted': Property( - getValue: (CT_ c) => c.publicImplementersSorted, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.publicImplementersSorted.map( - (e) => _render_InheritingContainer( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'publicInheritedInstanceFields': Property( - getValue: (CT_ c) => c.publicInheritedInstanceFields, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.publicInheritedInstanceFields, - ), - 'publicInheritedInstanceMethods': Property( - getValue: (CT_ c) => c.publicInheritedInstanceMethods, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.publicInheritedInstanceMethods, - ), - 'publicInheritedInstanceOperators': Property( - getValue: (CT_ c) => c.publicInheritedInstanceOperators, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.publicInheritedInstanceOperators, - ), - 'publicInterfaceElements': Property( - getValue: (CT_ c) => c.publicInterfaceElements, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.publicInterfaceElements.map( - (e) => _render_InheritingContainer( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'publicInterfaces': Property( - getValue: (CT_ c) => c.publicInterfaces, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.publicInterfaces.map( - (e) => _render_DefinedElementType( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'publicSuperChainReversed': Property( - getValue: (CT_ c) => c.publicSuperChainReversed, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.publicSuperChainReversed.map( - (e) => _render_DefinedElementType( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'superChain': Property( - getValue: (CT_ c) => c.superChain, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.superChain.map( - (e) => _render_DefinedElementType( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'supertype': Property( - getValue: (CT_ c) => c.supertype, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = - _Renderer_DefinedElementType.propertyMap().getValue( - name, - ); - return nextProperty.renderVariable( - self.getValue(c) as DefinedElementType, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.supertype == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_DefinedElementType( - c.supertype!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'tags': Property( - getValue: (CT_ c) => c.tags, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.tags.map( - (e) => _render_Tag(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'typeParameters': Property( - getValue: (CT_ c) => c.typeParameters, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.typeParameters.map( - (e) => _render_TypeParameter( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - }, - ) - as Map>; - - _Renderer_InheritingContainer( - InheritingContainer context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -class _Renderer_InheritingContainerTemplateData - extends RendererBase> { - static final Map _propertyMapCache = {}; - static Map> propertyMap< - T extends InheritingContainer, - CT_ extends InheritingContainerTemplateData - >() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_TemplateData.propertyMap(), - ..._Renderer_OneDirectoryDown.propertyMap(), - 'clazz': Property( - getValue: (CT_ c) => c.clazz, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = - _Renderer_InheritingContainer.propertyMap().getValue( - name, - ); - return nextProperty.renderVariable( - self.getValue(c) as InheritingContainer, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_InheritingContainer( - c.clazz, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'container': Property( - getValue: (CT_ c) => c.container, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Container.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Container, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Container( - c.container, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'layoutTitle': Property( - getValue: (CT_ c) => c.layoutTitle, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.layoutTitle, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'library': Property( - getValue: (CT_ c) => c.library, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Library.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Library, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Library( - c.library, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'metaDescription': Property( - getValue: (CT_ c) => c.metaDescription, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.metaDescription, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'navLinks': Property( - getValue: (CT_ c) => c.navLinks, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.navLinks.map( - (e) => _render_Documentable( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'self': Property( - getValue: (CT_ c) => c.self, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = - _Renderer_InheritingContainer.propertyMap().getValue( - name, - ); - return nextProperty.renderVariable( - self.getValue(c) as InheritingContainer, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_InheritingContainer( - c.self, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'title': Property( - getValue: (CT_ c) => c.title, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.title, ast, r.template, sink, parent: r); - }, - ), - }, - ) - as Map>; - - _Renderer_InheritingContainerTemplateData( - InheritingContainerTemplateData context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property>? getProperty(String key) { - if (propertyMap>().containsKey(key)) { - return propertyMap>()[key]; - } else { - return null; - } - } -} - -void _render_Library( - Library context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_Library(context, parent, template, sink); - renderer.renderBlock(ast); -} - -class _Renderer_Library extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_ModelElement.propertyMap(), - ..._Renderer_Categorization.propertyMap(), - ..._Renderer_TopLevelContainer.propertyMap(), - ..._Renderer_CanonicalFor.propertyMap(), - 'aboveSidebarPath': Property( - getValue: (CT_ c) => c.aboveSidebarPath, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.aboveSidebarPath == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.aboveSidebarPath!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'allModelElements': Property( - getValue: (CT_ c) => c.allModelElements, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.allModelElements.map( - (e) => _render_ModelElement( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'belowSidebarPath': Property( - getValue: (CT_ c) => c.belowSidebarPath, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.belowSidebarPath, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'breadcrumbName': Property( - getValue: (CT_ c) => c.breadcrumbName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.breadcrumbName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'characterLocation': Property( - getValue: (CT_ c) => c.characterLocation, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'CharacterLocation', - ), - - isNullValue: (CT_ c) => c.characterLocation == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.characterLocation, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['CharacterLocation']!, - ); - }, - ), - 'classes': Property( - getValue: (CT_ c) => c.classes, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.classes.map( - (e) => - _render_Class(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'classesAndExceptions': Property( - getValue: (CT_ c) => c.classesAndExceptions, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.classesAndExceptions.map( - (e) => - _render_Class(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'constants': Property( - getValue: (CT_ c) => c.constants, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.constants.map( - (e) => _render_TopLevelVariable( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'dirName': Property( - getValue: (CT_ c) => c.dirName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.dirName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'displayName': Property( - getValue: (CT_ c) => c.displayName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.displayName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'element': Property( - getValue: (CT_ c) => c.element, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'LibraryElement', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.element, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['LibraryElement']!, - ); - }, - ), - 'enclosingElement': Property( - getValue: (CT_ c) => c.enclosingElement, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_ModelElement.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as ModelElement, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.enclosingElement == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_ModelElement( - c.enclosingElement!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'enums': Property( - getValue: (CT_ c) => c.enums, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.enums.map( - (e) => - _render_Enum(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'exceptions': Property( - getValue: (CT_ c) => c.exceptions, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.exceptions.map( - (e) => - _render_Class(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'extensionTypes': Property( - getValue: (CT_ c) => c.extensionTypes, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.extensionTypes.map( - (e) => _render_ExtensionType( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'extensions': Property( - getValue: (CT_ c) => c.extensions, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.extensions.map( - (e) => _render_Extension( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'fileName': Property( - getValue: (CT_ c) => c.fileName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.fileName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'filePath': Property( - getValue: (CT_ c) => c.filePath, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.filePath, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'functions': Property( - getValue: (CT_ c) => c.functions, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.functions.map( - (e) => _render_ModelFunction( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'href': Property( - getValue: (CT_ c) => c.href, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.href == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.href!, ast, r.template, sink, parent: r); - }, - ), - 'isAnonymous': Property( - getValue: (CT_ c) => c.isAnonymous, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isAnonymous, - ), - 'isInSdk': Property( - getValue: (CT_ c) => c.isInSdk, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isInSdk, - ), - 'isPublic': Property( - getValue: (CT_ c) => c.isPublic, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isPublic, - ), - 'kind': Property( - getValue: (CT_ c) => c.kind, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'Kind'), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.kind, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Kind']!, - ); - }, - ), - 'library': Property( - getValue: (CT_ c) => c.library, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Library.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Library, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Library( - c.library, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'mixins': Property( - getValue: (CT_ c) => c.mixins, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.mixins.map( - (e) => - _render_Mixin(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'name': Property( - getValue: (CT_ c) => c.name, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.name, ast, r.template, sink, parent: r); - }, - ), - 'package': Property( - getValue: (CT_ c) => c.package, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Package.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Package, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Package( - c.package, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'packageMeta': Property( - getValue: (CT_ c) => c.packageMeta, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'PackageMeta', - ), - - isNullValue: (CT_ c) => c.packageMeta == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.packageMeta, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['PackageMeta']!, - ); - }, - ), - 'packageName': Property( - getValue: (CT_ c) => c.packageName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.packageName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'properties': Property( - getValue: (CT_ c) => c.properties, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.properties.map( - (e) => _render_TopLevelVariable( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'redirectingPath': Property( - getValue: (CT_ c) => c.redirectingPath, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.redirectingPath, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'referenceChildren': Property( - getValue: (CT_ c) => c.referenceChildren, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Map', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.referenceChildren, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Map']!, - ); - }, - ), - 'referenceParents': Property( - getValue: (CT_ c) => c.referenceParents, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.referenceParents.map( - (e) => renderSimple( - e, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['CommentReferable']!, - ), - ); - }, - ), - 'scope': Property( - getValue: (CT_ c) => c.scope, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'Scope'), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.scope, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Scope']!, - ); - }, - ), - 'sidebarPath': Property( - getValue: (CT_ c) => c.sidebarPath, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.sidebarPath, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'typedefs': Property( - getValue: (CT_ c) => c.typedefs, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.typedefs.map( - (e) => _render_Typedef( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'unitElement': Property( - getValue: (CT_ c) => c.unitElement, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'LibraryFragment', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.unitElement, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['LibraryFragment']!, - ); - }, - ), - }, - ) - as Map>; - - _Renderer_Library( - Library context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -class _Renderer_LibraryContainer extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> - propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_Object.propertyMap(), - 'containerOrder': Property( - getValue: (CT_ c) => c.containerOrder, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.containerOrder.map( - (e) => - _render_String(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'enclosingName': Property( - getValue: (CT_ c) => c.enclosingName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.enclosingName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'hasPublicLibraries': Property( - getValue: (CT_ c) => c.hasPublicLibraries, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasPublicLibraries, - ), - 'isSdk': Property( - getValue: (CT_ c) => c.isSdk, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isSdk, - ), - 'libraries': Property( - getValue: (CT_ c) => c.libraries, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.libraries.map( - (e) => _render_Library( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'publicLibrariesSorted': Property( - getValue: (CT_ c) => c.publicLibrariesSorted, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.publicLibrariesSorted.map( - (e) => _render_Library( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'sortKey': Property( - getValue: (CT_ c) => c.sortKey, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.sortKey, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - }, - ) - as Map>; - - _Renderer_LibraryContainer( - LibraryContainer context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -String renderLibrary(LibraryTemplateData context, Template template) { - var buffer = StringBuffer(); - _render_LibraryTemplateData(context, template.ast, template, buffer); - return buffer.toString(); -} - -void _render_LibraryTemplateData( - LibraryTemplateData context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_LibraryTemplateData(context, parent, template, sink); - renderer.renderBlock(ast); -} - -class _Renderer_LibraryTemplateData extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> - propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_TemplateData.propertyMap(), - ..._Renderer_OneDirectoryDown.propertyMap(), - 'layoutTitle': Property( - getValue: (CT_ c) => c.layoutTitle, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.layoutTitle, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'library': Property( - getValue: (CT_ c) => c.library, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Library.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Library, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Library( - c.library, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'metaDescription': Property( - getValue: (CT_ c) => c.metaDescription, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.metaDescription, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'navLinks': Property( - getValue: (CT_ c) => c.navLinks, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.navLinks.map( - (e) => _render_Documentable( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'self': Property( - getValue: (CT_ c) => c.self, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Library.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Library, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Library(c.self, ast, r.template, sink, parent: r); - }, - ), - 'title': Property( - getValue: (CT_ c) => c.title, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.title, ast, r.template, sink, parent: r); - }, - ), - }, - ) - as Map>; - - _Renderer_LibraryTemplateData( - LibraryTemplateData context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -String renderLibraryRedirect(LibraryTemplateData context, Template template) { - var buffer = StringBuffer(); - _render_LibraryTemplateData(context, template.ast, template, buffer); - return buffer.toString(); -} - -class _Renderer_Locatable extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - 'documentationFrom': Property( - getValue: (CT_ c) => c.documentationFrom, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.documentationFrom.map( - (e) => renderSimple( - e, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Locatable']!, - ), - ); - }, - ), - 'documentationIsLocal': Property( - getValue: (CT_ c) => c.documentationIsLocal, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.documentationIsLocal, - ), - 'fullyQualifiedName': Property( - getValue: (CT_ c) => c.fullyQualifiedName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.fullyQualifiedName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'href': Property( - getValue: (CT_ c) => c.href, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.href == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.href!, ast, r.template, sink, parent: r); - }, - ), - 'isCanonical': Property( - getValue: (CT_ c) => c.isCanonical, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isCanonical, - ), - 'location': Property( - getValue: (CT_ c) => c.location, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.location, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - }, - ) - as Map>; - - _Renderer_Locatable( - Locatable context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -class _Renderer_MarkdownFileDocumentation - extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> - propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - 'documentation': Property( - getValue: (CT_ c) => c.documentation, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.documentation, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'documentationAsHtml': Property( - getValue: (CT_ c) => c.documentationAsHtml, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.documentationAsHtml, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'documentationFile': Property( - getValue: (CT_ c) => c.documentationFile, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'File'), - - isNullValue: (CT_ c) => c.documentationFile == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.documentationFile, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['File']!, - ); - }, - ), - 'documentedWhere': Property( - getValue: (CT_ c) => c.documentedWhere, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'DocumentLocation', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.documentedWhere, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['DocumentLocation']!, - ); - }, - ), - 'hasDocumentation': Property( - getValue: (CT_ c) => c.hasDocumentation, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasDocumentation, - ), - 'isDocumented': Property( - getValue: (CT_ c) => c.isDocumented, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isDocumented, - ), - 'location': Property( - getValue: (CT_ c) => c.location, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.location, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'oneLineDoc': Property( - getValue: (CT_ c) => c.oneLineDoc, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.oneLineDoc, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - }, - ) - as Map>; - - _Renderer_MarkdownFileDocumentation( - MarkdownFileDocumentation context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -void _render_Method( - Method context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_Method(context, parent, template, sink); - renderer.renderBlock(ast); -} - -class _Renderer_Method extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_ModelElement.propertyMap(), - ..._Renderer_ContainerMember.propertyMap(), - ..._Renderer_Inheritable.propertyMap(), - ..._Renderer_TypeParameters.propertyMap(), - 'aboveSidebarPath': Property( - getValue: (CT_ c) => c.aboveSidebarPath, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.aboveSidebarPath, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'attributes': Property( - getValue: (CT_ c) => c.attributes, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Set', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.attributes.map( - (e) => renderSimple( - e, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Attribute']!, - ), - ); - }, - ), - 'belowSidebarPath': Property( - getValue: (CT_ c) => c.belowSidebarPath, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.belowSidebarPath == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.belowSidebarPath!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'characterLocation': Property( - getValue: (CT_ c) => c.characterLocation, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'CharacterLocation', - ), - - isNullValue: (CT_ c) => c.characterLocation == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.characterLocation, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['CharacterLocation']!, - ); - }, - ), - 'element': Property( - getValue: (CT_ c) => c.element, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'MethodElement', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.element, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['MethodElement']!, - ); - }, - ), - 'enclosingElement': Property( - getValue: (CT_ c) => c.enclosingElement, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Container.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Container, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Container( - c.enclosingElement, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'enclosingExtension': Property( - getValue: (CT_ c) => c.enclosingExtension, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Extension.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Extension, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Extension( - c.enclosingExtension, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'fullkind': Property( - getValue: (CT_ c) => c.fullkind, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.fullkind, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'href': Property( - getValue: (CT_ c) => c.href, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.href == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.href!, ast, r.template, sink, parent: r); - }, - ), - 'isCovariant': Property( - getValue: (CT_ c) => c.isCovariant, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isCovariant, - ), - 'isInherited': Property( - getValue: (CT_ c) => c.isInherited, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isInherited, - ), - 'isOperator': Property( - getValue: (CT_ c) => c.isOperator, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isOperator, - ), - 'isProvidedByExtension': Property( - getValue: (CT_ c) => c.isProvidedByExtension, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isProvidedByExtension, - ), - 'isStatic': Property( - getValue: (CT_ c) => c.isStatic, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isStatic, - ), - 'kind': Property( - getValue: (CT_ c) => c.kind, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'Kind'), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.kind, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Kind']!, - ); - }, - ), - 'modelType': Property( - getValue: (CT_ c) => c.modelType, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Callable.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Callable, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Callable( - c.modelType, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'originalMember': Property( - getValue: (CT_ c) => c.originalMember, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'ExecutableElement', - ), - - isNullValue: (CT_ c) => c.originalMember == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.originalMember, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['ExecutableElement']!, - ); - }, - ), - 'overriddenElement': Property( - getValue: (CT_ c) => c.overriddenElement, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Method.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Method, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.overriddenElement == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Method( - c.overriddenElement!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'referenceChildren': Property( - getValue: (CT_ c) => c.referenceChildren, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Map', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.referenceChildren, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Map']!, - ); - }, - ), - 'typeParameters': Property( - getValue: (CT_ c) => c.typeParameters, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.typeParameters.map( - (e) => _render_TypeParameter( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - }, - ) - as Map>; - - _Renderer_Method( - Method context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -String renderMethod(MethodTemplateData context, Template template) { - var buffer = StringBuffer(); - _render_MethodTemplateData(context, template.ast, template, buffer); - return buffer.toString(); -} - -void _render_MethodTemplateData( - MethodTemplateData context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_MethodTemplateData(context, parent, template, sink); - renderer.renderBlock(ast); -} - -class _Renderer_MethodTemplateData extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> - propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_TemplateData.propertyMap(), - ..._Renderer_TwoDirectoriesDown.propertyMap(), - 'container': Property( - getValue: (CT_ c) => c.container, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Container.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Container, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Container( - c.container, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'layoutTitle': Property( - getValue: (CT_ c) => c.layoutTitle, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.layoutTitle, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'library': Property( - getValue: (CT_ c) => c.library, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Library.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Library, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Library( - c.library, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'metaDescription': Property( - getValue: (CT_ c) => c.metaDescription, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.metaDescription, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'method': Property( - getValue: (CT_ c) => c.method, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Method.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Method, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Method( - c.method, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'navLinks': Property( - getValue: (CT_ c) => c.navLinks, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.navLinks.map( - (e) => _render_Documentable( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'navLinksWithGenerics': Property( - getValue: (CT_ c) => c.navLinksWithGenerics, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.navLinksWithGenerics.map( - (e) => _render_Container( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'self': Property( - getValue: (CT_ c) => c.self, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Method.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Method, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Method(c.self, ast, r.template, sink, parent: r); - }, - ), - 'title': Property( - getValue: (CT_ c) => c.title, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.title, ast, r.template, sink, parent: r); - }, - ), - }, - ) - as Map>; - - _Renderer_MethodTemplateData( - MethodTemplateData context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -class _Renderer_MixedInTypes extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - 'hasModifiers': Property( - getValue: (CT_ c) => c.hasModifiers, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasModifiers, - ), - 'hasPublicMixedInTypes': Property( - getValue: (CT_ c) => c.hasPublicMixedInTypes, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasPublicMixedInTypes, - ), - 'mixedInTypes': Property( - getValue: (CT_ c) => c.mixedInTypes, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.mixedInTypes.map( - (e) => _render_DefinedElementType( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'publicMixedInTypes': Property( - getValue: (CT_ c) => c.publicMixedInTypes, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.publicMixedInTypes.map( - (e) => _render_DefinedElementType( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - }, - ) - as Map>; - - _Renderer_MixedInTypes( - MixedInTypes context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -void _render_Mixin( - Mixin context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_Mixin(context, parent, template, sink); - renderer.renderBlock(ast); -} - -class _Renderer_Mixin extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_InheritingContainer.propertyMap(), - 'element': Property( - getValue: (CT_ c) => c.element, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'MixinElement', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.element, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['MixinElement']!, - ); - }, - ), - 'fileName': Property( - getValue: (CT_ c) => c.fileName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.fileName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'hasModifiers': Property( - getValue: (CT_ c) => c.hasModifiers, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasModifiers, - ), - 'hasPublicSuperclassConstraints': Property( - getValue: (CT_ c) => c.hasPublicSuperclassConstraints, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasPublicSuperclassConstraints, - ), - 'isAbstract': Property( - getValue: (CT_ c) => c.isAbstract, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isAbstract, - ), - 'isBase': Property( - getValue: (CT_ c) => c.isBase, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isBase, - ), - 'isFinal': Property( - getValue: (CT_ c) => c.isFinal, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isFinal, - ), - 'isImplementableInterface': Property( - getValue: (CT_ c) => c.isImplementableInterface, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isImplementableInterface, - ), - 'isMixinClass': Property( - getValue: (CT_ c) => c.isMixinClass, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isMixinClass, - ), - 'isSealed': Property( - getValue: (CT_ c) => c.isSealed, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isSealed, - ), - 'kind': Property( - getValue: (CT_ c) => c.kind, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'Kind'), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.kind, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Kind']!, - ); - }, - ), - 'publicSuperclassConstraints': Property( - getValue: (CT_ c) => c.publicSuperclassConstraints, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.publicSuperclassConstraints.map( - (e) => _render_ParameterizedElementType( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'relationshipsClass': Property( - getValue: (CT_ c) => c.relationshipsClass, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.relationshipsClass, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'sidebarPath': Property( - getValue: (CT_ c) => c.sidebarPath, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.sidebarPath, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'superclassConstraints': Property( - getValue: (CT_ c) => c.superclassConstraints, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.superclassConstraints.map( - (e) => _render_ParameterizedElementType( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - }, - ) - as Map>; - - _Renderer_Mixin( - Mixin context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -String renderMixin(MixinTemplateData context, Template template) { - var buffer = StringBuffer(); - _render_MixinTemplateData(context, template.ast, template, buffer); - return buffer.toString(); -} - -void _render_MixinTemplateData( - MixinTemplateData context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_MixinTemplateData(context, parent, template, sink); - renderer.renderBlock(ast); -} - -class _Renderer_MixinTemplateData extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> - propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_InheritingContainerTemplateData.propertyMap< - Mixin, - CT_ - >(), - 'mixin': Property( - getValue: (CT_ c) => c.mixin, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Mixin.propertyMap().getValue( - name, - ); - return nextProperty.renderVariable( - self.getValue(c) as Mixin, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Mixin(c.mixin, ast, r.template, sink, parent: r); - }, - ), - 'self': Property( - getValue: (CT_ c) => c.self, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Mixin.propertyMap().getValue( - name, - ); - return nextProperty.renderVariable( - self.getValue(c) as Mixin, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Mixin(c.self, ast, r.template, sink, parent: r); - }, - ), - }, - ) - as Map>; - - _Renderer_MixinTemplateData( - MixinTemplateData context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -void _render_ModelElement( - ModelElement context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_ModelElement(context, parent, template, sink); - renderer.renderBlock(ast); -} - -class _Renderer_ModelElement extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_Object.propertyMap(), - ..._Renderer_CommentReferable.propertyMap(), - ..._Renderer_Warnable.propertyMap(), - ..._Renderer_Locatable.propertyMap(), - ..._Renderer_Nameable.propertyMap(), - ..._Renderer_SourceCode.propertyMap(), - ..._Renderer_DocumentationComment.propertyMap(), - 'annotations': Property( - getValue: (CT_ c) => c.annotations, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.annotations.map( - (e) => _render_Annotation( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'attributes': Property( - getValue: (CT_ c) => c.attributes, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Set', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.attributes.map( - (e) => renderSimple( - e, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Attribute']!, - ), - ); - }, - ), - 'attributesAsString': Property( - getValue: (CT_ c) => c.attributesAsString, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.attributesAsString, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'canonicalLibrary': Property( - getValue: (CT_ c) => c.canonicalLibrary, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Library.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Library, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.canonicalLibrary == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Library( - c.canonicalLibrary!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'canonicalLibraryOrThrow': Property( - getValue: (CT_ c) => c.canonicalLibraryOrThrow, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Library.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Library, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Library( - c.canonicalLibraryOrThrow, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'canonicalModelElement': Property( - getValue: (CT_ c) => c.canonicalModelElement, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_ModelElement.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as ModelElement, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.canonicalModelElement == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_ModelElement( - c.canonicalModelElement!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'characterLocation': Property( - getValue: (CT_ c) => c.characterLocation, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'CharacterLocation', - ), - - isNullValue: (CT_ c) => c.characterLocation == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.characterLocation, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['CharacterLocation']!, - ); - }, - ), - 'config': Property( - getValue: (CT_ c) => c.config, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'DartdocOptionContext', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.config, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['DartdocOptionContext']!, - ); - }, - ), - 'displayedCategories': Property( - getValue: (CT_ c) => c.displayedCategories, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.displayedCategories.map( - (e) => _render_Category( - e!, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'documentation': Property( - getValue: (CT_ c) => c.documentation, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.documentation, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'element': Property( - getValue: (CT_ c) => c.element, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'Element'), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.element, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Element']!, - ); - }, - ), - 'enclosingElement': Property( - getValue: (CT_ c) => c.enclosingElement, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_ModelElement.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as ModelElement, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.enclosingElement == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_ModelElement( - c.enclosingElement!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'fileName': Property( - getValue: (CT_ c) => c.fileName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.fileName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'filePath': Property( - getValue: (CT_ c) => c.filePath, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.filePath, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'fullyQualifiedName': Property( - getValue: (CT_ c) => c.fullyQualifiedName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.fullyQualifiedName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'hasAnnotations': Property( - getValue: (CT_ c) => c.hasAnnotations, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasAnnotations, - ), - 'hasAttributes': Property( - getValue: (CT_ c) => c.hasAttributes, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasAttributes, - ), - 'hasCategoryNames': Property( - getValue: (CT_ c) => c.hasCategoryNames, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasCategoryNames, - ), - 'hasDocumentation': Property( - getValue: (CT_ c) => c.hasDocumentation, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasDocumentation, - ), - 'hasParameters': Property( - getValue: (CT_ c) => c.hasParameters, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasParameters, - ), - 'hasSourceHref': Property( - getValue: (CT_ c) => c.hasSourceHref, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasSourceHref, - ), - 'hasTags': Property( - getValue: (CT_ c) => c.hasTags, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasTags, - ), - 'href': Property( - getValue: (CT_ c) => c.href, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.href == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.href!, ast, r.template, sink, parent: r); - }, - ), - 'htmlId': Property( - getValue: (CT_ c) => c.htmlId, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.htmlId, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'isCallable': Property( - getValue: (CT_ c) => c.isCallable, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isCallable, - ), - 'isCanonical': Property( - getValue: (CT_ c) => c.isCanonical, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isCanonical, - ), - 'isConst': Property( - getValue: (CT_ c) => c.isConst, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isConst, - ), - 'isDeprecated': Property( - getValue: (CT_ c) => c.isDeprecated, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isDeprecated, - ), - 'isDocumented': Property( - getValue: (CT_ c) => c.isDocumented, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isDocumented, - ), - 'isEnumValue': Property( - getValue: (CT_ c) => c.isEnumValue, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isEnumValue, - ), - 'isFinal': Property( - getValue: (CT_ c) => c.isFinal, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isFinal, - ), - 'isLate': Property( - getValue: (CT_ c) => c.isLate, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isLate, - ), - 'isPublic': Property( - getValue: (CT_ c) => c.isPublic, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isPublic, - ), - 'isPublicAndPackageDocumented': Property( - getValue: (CT_ c) => c.isPublicAndPackageDocumented, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isPublicAndPackageDocumented, - ), - 'kind': Property( - getValue: (CT_ c) => c.kind, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'Kind'), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.kind, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Kind']!, - ); - }, - ), - 'library': Property( - getValue: (CT_ c) => c.library, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Library.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Library, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Library( - c.library, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'linkedName': Property( - getValue: (CT_ c) => c.linkedName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.linkedName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'linkedObjectType': Property( - getValue: (CT_ c) => c.linkedObjectType, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.linkedObjectType, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'linkedParams': Property( - getValue: (CT_ c) => c.linkedParams, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.linkedParams, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'linkedParamsLines': Property( - getValue: (CT_ c) => c.linkedParamsLines, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.linkedParamsLines, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'linkedParamsNoMetadata': Property( - getValue: (CT_ c) => c.linkedParamsNoMetadata, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.linkedParamsNoMetadata == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.linkedParamsNoMetadata!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'location': Property( - getValue: (CT_ c) => c.location, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.location, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'modelNode': Property( - getValue: (CT_ c) => c.modelNode, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'ModelNode', - ), - - isNullValue: (CT_ c) => c.modelNode == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.modelNode, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['ModelNode']!, - ); - }, - ), - 'name': Property( - getValue: (CT_ c) => c.name, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.name, ast, r.template, sink, parent: r); - }, - ), - 'oneLineDoc': Property( - getValue: (CT_ c) => c.oneLineDoc, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.oneLineDoc, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'originalMember': Property( - getValue: (CT_ c) => c.originalMember, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'Element'), - - isNullValue: (CT_ c) => c.originalMember == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.originalMember, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Element']!, - ); - }, - ), - 'package': Property( - getValue: (CT_ c) => c.package, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Package.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Package, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Package( - c.package, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'packageGraph': Property( - getValue: (CT_ c) => c.packageGraph, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'PackageGraph', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.packageGraph, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['PackageGraph']!, - ); - }, - ), - 'parameters': Property( - getValue: (CT_ c) => c.parameters, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.parameters.map( - (e) => _render_Parameter( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'pathContext': Property( - getValue: (CT_ c) => c.pathContext, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'Context'), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.pathContext, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Context']!, - ); - }, - ), - 'qualifiedName': Property( - getValue: (CT_ c) => c.qualifiedName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.qualifiedName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'sourceCode': Property( - getValue: (CT_ c) => c.sourceCode, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.sourceCode, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'sourceFileName': Property( - getValue: (CT_ c) => c.sourceFileName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.sourceFileName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'sourceHref': Property( - getValue: (CT_ c) => c.sourceHref, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.sourceHref, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'tags': Property( - getValue: (CT_ c) => c.tags, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.tags.map( - (e) => _render_Tag(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'unitElement': Property( - getValue: (CT_ c) => c.unitElement, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'LibraryFragment', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.unitElement, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['LibraryFragment']!, - ); - }, - ), - }, - ) - as Map>; - - _Renderer_ModelElement( - ModelElement context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -void _render_ModelFunction( - ModelFunction context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_ModelFunction(context, parent, template, sink); - renderer.renderBlock(ast); -} - -class _Renderer_ModelFunction extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_ModelFunctionTyped.propertyMap(), - ..._Renderer_Categorization.propertyMap(), - 'element': Property( - getValue: (CT_ c) => c.element, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'TopLevelFunctionElement', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.element, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['TopLevelFunctionElement']!, - ); - }, - ), - 'isAsynchronous': Property( - getValue: (CT_ c) => c.isAsynchronous, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isAsynchronous, - ), - 'isStatic': Property( - getValue: (CT_ c) => c.isStatic, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isStatic, - ), - 'name': Property( - getValue: (CT_ c) => c.name, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.name, ast, r.template, sink, parent: r); - }, - ), - }, - ) - as Map>; - - _Renderer_ModelFunction( - ModelFunction context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -void _render_ModelFunctionTyped( - ModelFunctionTyped context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_ModelFunctionTyped(context, parent, template, sink); - renderer.renderBlock(ast); -} - -class _Renderer_ModelFunctionTyped extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> - propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_ModelElement.propertyMap(), - ..._Renderer_TypeParameters.propertyMap(), - 'aboveSidebarPath': Property( - getValue: (CT_ c) => c.aboveSidebarPath, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.aboveSidebarPath, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'belowSidebarPath': Property( - getValue: (CT_ c) => c.belowSidebarPath, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.belowSidebarPath == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.belowSidebarPath!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'element': Property( - getValue: (CT_ c) => c.element, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'FunctionTypedElement', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.element, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['FunctionTypedElement']!, - ); - }, - ), - 'enclosingElement': Property( - getValue: (CT_ c) => c.enclosingElement, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Library.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Library, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Library( - c.enclosingElement, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'enclosingExtension': Property( - getValue: (CT_ c) => c.enclosingExtension, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Extension.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Extension, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Extension( - c.enclosingExtension, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'fileName': Property( - getValue: (CT_ c) => c.fileName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.fileName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'href': Property( - getValue: (CT_ c) => c.href, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.href == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.href!, ast, r.template, sink, parent: r); - }, - ), - 'isInherited': Property( - getValue: (CT_ c) => c.isInherited, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isInherited, - ), - 'isProvidedByExtension': Property( - getValue: (CT_ c) => c.isProvidedByExtension, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isProvidedByExtension, - ), - 'kind': Property( - getValue: (CT_ c) => c.kind, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'Kind'), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.kind, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Kind']!, - ); - }, - ), - 'modelType': Property( - getValue: (CT_ c) => c.modelType, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Callable.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Callable, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Callable( - c.modelType, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'referenceChildren': Property( - getValue: (CT_ c) => c.referenceChildren, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Map', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.referenceChildren, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Map']!, - ); - }, - ), - 'referenceParents': Property( - getValue: (CT_ c) => c.referenceParents, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.referenceParents.map( - (e) => renderSimple( - e, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['CommentReferable']!, - ), - ); - }, - ), - 'typeParameters': Property( - getValue: (CT_ c) => c.typeParameters, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.typeParameters.map( - (e) => _render_TypeParameter( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - }, - ) - as Map>; - - _Renderer_ModelFunctionTyped( - ModelFunctionTyped context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -class _Renderer_Nameable extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - 'breadcrumbName': Property( - getValue: (CT_ c) => c.breadcrumbName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.breadcrumbName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'displayName': Property( - getValue: (CT_ c) => c.displayName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.displayName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'fullyQualifiedName': Property( - getValue: (CT_ c) => c.fullyQualifiedName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.fullyQualifiedName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'isPublic': Property( - getValue: (CT_ c) => c.isPublic, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isPublic, - ), - 'name': Property( - getValue: (CT_ c) => c.name, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.name, ast, r.template, sink, parent: r); - }, - ), - 'packageGraph': Property( - getValue: (CT_ c) => c.packageGraph, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'PackageGraph', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.packageGraph, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['PackageGraph']!, - ); - }, - ), - }, - ) - as Map>; - - _Renderer_Nameable( - Nameable context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -class _Renderer_Object extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - 'hashCode': Property( - getValue: (CT_ c) => c.hashCode, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'int'), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.hashCode, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['int']!, - ); - }, - ), - }, - ) - as Map>; - - _Renderer_Object( - Object context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -class _Renderer_OneDirectoryDown - extends RendererBase> { - static final Map _propertyMapCache = {}; - static Map> - propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - 'htmlBase': Property( - getValue: (CT_ c) => c.htmlBase, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.htmlBase, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - }, - ) - as Map>; - - _Renderer_OneDirectoryDown( - OneDirectoryDown context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property>? getProperty(String key) { - if (propertyMap>().containsKey(key)) { - return propertyMap>()[key]; - } else { - return null; - } - } -} - -void _render_Operator( - Operator context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_Operator(context, parent, template, sink); - renderer.renderBlock(ast); -} - -class _Renderer_Operator extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_Method.propertyMap(), - 'fileName': Property( - getValue: (CT_ c) => c.fileName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.fileName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'fullyQualifiedName': Property( - getValue: (CT_ c) => c.fullyQualifiedName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.fullyQualifiedName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'isOperator': Property( - getValue: (CT_ c) => c.isOperator, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isOperator, - ), - 'name': Property( - getValue: (CT_ c) => c.name, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.name, ast, r.template, sink, parent: r); - }, - ), - 'referenceName': Property( - getValue: (CT_ c) => c.referenceName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.referenceName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - }, - ) - as Map>; - - _Renderer_Operator( - Operator context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -void _render_Package( - Package context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_Package(context, parent, template, sink); - renderer.renderBlock(ast); -} - -class _Renderer_Package extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_LibraryContainer.propertyMap(), - ..._Renderer_Nameable.propertyMap(), - ..._Renderer_Locatable.propertyMap(), - ..._Renderer_Warnable.propertyMap(), - ..._Renderer_CommentReferable.propertyMap(), - 'aboveSidebarPath': Property( - getValue: (CT_ c) => c.aboveSidebarPath, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.aboveSidebarPath == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.aboveSidebarPath!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'allLibraries': Property( - getValue: (CT_ c) => c.allLibraries, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Set', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.allLibraries.map( - (e) => _render_Library( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'baseHref': Property( - getValue: (CT_ c) => c.baseHref, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.baseHref, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'belowSidebarPath': Property( - getValue: (CT_ c) => c.belowSidebarPath, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.belowSidebarPath == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.belowSidebarPath!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'categories': Property( - getValue: (CT_ c) => c.categories, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.categories.map( - (e) => _render_Category( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'categoriesWithPublicLibraries': Property( - getValue: (CT_ c) => c.categoriesWithPublicLibraries, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.categoriesWithPublicLibraries.map( - (e) => _render_Category( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'config': Property( - getValue: (CT_ c) => c.config, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'DartdocOptionContext', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.config, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['DartdocOptionContext']!, - ); - }, - ), - 'containerOrder': Property( - getValue: (CT_ c) => c.containerOrder, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.containerOrder.map( - (e) => - _render_String(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'defaultCategory': Property( - getValue: (CT_ c) => c.defaultCategory, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Category.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Category, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Category( - c.defaultCategory, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'documentation': Property( - getValue: (CT_ c) => c.documentation, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.documentation == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.documentation!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'documentationAsHtml': Property( - getValue: (CT_ c) => c.documentationAsHtml, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.documentationAsHtml, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'documentationFrom': Property( - getValue: (CT_ c) => c.documentationFrom, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.documentationFrom.map( - (e) => renderSimple( - e, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Locatable']!, - ), - ); - }, - ), - 'documentedCategoriesSorted': Property( - getValue: (CT_ c) => c.documentedCategoriesSorted, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.documentedCategoriesSorted.map( - (e) => _render_Category( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'documentedWhere': Property( - getValue: (CT_ c) => c.documentedWhere, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'DocumentLocation', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.documentedWhere, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['DocumentLocation']!, - ); - }, - ), - 'element': Property( - getValue: (CT_ c) => c.element, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'Element'), - - isNullValue: (CT_ c) => c.element == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.element, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Element']!, - ); - }, - ), - 'enclosingName': Property( - getValue: (CT_ c) => c.enclosingName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.enclosingName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'filePath': Property( - getValue: (CT_ c) => c.filePath, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.filePath, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'fullyQualifiedName': Property( - getValue: (CT_ c) => c.fullyQualifiedName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.fullyQualifiedName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'hasCategories': Property( - getValue: (CT_ c) => c.hasCategories, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasCategories, - ), - 'hasDocumentation': Property( - getValue: (CT_ c) => c.hasDocumentation, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasDocumentation, - ), - 'hasDocumentedCategories': Property( - getValue: (CT_ c) => c.hasDocumentedCategories, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasDocumentedCategories, - ), - 'hasHomepage': Property( - getValue: (CT_ c) => c.hasHomepage, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasHomepage, - ), - 'homepage': Property( - getValue: (CT_ c) => c.homepage, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.homepage, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'href': Property( - getValue: (CT_ c) => c.href, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.href, ast, r.template, sink, parent: r); - }, - ), - 'isCanonical': Property( - getValue: (CT_ c) => c.isCanonical, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isCanonical, - ), - 'isDocumented': Property( - getValue: (CT_ c) => c.isDocumented, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isDocumented, - ), - 'isFirstPackage': Property( - getValue: (CT_ c) => c.isFirstPackage, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isFirstPackage, - ), - 'isLocal': Property( - getValue: (CT_ c) => c.isLocal, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isLocal, - ), - 'isPublic': Property( - getValue: (CT_ c) => c.isPublic, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isPublic, - ), - 'isSdk': Property( - getValue: (CT_ c) => c.isSdk, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isSdk, - ), - 'kind': Property( - getValue: (CT_ c) => c.kind, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'Kind'), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.kind, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Kind']!, - ); - }, - ), - 'location': Property( - getValue: (CT_ c) => c.location, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.location, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'name': Property( - getValue: (CT_ c) => c.name, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.name, ast, r.template, sink, parent: r); - }, - ), - 'nameToCategory': Property( - getValue: (CT_ c) => c.nameToCategory, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Map', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.nameToCategory, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Map']!, - ); - }, - ), - 'oneLineDoc': Property( - getValue: (CT_ c) => c.oneLineDoc, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.oneLineDoc, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'package': Property( - getValue: (CT_ c) => c.package, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Package.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Package, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Package( - c.package, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'packageGraph': Property( - getValue: (CT_ c) => c.packageGraph, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'PackageGraph', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.packageGraph, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['PackageGraph']!, - ); - }, - ), - 'packageMeta': Property( - getValue: (CT_ c) => c.packageMeta, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'PackageMeta', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.packageMeta, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['PackageMeta']!, - ); - }, - ), - 'packagePath': Property( - getValue: (CT_ c) => c.packagePath, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.packagePath, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'referenceChildren': Property( - getValue: (CT_ c) => c.referenceChildren, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Map', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.referenceChildren, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Map']!, - ); - }, - ), - 'referenceName': Property( - getValue: (CT_ c) => c.referenceName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.referenceName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'referenceParents': Property( - getValue: (CT_ c) => c.referenceParents, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.referenceParents.map( - (e) => renderSimple( - e, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['CommentReferable']!, - ), - ); - }, - ), - 'toolInvocationIndex': Property( - getValue: (CT_ c) => c.toolInvocationIndex, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'int'), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.toolInvocationIndex, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['int']!, - ); - }, - ), - 'usedAnimationIdsByHref': Property( - getValue: (CT_ c) => c.usedAnimationIdsByHref, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Map>', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.usedAnimationIdsByHref, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Map']!, - ); - }, - ), - 'version': Property( - getValue: (CT_ c) => c.version, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.version, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - }, - ) - as Map>; - - _Renderer_Package( - Package context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -String renderSearchPage(PackageTemplateData context, Template template) { - var buffer = StringBuffer(); - _render_PackageTemplateData(context, template.ast, template, buffer); - return buffer.toString(); -} - -void _render_PackageTemplateData( - PackageTemplateData context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_PackageTemplateData(context, parent, template, sink); - renderer.renderBlock(ast); -} - -class _Renderer_PackageTemplateData extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> - propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_TemplateData.propertyMap(), - 'bareHref': Property( - getValue: (CT_ c) => c.bareHref, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.bareHref, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'hasHomepage': Property( - getValue: (CT_ c) => c.hasHomepage, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasHomepage, - ), - 'homepage': Property( - getValue: (CT_ c) => c.homepage, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.homepage, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'htmlBase': Property( - getValue: (CT_ c) => c.htmlBase, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.htmlBase, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'includeVersion': Property( - getValue: (CT_ c) => c.includeVersion, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.includeVersion, - ), - 'layoutTitle': Property( - getValue: (CT_ c) => c.layoutTitle, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.layoutTitle, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'metaDescription': Property( - getValue: (CT_ c) => c.metaDescription, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.metaDescription, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'navLinks': Property( - getValue: (CT_ c) => c.navLinks, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.navLinks.map( - (e) => _render_Documentable( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'package': Property( - getValue: (CT_ c) => c.package, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Package.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Package, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Package( - c.package, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'self': Property( - getValue: (CT_ c) => c.self, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Package.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Package, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Package(c.self, ast, r.template, sink, parent: r); - }, - ), - 'title': Property( - getValue: (CT_ c) => c.title, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.title, ast, r.template, sink, parent: r); - }, - ), - }, - ) - as Map>; - - _Renderer_PackageTemplateData( - PackageTemplateData context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -String renderIndex(PackageTemplateData context, Template template) { - var buffer = StringBuffer(); - _render_PackageTemplateData(context, template.ast, template, buffer); - return buffer.toString(); -} - -String renderError(PackageTemplateData context, Template template) { - var buffer = StringBuffer(); - _render_PackageTemplateData(context, template.ast, template, buffer); - return buffer.toString(); -} - -void _render_Parameter( - Parameter context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_Parameter(context, parent, template, sink); - renderer.renderBlock(ast); -} - -class _Renderer_Parameter extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_ModelElement.propertyMap(), - ..._Renderer_HasNoPage.propertyMap(), - 'defaultValue': Property( - getValue: (CT_ c) => c.defaultValue, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.defaultValue == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.defaultValue!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'element': Property( - getValue: (CT_ c) => c.element, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'FormalParameterElement', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.element, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['FormalParameterElement']!, - ); - }, - ), - 'enclosingElement': Property( - getValue: (CT_ c) => c.enclosingElement, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_ModelElement.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as ModelElement, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.enclosingElement == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_ModelElement( - c.enclosingElement!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'hasDefaultValue': Property( - getValue: (CT_ c) => c.hasDefaultValue, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasDefaultValue, - ), - 'hashCode': Property( - getValue: (CT_ c) => c.hashCode, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'int'), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.hashCode, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['int']!, - ); - }, - ), - 'href': Property( - getValue: (CT_ c) => c.href, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.href == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.href!, ast, r.template, sink, parent: r); - }, - ), - 'htmlId': Property( - getValue: (CT_ c) => c.htmlId, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.htmlId, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'isCovariant': Property( - getValue: (CT_ c) => c.isCovariant, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isCovariant, - ), - 'isNamed': Property( - getValue: (CT_ c) => c.isNamed, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isNamed, - ), - 'isOptionalPositional': Property( - getValue: (CT_ c) => c.isOptionalPositional, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isOptionalPositional, - ), - 'isRequiredNamed': Property( - getValue: (CT_ c) => c.isRequiredNamed, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isRequiredNamed, - ), - 'isRequiredPositional': Property( - getValue: (CT_ c) => c.isRequiredPositional, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isRequiredPositional, - ), - 'kind': Property( - getValue: (CT_ c) => c.kind, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'Kind'), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.kind, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Kind']!, - ); - }, - ), - 'modelType': Property( - getValue: (CT_ c) => c.modelType, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_ElementType.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as ElementType, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_ElementType( - c.modelType, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'originalMember': Property( - getValue: (CT_ c) => c.originalMember, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'FormalParameterElement', - ), - - isNullValue: (CT_ c) => c.originalMember == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.originalMember, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['FormalParameterElement']!, - ); - }, - ), - 'referenceChildren': Property( - getValue: (CT_ c) => c.referenceChildren, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Map', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.referenceChildren, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Map']!, - ); - }, - ), - 'referenceParents': Property( - getValue: (CT_ c) => c.referenceParents, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.referenceParents.map( - (e) => renderSimple( - e, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['CommentReferable']!, - ), - ); - }, - ), - }, - ) - as Map>; - - _Renderer_Parameter( - Parameter context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -void _render_ParameterizedElementType( - ParameterizedElementType context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_ParameterizedElementType( - context, - parent, - template, - sink, - ); - renderer.renderBlock(ast); -} - -class _Renderer_ParameterizedElementType - extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> - propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_DefinedElementType.propertyMap(), - ..._Renderer_Rendered.propertyMap(), - 'type': Property( - getValue: (CT_ c) => c.type, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'ParameterizedType', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.type, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['ParameterizedType']!, - ); - }, - ), - 'typeArguments': Property( - getValue: (CT_ c) => c.typeArguments, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.typeArguments.map( - (e) => _render_ElementType( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - }, - ) - as Map>; - - _Renderer_ParameterizedElementType( - ParameterizedElementType context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -String renderProperty(PropertyTemplateData context, Template template) { - var buffer = StringBuffer(); - _render_PropertyTemplateData(context, template.ast, template, buffer); - return buffer.toString(); -} - -void _render_PropertyTemplateData( - PropertyTemplateData context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_PropertyTemplateData( - context, - parent, - template, - sink, - ); - renderer.renderBlock(ast); -} - -class _Renderer_PropertyTemplateData - extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> - propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_TemplateData.propertyMap(), - ..._Renderer_TwoDirectoriesDown.propertyMap(), - 'container': Property( - getValue: (CT_ c) => c.container, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Container.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Container, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Container( - c.container, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'layoutTitle': Property( - getValue: (CT_ c) => c.layoutTitle, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.layoutTitle, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'library': Property( - getValue: (CT_ c) => c.library, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Library.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Library, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Library( - c.library, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'metaDescription': Property( - getValue: (CT_ c) => c.metaDescription, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.metaDescription, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'navLinks': Property( - getValue: (CT_ c) => c.navLinks, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.navLinks.map( - (e) => _render_Documentable( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'navLinksWithGenerics': Property( - getValue: (CT_ c) => c.navLinksWithGenerics, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.navLinksWithGenerics.map( - (e) => _render_Container( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'property': Property( - getValue: (CT_ c) => c.property, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Field.propertyMap().getValue( - name, - ); - return nextProperty.renderVariable( - self.getValue(c) as Field, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Field( - c.property, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'self': Property( - getValue: (CT_ c) => c.self, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Field.propertyMap().getValue( - name, - ); - return nextProperty.renderVariable( - self.getValue(c) as Field, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Field(c.self, ast, r.template, sink, parent: r); - }, - ), - 'title': Property( - getValue: (CT_ c) => c.title, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.title, ast, r.template, sink, parent: r); - }, - ), - }, - ) - as Map>; - - _Renderer_PropertyTemplateData( - PropertyTemplateData context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -class _Renderer_Rendered extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - 'linkedName': Property( - getValue: (CT_ c) => c.linkedName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.linkedName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'nameWithGenerics': Property( - getValue: (CT_ c) => c.nameWithGenerics, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.nameWithGenerics, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'nameWithGenericsPlain': Property( - getValue: (CT_ c) => c.nameWithGenericsPlain, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.nameWithGenericsPlain, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - }, - ) - as Map>; - - _Renderer_Rendered( - Rendered context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -class _Renderer_SourceCode extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - 'characterLocation': Property( - getValue: (CT_ c) => c.characterLocation, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'CharacterLocation', - ), - - isNullValue: (CT_ c) => c.characterLocation == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.characterLocation, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['CharacterLocation']!, - ); - }, - ), - 'hasSourceCode': Property( - getValue: (CT_ c) => c.hasSourceCode, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasSourceCode, - ), - 'library': Property( - getValue: (CT_ c) => c.library, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Library.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Library, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.library == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Library( - c.library!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'modelNode': Property( - getValue: (CT_ c) => c.modelNode, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'ModelNode', - ), - - isNullValue: (CT_ c) => c.modelNode == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.modelNode, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['ModelNode']!, - ); - }, - ), - 'sourceCode': Property( - getValue: (CT_ c) => c.sourceCode, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.sourceCode, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - }, - ) - as Map>; - - _Renderer_SourceCode( - SourceCode context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -void _render_String( - String context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_String(context, parent, template, sink); - renderer.renderBlock(ast); -} - -class _Renderer_String extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_Object.propertyMap(), - 'codeUnits': Property( - getValue: (CT_ c) => c.codeUnits, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.codeUnits.map( - (e) => renderSimple( - e, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['int']!, - ), - ); - }, - ), - 'hashCode': Property( - getValue: (CT_ c) => c.hashCode, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'int'), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.hashCode, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['int']!, - ); - }, - ), - 'isEmpty': Property( - getValue: (CT_ c) => c.isEmpty, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isEmpty, - ), - 'isNotEmpty': Property( - getValue: (CT_ c) => c.isNotEmpty, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isNotEmpty, - ), - 'length': Property( - getValue: (CT_ c) => c.length, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'int'), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.length, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['int']!, - ); - }, - ), - 'runes': Property( - getValue: (CT_ c) => c.runes, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'Runes'), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.runes.map( - (e) => renderSimple( - e, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['int']!, - ), - ); - }, - ), - }, - ) - as Map>; - - _Renderer_String( - String context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -void _render_Tag( - Tag context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_Tag(context, parent, template, sink); - renderer.renderBlock(ast); -} - -class _Renderer_Tag extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_Object.propertyMap(), - 'description': Property( - getValue: (CT_ c) => c.description, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.description == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.description!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'label': Property( - getValue: (CT_ c) => c.label, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.label, ast, r.template, sink, parent: r); - }, - ), - 'name': Property( - getValue: (CT_ c) => c.name, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.name, ast, r.template, sink, parent: r); - }, - ), - 'url': Property( - getValue: (CT_ c) => c.url, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.url == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.url!, ast, r.template, sink, parent: r); - }, - ), - }, - ) - as Map>; - - _Renderer_Tag( - Tag context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -class _Renderer_TemplateData - extends RendererBase> { - static final Map _propertyMapCache = {}; - static Map> - propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_TemplateDataBase.propertyMap(), - 'aboveSidebarPath': Property( - getValue: (CT_ c) => c.aboveSidebarPath, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.aboveSidebarPath == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.aboveSidebarPath!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'belowSidebarPath': Property( - getValue: (CT_ c) => c.belowSidebarPath, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.belowSidebarPath == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.belowSidebarPath!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'self': Property( - getValue: (CT_ c) => c.self, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Documentable.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Documentable, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Documentable( - c.self, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - }, - ) - as Map>; - - _Renderer_TemplateData( - TemplateData context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property>? getProperty(String key) { - if (propertyMap>().containsKey(key)) { - return propertyMap>()[key]; - } else { - return null; - } - } -} - -class _Renderer_TemplateDataBase extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> - propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_Object.propertyMap(), - 'bareHref': Property( - getValue: (CT_ c) => c.bareHref, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.bareHref, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'customFooter': Property( - getValue: (CT_ c) => c.customFooter, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.customFooter, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'customHeader': Property( - getValue: (CT_ c) => c.customHeader, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.customHeader, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'customInnerFooter': Property( - getValue: (CT_ c) => c.customInnerFooter, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.customInnerFooter, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'defaultPackage': Property( - getValue: (CT_ c) => c.defaultPackage, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Package.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Package, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Package( - c.defaultPackage, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'hasFooterVersion': Property( - getValue: (CT_ c) => c.hasFooterVersion, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasFooterVersion, - ), - 'hasHomepage': Property( - getValue: (CT_ c) => c.hasHomepage, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasHomepage, - ), - 'homepage': Property( - getValue: (CT_ c) => c.homepage, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.homepage == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.homepage!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'htmlBase': Property( - getValue: (CT_ c) => c.htmlBase, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.htmlBase, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'htmlOptions': Property( - getValue: (CT_ c) => c.htmlOptions, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'TemplateOptions', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.htmlOptions, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['TemplateOptions']!, - ); - }, - ), - 'includeVersion': Property( - getValue: (CT_ c) => c.includeVersion, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.includeVersion, - ), - 'isParentExtension': Property( - getValue: (CT_ c) => c.isParentExtension, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isParentExtension, - ), - 'layoutTitle': Property( - getValue: (CT_ c) => c.layoutTitle, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.layoutTitle, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'localPackages': Property( - getValue: (CT_ c) => c.localPackages, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.localPackages.map( - (e) => _render_Package( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'metaDescription': Property( - getValue: (CT_ c) => c.metaDescription, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.metaDescription, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'navLinks': Property( - getValue: (CT_ c) => c.navLinks, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.navLinks.map( - (e) => _render_Documentable( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'navLinksWithGenerics': Property( - getValue: (CT_ c) => c.navLinksWithGenerics, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.navLinksWithGenerics.map( - (e) => _render_Container( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'parent': Property( - getValue: (CT_ c) => c.parent, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Documentable.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Documentable, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.parent == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Documentable( - c.parent!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'parentAsExtension': Property( - getValue: (CT_ c) => c.parentAsExtension, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Extension.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Extension, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Extension( - c.parentAsExtension, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'relCanonicalPrefix': Property( - getValue: (CT_ c) => c.relCanonicalPrefix, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.relCanonicalPrefix == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.relCanonicalPrefix!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'self': Property( - getValue: (CT_ c) => c.self, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Documentable.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Documentable, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Documentable( - c.self, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'title': Property( - getValue: (CT_ c) => c.title, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.title, ast, r.template, sink, parent: r); - }, - ), - 'useBaseHref': Property( - getValue: (CT_ c) => c.useBaseHref, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.useBaseHref, - ), - 'version': Property( - getValue: (CT_ c) => c.version, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.version, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - }, - ) - as Map>; - - _Renderer_TemplateDataBase( - TemplateDataBase context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -String renderSidebarForContainer( - TemplateDataWithContainer context, - Template template, -) { - var buffer = StringBuffer(); - _render_TemplateDataWithContainer(context, template.ast, template, buffer); - return buffer.toString(); -} - -void _render_TemplateDataWithContainer( - TemplateDataWithContainer context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_TemplateDataWithContainer( - context, - parent, - template, - sink, - ); - renderer.renderBlock(ast); -} - -class _Renderer_TemplateDataWithContainer - extends RendererBase> { - static final Map _propertyMapCache = {}; - static Map> propertyMap< - T extends Documentable, - CT_ extends TemplateDataWithContainer - >() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_Object.propertyMap(), - 'container': Property( - getValue: (CT_ c) => c.container, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Container.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Container, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Container( - c.container, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - }, - ) - as Map>; - - _Renderer_TemplateDataWithContainer( - TemplateDataWithContainer context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property>? getProperty(String key) { - if (propertyMap>().containsKey(key)) { - return propertyMap>()[key]; - } else { - return null; - } - } -} - -String renderSidebarForLibrary( - TemplateDataWithLibrary context, - Template template, -) { - var buffer = StringBuffer(); - _render_TemplateDataWithLibrary(context, template.ast, template, buffer); - return buffer.toString(); -} - -void _render_TemplateDataWithLibrary( - TemplateDataWithLibrary context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_TemplateDataWithLibrary( - context, - parent, - template, - sink, - ); - renderer.renderBlock(ast); -} - -class _Renderer_TemplateDataWithLibrary - extends RendererBase> { - static final Map _propertyMapCache = {}; - static Map> - propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_Object.propertyMap(), - 'library': Property( - getValue: (CT_ c) => c.library, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Library.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Library, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Library( - c.library, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - }, - ) - as Map>; - - _Renderer_TemplateDataWithLibrary( - TemplateDataWithLibrary context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property>? getProperty(String key) { - if (propertyMap>().containsKey(key)) { - return propertyMap>()[key]; - } else { - return null; - } - } -} - -class _Renderer_TopLevelContainer extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> - propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - 'classes': Property( - getValue: (CT_ c) => c.classes, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.classes.map( - (e) => - _render_Class(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'constants': Property( - getValue: (CT_ c) => c.constants, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.constants.map( - (e) => _render_TopLevelVariable( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'enums': Property( - getValue: (CT_ c) => c.enums, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.enums.map( - (e) => - _render_Enum(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'exceptions': Property( - getValue: (CT_ c) => c.exceptions, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.exceptions.map( - (e) => - _render_Class(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'extensionTypes': Property( - getValue: (CT_ c) => c.extensionTypes, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.extensionTypes.map( - (e) => _render_ExtensionType( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'extensions': Property( - getValue: (CT_ c) => c.extensions, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.extensions.map( - (e) => _render_Extension( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'functions': Property( - getValue: (CT_ c) => c.functions, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.functions.map( - (e) => _render_ModelFunction( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'hasPublicClasses': Property( - getValue: (CT_ c) => c.hasPublicClasses, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasPublicClasses, - ), - 'hasPublicConstants': Property( - getValue: (CT_ c) => c.hasPublicConstants, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasPublicConstants, - ), - 'hasPublicEnums': Property( - getValue: (CT_ c) => c.hasPublicEnums, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasPublicEnums, - ), - 'hasPublicExceptions': Property( - getValue: (CT_ c) => c.hasPublicExceptions, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasPublicExceptions, - ), - 'hasPublicExtensionTypes': Property( - getValue: (CT_ c) => c.hasPublicExtensionTypes, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasPublicExtensionTypes, - ), - 'hasPublicExtensions': Property( - getValue: (CT_ c) => c.hasPublicExtensions, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasPublicExtensions, - ), - 'hasPublicFunctions': Property( - getValue: (CT_ c) => c.hasPublicFunctions, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasPublicFunctions, - ), - 'hasPublicMixins': Property( - getValue: (CT_ c) => c.hasPublicMixins, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasPublicMixins, - ), - 'hasPublicProperties': Property( - getValue: (CT_ c) => c.hasPublicProperties, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasPublicProperties, - ), - 'hasPublicTypedefs': Property( - getValue: (CT_ c) => c.hasPublicTypedefs, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasPublicTypedefs, - ), - 'mixins': Property( - getValue: (CT_ c) => c.mixins, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.mixins.map( - (e) => - _render_Mixin(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'properties': Property( - getValue: (CT_ c) => c.properties, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.properties.map( - (e) => _render_TopLevelVariable( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'publicClassesSorted': Property( - getValue: (CT_ c) => c.publicClassesSorted, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.publicClassesSorted.map( - (e) => _render_Container( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'publicConstantsSorted': Property( - getValue: (CT_ c) => c.publicConstantsSorted, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.publicConstantsSorted.map( - (e) => _render_TopLevelVariable( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'publicEnumsSorted': Property( - getValue: (CT_ c) => c.publicEnumsSorted, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.publicEnumsSorted.map( - (e) => - _render_Enum(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'publicExceptionsSorted': Property( - getValue: (CT_ c) => c.publicExceptionsSorted, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.publicExceptionsSorted.map( - (e) => - _render_Class(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'publicExtensionTypesSorted': Property( - getValue: (CT_ c) => c.publicExtensionTypesSorted, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.publicExtensionTypesSorted.map( - (e) => _render_ExtensionType( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'publicExtensionsSorted': Property( - getValue: (CT_ c) => c.publicExtensionsSorted, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.publicExtensionsSorted.map( - (e) => _render_Extension( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'publicFunctionsSorted': Property( - getValue: (CT_ c) => c.publicFunctionsSorted, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.publicFunctionsSorted.map( - (e) => _render_ModelFunctionTyped( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'publicMixinsSorted': Property( - getValue: (CT_ c) => c.publicMixinsSorted, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.publicMixinsSorted.map( - (e) => - _render_Mixin(e, ast, r.template, sink, parent: r), - ); - }, - ), - 'publicPropertiesSorted': Property( - getValue: (CT_ c) => c.publicPropertiesSorted, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.publicPropertiesSorted.map( - (e) => _render_TopLevelVariable( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'publicTypedefsSorted': Property( - getValue: (CT_ c) => c.publicTypedefsSorted, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.publicTypedefsSorted.map( - (e) => _render_Typedef( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'typedefs': Property( - getValue: (CT_ c) => c.typedefs, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.typedefs.map( - (e) => _render_Typedef( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - }, - ) - as Map>; - - _Renderer_TopLevelContainer( - TopLevelContainer context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -String renderTopLevelProperty( - TopLevelPropertyTemplateData context, - Template template, -) { - var buffer = StringBuffer(); - _render_TopLevelPropertyTemplateData(context, template.ast, template, buffer); - return buffer.toString(); -} - -void _render_TopLevelPropertyTemplateData( - TopLevelPropertyTemplateData context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_TopLevelPropertyTemplateData( - context, - parent, - template, - sink, - ); - renderer.renderBlock(ast); -} - -class _Renderer_TopLevelPropertyTemplateData - extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> - propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_TemplateData.propertyMap(), - ..._Renderer_OneDirectoryDown.propertyMap< - TopLevelVariable, - CT_ - >(), - 'layoutTitle': Property( - getValue: (CT_ c) => c.layoutTitle, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.layoutTitle, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'library': Property( - getValue: (CT_ c) => c.library, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Library.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Library, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Library( - c.library, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'metaDescription': Property( - getValue: (CT_ c) => c.metaDescription, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.metaDescription, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'navLinks': Property( - getValue: (CT_ c) => c.navLinks, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.navLinks.map( - (e) => _render_Documentable( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'property': Property( - getValue: (CT_ c) => c.property, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = - _Renderer_TopLevelVariable.propertyMap().getValue( - name, - ); - return nextProperty.renderVariable( - self.getValue(c) as TopLevelVariable, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_TopLevelVariable( - c.property, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'self': Property( - getValue: (CT_ c) => c.self, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = - _Renderer_TopLevelVariable.propertyMap().getValue( - name, - ); - return nextProperty.renderVariable( - self.getValue(c) as TopLevelVariable, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_TopLevelVariable( - c.self, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'title': Property( - getValue: (CT_ c) => c.title, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.title, ast, r.template, sink, parent: r); - }, - ), - }, - ) - as Map>; - - _Renderer_TopLevelPropertyTemplateData( - TopLevelPropertyTemplateData context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -void _render_TopLevelVariable( - TopLevelVariable context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_TopLevelVariable(context, parent, template, sink); - renderer.renderBlock(ast); -} - -class _Renderer_TopLevelVariable extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> - propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_ModelElement.propertyMap(), - ..._Renderer_GetterSetterCombo.propertyMap(), - ..._Renderer_Categorization.propertyMap(), - 'aboveSidebarPath': Property( - getValue: (CT_ c) => c.aboveSidebarPath, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.aboveSidebarPath, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'attributes': Property( - getValue: (CT_ c) => c.attributes, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Set', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.attributes.map( - (e) => renderSimple( - e, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Attribute']!, - ), - ); - }, - ), - 'belowSidebarPath': Property( - getValue: (CT_ c) => c.belowSidebarPath, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.belowSidebarPath == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.belowSidebarPath!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'documentation': Property( - getValue: (CT_ c) => c.documentation, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.documentation, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'element': Property( - getValue: (CT_ c) => c.element, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'TopLevelVariableElement', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.element, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['TopLevelVariableElement']!, - ); - }, - ), - 'enclosingElement': Property( - getValue: (CT_ c) => c.enclosingElement, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Library.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Library, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Library( - c.enclosingElement, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'enclosingExtension': Property( - getValue: (CT_ c) => c.enclosingExtension, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Extension.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Extension, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Extension( - c.enclosingExtension, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'getter': Property( - getValue: (CT_ c) => c.getter, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Accessor.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Accessor, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.getter == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Accessor( - c.getter!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'href': Property( - getValue: (CT_ c) => c.href, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.href == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.href!, ast, r.template, sink, parent: r); - }, - ), - 'isConst': Property( - getValue: (CT_ c) => c.isConst, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isConst, - ), - 'isFinal': Property( - getValue: (CT_ c) => c.isFinal, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isFinal, - ), - 'isInherited': Property( - getValue: (CT_ c) => c.isInherited, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isInherited, - ), - 'isLate': Property( - getValue: (CT_ c) => c.isLate, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isLate, - ), - 'isProvidedByExtension': Property( - getValue: (CT_ c) => c.isProvidedByExtension, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isProvidedByExtension, - ), - 'kind': Property( - getValue: (CT_ c) => c.kind, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'Kind'), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.kind, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Kind']!, - ); - }, - ), - 'referenceParents': Property( - getValue: (CT_ c) => c.referenceParents, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.referenceParents.map( - (e) => renderSimple( - e, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['CommentReferable']!, - ), - ); - }, - ), - 'setter': Property( - getValue: (CT_ c) => c.setter, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Accessor.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Accessor, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.setter == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Accessor( - c.setter!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - }, - ) - as Map>; - - _Renderer_TopLevelVariable( - TopLevelVariable context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -class _Renderer_TwoDirectoriesDown - extends RendererBase> { - static final Map _propertyMapCache = {}; - static Map> - propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - 'htmlBase': Property( - getValue: (CT_ c) => c.htmlBase, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.htmlBase, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - }, - ) - as Map>; - - _Renderer_TwoDirectoriesDown( - TwoDirectoriesDown context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property>? getProperty(String key) { - if (propertyMap>().containsKey(key)) { - return propertyMap>()[key]; - } else { - return null; - } - } -} - -void _render_TypeParameter( - TypeParameter context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_TypeParameter(context, parent, template, sink); - renderer.renderBlock(ast); -} - -class _Renderer_TypeParameter extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_ModelElement.propertyMap(), - ..._Renderer_HasNoPage.propertyMap(), - 'boundType': Property( - getValue: (CT_ c) => c.boundType, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_ElementType.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as ElementType, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.boundType == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_ElementType( - c.boundType!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'element': Property( - getValue: (CT_ c) => c.element, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'TypeParameterElement', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.element, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['TypeParameterElement']!, - ); - }, - ), - 'enclosingElement': Property( - getValue: (CT_ c) => c.enclosingElement, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_ModelElement.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as ModelElement, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_ModelElement( - c.enclosingElement, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'hasParameters': Property( - getValue: (CT_ c) => c.hasParameters, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasParameters, - ), - 'href': Property( - getValue: (CT_ c) => c.href, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.href == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.href!, ast, r.template, sink, parent: r); - }, - ), - 'kind': Property( - getValue: (CT_ c) => c.kind, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'Kind'), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.kind, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Kind']!, - ); - }, - ), - 'linkedName': Property( - getValue: (CT_ c) => c.linkedName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.linkedName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'name': Property( - getValue: (CT_ c) => c.name, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.name, ast, r.template, sink, parent: r); - }, - ), - 'referenceChildren': Property( - getValue: (CT_ c) => c.referenceChildren, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Map', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.referenceChildren, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Map']!, - ); - }, - ), - 'referenceName': Property( - getValue: (CT_ c) => c.referenceName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.referenceName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'referenceParents': Property( - getValue: (CT_ c) => c.referenceParents, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.referenceParents.map( - (e) => renderSimple( - e, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['CommentReferable']!, - ), - ); - }, - ), - }, - ) - as Map>; - - _Renderer_TypeParameter( - TypeParameter context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -class _Renderer_TypeParameters extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - 'genericParameters': Property( - getValue: (CT_ c) => c.genericParameters, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.genericParameters, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'hasGenericParameters': Property( - getValue: (CT_ c) => c.hasGenericParameters, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.hasGenericParameters, - ), - 'linkedGenericParameters': Property( - getValue: (CT_ c) => c.linkedGenericParameters, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.linkedGenericParameters, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'nameWithGenerics': Property( - getValue: (CT_ c) => c.nameWithGenerics, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.nameWithGenerics, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'nameWithLinkedGenerics': Property( - getValue: (CT_ c) => c.nameWithLinkedGenerics, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.nameWithLinkedGenerics, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'typeParameters': Property( - getValue: (CT_ c) => c.typeParameters, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.typeParameters.map( - (e) => _render_TypeParameter( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - }, - ) - as Map>; - - _Renderer_TypeParameters( - TypeParameters context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -void _render_Typedef( - Typedef context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_Typedef(context, parent, template, sink); - renderer.renderBlock(ast); -} - -class _Renderer_Typedef extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_ModelElement.propertyMap(), - ..._Renderer_TypeParameters.propertyMap(), - ..._Renderer_Categorization.propertyMap(), - 'aboveSidebarPath': Property( - getValue: (CT_ c) => c.aboveSidebarPath, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.aboveSidebarPath, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'aliasedType': Property( - getValue: (CT_ c) => c.aliasedType, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'DartType', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.aliasedType, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['DartType']!, - ); - }, - ), - 'asCallable': Property( - getValue: (CT_ c) => c.asCallable, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_FunctionTypedef.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as FunctionTypedef, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_FunctionTypedef( - c.asCallable, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'belowSidebarPath': Property( - getValue: (CT_ c) => c.belowSidebarPath, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.belowSidebarPath == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.belowSidebarPath!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'element': Property( - getValue: (CT_ c) => c.element, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'TypeAliasElement', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.element, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['TypeAliasElement']!, - ); - }, - ), - 'enclosingElement': Property( - getValue: (CT_ c) => c.enclosingElement, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Library.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Library, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Library( - c.enclosingElement, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'fileName': Property( - getValue: (CT_ c) => c.fileName, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.fileName, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'genericParameters': Property( - getValue: (CT_ c) => c.genericParameters, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.genericParameters, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'href': Property( - getValue: (CT_ c) => c.href, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.href == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.href!, ast, r.template, sink, parent: r); - }, - ), - 'isInherited': Property( - getValue: (CT_ c) => c.isInherited, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.isInherited, - ), - 'kind': Property( - getValue: (CT_ c) => c.kind, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'Kind'), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.kind, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Kind']!, - ); - }, - ), - 'linkedGenericParameters': Property( - getValue: (CT_ c) => c.linkedGenericParameters, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.linkedGenericParameters, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'modelType': Property( - getValue: (CT_ c) => c.modelType, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_ElementType.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as ElementType, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_ElementType( - c.modelType, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'nameWithGenerics': Property( - getValue: (CT_ c) => c.nameWithGenerics, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.nameWithGenerics, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'referenceChildren': Property( - getValue: (CT_ c) => c.referenceChildren, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Map', - ), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.referenceChildren, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Map']!, - ); - }, - ), - 'referenceParents': Property( - getValue: (CT_ c) => c.referenceParents, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'Iterable', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.referenceParents.map( - (e) => renderSimple( - e, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['CommentReferable']!, - ), - ); - }, - ), - 'typeParameters': Property( - getValue: (CT_ c) => c.typeParameters, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.typeParameters.map( - (e) => _render_TypeParameter( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - }, - ) - as Map>; - - _Renderer_Typedef( - Typedef context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -String renderTypedef(TypedefTemplateData context, Template template) { - var buffer = StringBuffer(); - _render_TypedefTemplateData(context, template.ast, template, buffer); - return buffer.toString(); -} - -void _render_TypedefTemplateData( - TypedefTemplateData context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = _Renderer_TypedefTemplateData(context, parent, template, sink); - renderer.renderBlock(ast); -} - -class _Renderer_TypedefTemplateData extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> - propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ..._Renderer_TemplateData.propertyMap(), - ..._Renderer_OneDirectoryDown.propertyMap(), - 'layoutTitle': Property( - getValue: (CT_ c) => c.layoutTitle, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.layoutTitle, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'library': Property( - getValue: (CT_ c) => c.library, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Library.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Library, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Library( - c.library, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'metaDescription': Property( - getValue: (CT_ c) => c.metaDescription, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String( - c.metaDescription, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 'navLinks': Property( - getValue: (CT_ c) => c.navLinks, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.navLinks.map( - (e) => _render_Documentable( - e, - ast, - r.template, - sink, - parent: r, - ), - ); - }, - ), - 'self': Property( - getValue: (CT_ c) => c.self, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Typedef.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Typedef, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Typedef(c.self, ast, r.template, sink, parent: r); - }, - ), - 'title': Property( - getValue: (CT_ c) => c.title, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_String.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as String, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_String(c.title, ast, r.template, sink, parent: r); - }, - ), - 'typeDef': Property( - getValue: (CT_ c) => c.typeDef, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = _Renderer_Typedef.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Typedef, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Typedef( - c.typeDef, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - }, - ) - as Map>; - - _Renderer_TypedefTemplateData( - TypedefTemplateData context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -class _Renderer_Warnable extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - 'element': Property( - getValue: (CT_ c) => c.element, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'Element'), - - isNullValue: (CT_ c) => c.element == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.element, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Element']!, - ); - }, - ), - }, - ) - as Map>; - - _Renderer_Warnable( - Warnable context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -const _invisibleGetters = { - 'Attribute': { - 'cssClassName', - 'hashCode', - 'linkedName', - 'linkedNameWithParameters', - 'name', - 'runtimeType', - 'sortGroup', - }, - 'CharacterLocation': { - 'columnNumber', - 'hashCode', - 'lineNumber', - 'runtimeType', - }, - 'ClassElement': { - 'firstFragment', - 'fragments', - 'hasNonFinalField', - 'hashCode', - 'isAbstract', - 'isBase', - 'isConstructable', - 'isDartCoreEnum', - 'isDartCoreObject', - 'isExhaustive', - 'isExtendableOutside', - 'isFinal', - 'isImplementableOutside', - 'isInterface', - 'isMixableOutside', - 'isMixinApplication', - 'isMixinClass', - 'isSealed', - 'isValidMixin', - 'runtimeType', - }, - 'CommentReferable': { - 'definingCommentReferable', - 'href', - 'library', - 'referenceChildren', - 'referenceGrandparentOverrides', - 'referenceName', - 'referenceParents', - 'scope', - }, - 'Constructable': { - 'constructors', - 'extraReferenceChildren', - 'hasPublicConstructors', - 'publicConstructorsSorted', - }, - 'ConstructorElement': { - 'baseElement', - 'enclosingElement', - 'enclosingElement2', - 'firstFragment', - 'fragments', - 'hashCode', - 'isConst', - 'isDefaultConstructor', - 'isFactory', - 'isGenerative', - 'name', - 'name3', - 'redirectedConstructor', - 'redirectedConstructor2', - 'returnType', - 'runtimeType', - 'superConstructor', - 'superConstructor2', - }, - 'ContainerModifier': { - 'description', - 'displayName', - 'hashCode', - 'hideIfPresent', - 'name', - 'order', - 'runtimeType', - 'url', - }, - 'Context': {'current', 'hashCode', 'runtimeType', 'separator', 'style'}, - 'DartType': { - 'alias', - 'element', - 'element3', - 'extensionTypeErasure', - 'hashCode', - 'isBottom', - 'isDartAsyncFuture', - 'isDartAsyncFutureOr', - 'isDartAsyncStream', - 'isDartCoreBool', - 'isDartCoreDouble', - 'isDartCoreEnum', - 'isDartCoreFunction', - 'isDartCoreInt', - 'isDartCoreIterable', - 'isDartCoreList', - 'isDartCoreMap', - 'isDartCoreNull', - 'isDartCoreNum', - 'isDartCoreObject', - 'isDartCoreRecord', - 'isDartCoreSet', - 'isDartCoreString', - 'isDartCoreSymbol', - 'isDartCoreType', - 'name', - 'nullabilitySuffix', - 'runtimeType', - }, - 'DartdocOptionContext': { - 'allowTools', - 'ambiguousReexportScorerMinConfidence', - 'autoIncludeDependencies', - 'categories', - 'categoryOrder', - 'context', - 'exclude', - 'excludeFooterVersion', - 'flutterRoot', - 'hashCode', - 'include', - 'includeSource', - 'injectHtml', - 'inputDir', - 'linkToRemote', - 'linkToUrl', - 'maxFileCount', - 'maxTotalSize', - 'optionSet', - 'output', - 'packageMeta', - 'packageOrder', - 'resourceProvider', - 'runtimeType', - 'sanitizeHtml', - 'sdkDir', - 'sdkDocs', - 'showStats', - 'showUndocumentedCategories', - 'tools', - 'topLevelPackageMeta', - 'useBaseHref', - 'useCategories', - 'validateLinks', - }, - 'DocumentLocation': {'hashCode', 'index', 'runtimeType'}, - 'Documentation': {'asHtml', 'asOneLiner', 'hashCode', 'runtimeType'}, - 'DocumentationComment': { - 'documentationAsHtml', - 'documentationComment', - 'documentationFrom', - 'documentationLocal', - 'element', - 'elementDocumentation', - 'hasDocumentationComment', - 'hasNodoc', - 'needsPrecache', - 'pathContext', - 'qualifiedName', - 'sourceFileName', - }, - 'Element': { - 'baseElement', - 'children', - 'children2', - 'displayName', - 'documentationComment', - 'enclosingElement', - 'enclosingElement2', - 'firstFragment', - 'fragments', - 'hashCode', - 'id', - 'isPrivate', - 'isPublic', - 'isSynthetic', - 'kind', - 'library', - 'library2', - 'lookupName', - 'metadata', - 'name', - 'name3', - 'nonSynthetic', - 'nonSynthetic2', - 'runtimeType', - 'session', - 'sinceSdkVersion', - }, - 'EnumElement': { - 'constants', - 'constants2', - 'firstFragment', - 'fragments', - 'hashCode', - 'runtimeType', - }, - 'ExecutableElement': { - 'baseElement', - 'firstFragment', - 'fragments', - 'hasImplicitReturnType', - 'hashCode', - 'isAbstract', - 'isExtensionTypeMember', - 'isExternal', - 'isStatic', - 'runtimeType', - }, - 'ExtensionElement': { - 'extendedType', - 'firstFragment', - 'fragments', - 'hashCode', - 'runtimeType', - }, - 'ExtensionTypeElement': { - 'firstFragment', - 'fragments', - 'hashCode', - 'primaryConstructor', - 'primaryConstructor2', - 'representation', - 'representation2', - 'runtimeType', - 'typeErasure', - }, - 'FieldElement': { - 'baseElement', - 'enclosingElement', - 'enclosingElement2', - 'firstFragment', - 'fragments', - 'hashCode', - 'isAbstract', - 'isCovariant', - 'isEnumConstant', - 'isExternal', - 'isPromotable', - 'runtimeType', - }, - 'File': {'hashCode', 'lengthSync', 'modificationStamp', 'runtimeType'}, - 'FormalParameterElement': { - 'baseElement', - 'defaultValueCode', - 'firstFragment', - 'formalParameters', - 'fragments', - 'hasDefaultValue', - 'hashCode', - 'isCovariant', - 'isInitializingFormal', - 'isNamed', - 'isOptional', - 'isOptionalNamed', - 'isOptionalPositional', - 'isPositional', - 'isRequired', - 'isRequiredNamed', - 'isRequiredPositional', - 'isSuperFormal', - 'runtimeType', - 'typeParameters', - 'typeParameters2', - }, - 'FunctionType': { - 'element', - 'element3', - 'formalParameters', - 'hashCode', - 'namedParameterTypes', - 'normalParameterTypes', - 'optionalParameterTypes', - 'returnType', - 'runtimeType', - 'typeParameters', - }, - 'FunctionTypedElement': { - 'firstFragment', - 'formalParameters', - 'fragments', - 'hashCode', - 'returnType', - 'runtimeType', - 'type', - }, - 'GetterSetterCombo': { - 'allAccessors', - 'annotations', - 'arrow', - 'characterLocation', - 'comboAttributes', - 'constantValue', - 'constantValueBase', - 'constantValueTruncated', - 'documentationComment', - 'documentationFrom', - 'enclosingElement', - 'fileName', - 'getter', - 'getterSetterBothAvailable', - 'hasAccessorsWithDocs', - 'hasConstantValueForDisplay', - 'hasDocumentationComment', - 'hasExplicitGetter', - 'hasExplicitSetter', - 'hasGetter', - 'hasGetterOrSetter', - 'hasParameters', - 'hasPublicGetter', - 'hasPublicGetterNoSetter', - 'hasPublicSetter', - 'hasSetter', - 'isCallable', - 'isInherited', - 'isPublic', - 'linkedParamsNoMetadata', - 'modelType', - 'name', - 'oneLineDoc', - 'parameters', - 'readOnly', - 'readWrite', - 'referenceChildren', - 'setter', - 'writeOnly', - }, - 'Inheritable': { - 'attributes', - 'canonicalLibrary', - 'canonicalModelElement', - 'isCovariant', - 'isInherited', - 'isOverride', - 'overriddenDepth', - 'overriddenElement', - }, - 'InterfaceElement': { - 'allSupertypes', - 'constructors', - 'constructors2', - 'firstFragment', - 'fragments', - 'hashCode', - 'inheritedConcreteMembers', - 'inheritedMembers', - 'interfaceMembers', - 'interfaces', - 'mixins', - 'runtimeType', - 'supertype', - 'thisType', - 'unnamedConstructor', - 'unnamedConstructor2', - }, - 'Iterable': { - 'first', - 'hashCode', - 'isEmpty', - 'isNotEmpty', - 'iterator', - 'last', - 'length', - 'runtimeType', - 'single', - }, - 'Kind': {'hashCode', 'index', 'runtimeType'}, - 'LibraryElement': { - 'classes', - 'entryPoint', - 'entryPoint2', - 'enums', - 'exportNamespace', - 'exportedLibraries', - 'exportedLibraries2', - 'extensionTypes', - 'extensions', - 'featureSet', - 'firstFragment', - 'fragments', - 'getters', - 'hashCode', - 'identifier', - 'isDartAsync', - 'isDartCore', - 'isInSdk', - 'languageVersion', - 'library', - 'library2', - 'loadLibraryFunction', - 'loadLibraryFunction2', - 'mixins', - 'publicNamespace', - 'runtimeType', - 'session', - 'setters', - 'topLevelFunctions', - 'topLevelVariables', - 'typeAliases', - 'typeProvider', - 'typeSystem', - 'uri', - }, - 'LibraryFragment': { - 'accessibleExtensions', - 'accessibleExtensions2', - 'classes', - 'classes2', - 'element', - 'enclosingFragment', - 'enums', - 'enums2', - 'extensionTypes', - 'extensionTypes2', - 'extensions', - 'extensions2', - 'functions', - 'functions2', - 'getters', - 'hashCode', - 'importedLibraries', - 'importedLibraries2', - 'libraryExports', - 'libraryExports2', - 'libraryImports', - 'libraryImports2', - 'lineInfo', - 'mixins', - 'mixins2', - 'nextFragment', - 'offset', - 'partIncludes', - 'prefixes', - 'previousFragment', - 'runtimeType', - 'scope', - 'setters', - 'source', - 'topLevelVariables', - 'topLevelVariables2', - 'typeAliases', - 'typeAliases2', - }, - 'List': {'hashCode', 'length', 'reversed', 'runtimeType'}, - 'Locatable': { - 'documentationFrom', - 'documentationIsLocal', - 'fullyQualifiedName', - 'href', - 'isCanonical', - 'location', - }, - 'Map': { - 'entries', - 'hashCode', - 'isEmpty', - 'isNotEmpty', - 'keys', - 'length', - 'runtimeType', - 'values', - }, - 'MethodElement': { - 'baseElement', - 'firstFragment', - 'fragments', - 'hashCode', - 'isOperator', - 'runtimeType', - }, - 'MixinElement': { - 'firstFragment', - 'fragments', - 'hashCode', - 'isBase', - 'isImplementableOutside', - 'runtimeType', - 'superclassConstraints', - }, - 'ModelNode': {'commentData', 'hashCode', 'runtimeType', 'sourceCode'}, - 'PackageGraph': { - 'allConstructedModelElements', - 'allExtensionsAdded', - 'allHrefs', - 'allImplementersAdded', - 'allInheritableElements', - 'allLibrariesAdded', - 'breadcrumbName', - 'config', - 'dartCoreObject', - 'defaultPackage', - 'defaultPackageName', - 'displayName', - 'extensions', - 'hasEmbedderSdk', - 'hasFooterVersion', - 'hashCode', - 'implementers', - 'libraries', - 'libraryCount', - 'libraryExports', - 'localPackages', - 'localPublicLibraries', - 'name', - 'objectClass', - 'packageGraph', - 'packageMap', - 'packageMeta', - 'packageMetaProvider', - 'packageWarningCounter', - 'packages', - 'publicLibraries', - 'publicPackages', - 'referenceChildren', - 'referenceParents', - 'resourceProvider', - 'runtimeType', - 'sdkLibrarySources', - }, - 'PackageMeta': { - 'dir', - 'hashCode', - 'homepage', - 'hostedAt', - 'isSdk', - 'isValid', - 'name', - 'requiresFlutter', - 'resolvedDir', - 'resourceProvider', - 'runtimeType', - 'version', - }, - 'ParameterizedType': {'hashCode', 'runtimeType', 'typeArguments'}, - 'PropertyAccessorElement': { - 'baseElement', - 'enclosingElement', - 'enclosingElement2', - 'firstFragment', - 'fragments', - 'hashCode', - 'runtimeType', - 'variable', - 'variable3', - }, - 'Scope': {'hashCode', 'runtimeType'}, - 'TemplateOptions': { - 'customFooterContent', - 'customHeaderContent', - 'customInnerFooterText', - 'hashCode', - 'relCanonicalPrefix', - 'runtimeType', - 'toolVersion', - 'useBaseHref', - }, - 'TopLevelFunctionElement': { - 'baseElement', - 'firstFragment', - 'fragments', - 'hashCode', - 'isDartCoreIdentical', - 'isEntryPoint', - 'runtimeType', - }, - 'TopLevelVariableElement': { - 'baseElement', - 'firstFragment', - 'fragments', - 'hashCode', - 'isExternal', - 'runtimeType', - }, - 'TypeAliasElement': { - 'aliasedElement', - 'aliasedElement2', - 'aliasedType', - 'enclosingElement', - 'enclosingElement2', - 'firstFragment', - 'fragments', - 'hashCode', - 'runtimeType', - }, - 'TypeParameterElement': { - 'baseElement', - 'bound', - 'firstFragment', - 'fragments', - 'hashCode', - 'runtimeType', - }, - 'int': { - 'bitLength', - 'hashCode', - 'isEven', - 'isFinite', - 'isInfinite', - 'isNaN', - 'isNegative', - 'isOdd', - 'runtimeType', - 'sign', - }, -}; diff --git a/test/mustachio/foo.runtime_renderers.dart b/test/mustachio/foo.runtime_renderers.dart deleted file mode 100644 index 44ba77af3c..0000000000 --- a/test/mustachio/foo.runtime_renderers.dart +++ /dev/null @@ -1,839 +0,0 @@ -// GENERATED CODE. DO NOT EDIT. -// -// To change the contents of this library, make changes to the builder source -// files in the tool/mustachio/ directory. - -// ignore_for_file: camel_case_types, deprecated_member_use_from_same_package -// ignore_for_file: non_constant_identifier_names, unnecessary_string_escapes -// ignore_for_file: unused_import -// ignore_for_file: use_super_parameters - -import 'package:dartdoc/src/element_type.dart'; -import 'package:dartdoc/src/generator/template_data.dart'; -import 'package:dartdoc/src/model/annotation.dart'; -import 'package:dartdoc/src/model/attribute.dart'; -import 'package:dartdoc/src/model/comment_referable.dart'; -import 'package:dartdoc/src/model/model.dart'; -import 'package:dartdoc/src/model/tag.dart'; -import 'package:dartdoc/src/mustachio/parser.dart'; -import 'package:dartdoc/src/mustachio/renderer_base.dart'; -import 'package:dartdoc/src/warnings.dart'; -import 'foo.dart'; - -String renderBar(Bar context, Template template) { - var buffer = StringBuffer(); - _render_Bar(context, template.ast, template, buffer); - return buffer.toString(); -} - -void _render_Bar( - Bar context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = Renderer_Bar(context, parent, template, sink); - renderer.renderBlock(ast); -} - -class Renderer_Bar extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ...Renderer_Object.propertyMap(), - 'baz': Property( - getValue: (CT_ c) => c.baz, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = Renderer_Baz.propertyMap().getValue( - name, - ); - return nextProperty.renderVariable( - self.getValue(c) as Baz, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.baz == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Baz(c.baz!, ast, r.template, sink, parent: r); - }, - ), - 'foo': Property( - getValue: (CT_ c) => c.foo, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = Renderer_Foo.propertyMap().getValue( - name, - ); - return nextProperty.renderVariable( - self.getValue(c) as Foo, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.foo == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Foo(c.foo!, ast, r.template, sink, parent: r); - }, - ), - 'l1': Property( - getValue: (CT_ c) => c.l1, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.l1 == true, - ), - 's2': Property( - getValue: (CT_ c) => c.s2, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'String'), - - isNullValue: (CT_ c) => c.s2 == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.s2, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['String']!, - ); - }, - ), - }, - ) - as Map>; - - Renderer_Bar( - Bar context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -String renderBaz(Baz context, Template template) { - var buffer = StringBuffer(); - _render_Baz(context, template.ast, template, buffer); - return buffer.toString(); -} - -void _render_Baz( - Baz context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = Renderer_Baz(context, parent, template, sink); - renderer.renderBlock(ast); -} - -class Renderer_Baz extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ...Renderer_Object.propertyMap(), - 'bar': Property( - getValue: (CT_ c) => c.bar, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = Renderer_Bar.propertyMap().getValue( - name, - ); - return nextProperty.renderVariable( - self.getValue(c) as Bar, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.bar == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Bar(c.bar!, ast, r.template, sink, parent: r); - }, - ), - }, - ) - as Map>; - - Renderer_Baz( - Baz context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -String renderFoo(Foo context, Template template) { - var buffer = StringBuffer(); - _render_Foo(context, template.ast, template, buffer); - return buffer.toString(); -} - -void _render_Foo( - Foo context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = Renderer_Foo(context, parent, template, sink); - renderer.renderBlock(ast); -} - -class Renderer_Foo extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ...Renderer_FooBase.propertyMap(), - 'b1': Property( - getValue: (CT_ c) => c.b1, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.b1, - ), - 'baz': Property( - getValue: (CT_ c) => c.baz, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = Renderer_Baz.propertyMap().getValue( - name, - ); - return nextProperty.renderVariable( - self.getValue(c) as Baz, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.baz == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Baz(c.baz!, ast, r.template, sink, parent: r); - }, - ), - 'l1': Property( - getValue: (CT_ c) => c.l1, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.l1.map( - (e) => renderSimple( - e, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['int']!, - ), - ); - }, - ), - 'length': Property( - getValue: (CT_ c) => c.length, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'int'), - - isNullValue: (CT_ c) => c.length == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.length, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['int']!, - ); - }, - ), - 'p1': Property( - getValue: (CT_ c) => c.p1, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = Renderer_Property1.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Property1, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.p1 == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Property1( - c.p1!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - 's1': Property( - getValue: (CT_ c) => c.s1, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'String'), - - isNullValue: (CT_ c) => c.s1 == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.s1, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['String']!, - ); - }, - ), - }, - ) - as Map>; - - Renderer_Foo( - Foo context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -class Renderer_FooBase extends RendererBase> { - static final Map _propertyMapCache = {}; - static Map> - propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ...Renderer_Object.propertyMap(), - 'baz': Property( - getValue: (CT_ c) => c.baz, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = Renderer_Object.propertyMap().getValue( - name, - ); - return nextProperty.renderVariable( - self.getValue(c) as Object, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.baz, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['Object']!, - ); - }, - ), - }, - ) - as Map>; - - Renderer_FooBase( - FooBase context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property>? getProperty(String key) { - if (propertyMap>().containsKey(key)) { - return propertyMap>()[key]; - } else { - return null; - } - } -} - -class Renderer_Mixin1 extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - 'p3': Property( - getValue: (CT_ c) => c.p3, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = Renderer_Property3.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Property3, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.p3 == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Property3( - c.p3!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - }, - ) - as Map>; - - Renderer_Mixin1( - Mixin1 context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -class Renderer_Object extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - 'hashCode': Property( - getValue: (CT_ c) => c.hashCode, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'int'), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.hashCode, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['int']!, - ); - }, - ), - }, - ) - as Map>; - - Renderer_Object( - Object context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -void _render_Property1( - Property1 context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = Renderer_Property1(context, parent, template, sink); - renderer.renderBlock(ast); -} - -class Renderer_Property1 extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ...Renderer_Object.propertyMap(), - 'p2': Property( - getValue: (CT_ c) => c.p2, - renderVariable: - (CT_ c, Property self, List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = Renderer_Property2.propertyMap() - .getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as Property2, - nextProperty, - [...remainingNames.skip(1)], - ); - }, - - isNullValue: (CT_ c) => c.p2 == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - _render_Property2( - c.p2!, - ast, - r.template, - sink, - parent: r, - ); - }, - ), - }, - ) - as Map>; - - Renderer_Property1( - Property1 context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -void _render_Property2( - Property2 context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = Renderer_Property2(context, parent, template, sink); - renderer.renderBlock(ast); -} - -class Renderer_Property2 extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ...Renderer_Object.propertyMap(), - ...Renderer_Mixin1.propertyMap(), - 's': Property( - getValue: (CT_ c) => c.s, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'String'), - - isNullValue: (CT_ c) => c.s == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.s, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['String']!, - ); - }, - ), - }, - ) - as Map>; - - Renderer_Property2( - Property2 context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -void _render_Property3( - Property3 context, - List ast, - Template template, - StringSink sink, { - RendererBase? parent, -}) { - var renderer = Renderer_Property3(context, parent, template, sink); - renderer.renderBlock(ast); -} - -class Renderer_Property3 extends RendererBase { - static final Map _propertyMapCache = {}; - static Map> propertyMap() => - _propertyMapCache.putIfAbsent( - CT_, - () => { - ...Renderer_Object.propertyMap(), - 's': Property( - getValue: (CT_ c) => c.s, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'String'), - - isNullValue: (CT_ c) => c.s == null, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.s, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['String']!, - ); - }, - ), - }, - ) - as Map>; - - Renderer_Property3( - Property3 context, - RendererBase? parent, - Template template, - StringSink sink, - ) : super(context, parent, template, sink); - - @override - Property? getProperty(String key) { - if (propertyMap().containsKey(key)) { - return propertyMap()[key]; - } else { - return null; - } - } -} - -const _invisibleGetters = { - 'Object': {'hashCode', 'runtimeType'}, - 'String': { - 'codeUnits', - 'hashCode', - 'isEmpty', - 'isNotEmpty', - 'length', - 'runes', - 'runtimeType', - }, - 'int': { - 'bitLength', - 'hashCode', - 'isEven', - 'isFinite', - 'isInfinite', - 'isNaN', - 'isNegative', - 'isOdd', - 'runtimeType', - 'sign', - }, -}; diff --git a/test/mustachio/render_tests_test.dart b/test/mustachio/render_tests_test.dart deleted file mode 100644 index f493ea058b..0000000000 --- a/test/mustachio/render_tests_test.dart +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright (c) 2021, 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 'dart:io'; -import 'dart:isolate' show Isolate; - -import 'package:path/path.dart' as path; -import 'package:test/test.dart'; - -void main() { - test( - 'aot_compiler_render_test has same test cases as runtime_renderer_render_test', - () async { - var testCasePattern = RegExp(r'test\(.*,'); - var dartdocLibUri = await Isolate.resolvePackageUri( - Uri.parse('package:dartdoc/dartdoc.dart')); - var dartdocPath = path.dirname(path.dirname(dartdocLibUri!.path)); - // Correct Windows issue path coming out of [Isolate.resolvePackageUri]. - if (path.separator == path.windows.separator && - dartdocPath.startsWith('/')) { - dartdocPath = dartdocPath.substring(1).replaceAll('/', path.separator); - } - var runtimeRendererRenderTest = File(path.join(dartdocPath, 'test', - 'mustachio', 'runtime_renderer_render_test.dart')) - .readAsLinesSync(); - var runtimeRendererTestCases = runtimeRendererRenderTest - .where((line) => line.contains('test(')) - // Ignore tests about the runtime renderers' property maps. - .where((line) => !line.contains('property map contains')) - .where((line) => !line.contains('Property returns')) - .where((line) => !line.contains('isNullValue')) - // Ignore tests about the Parser. - .where((line) => !line.contains('Parser ')) - // Ignore tests about the SimpleRenderer. - .where((line) => !line.contains('SimpleRenderer')) - .map((line) => testCasePattern.firstMatch(line)!.group(0)) - .toSet(); - - var aotCompilerRenderTest = File(path.join( - dartdocPath, 'test', 'mustachio', 'aot_compiler_render_test.dart')) - .readAsLinesSync(); - var aotCompilerTestCases = aotCompilerRenderTest - .where((line) => testCasePattern.hasMatch(line)) - .map((line) => testCasePattern.firstMatch(line)!.group(0)) - .toSet(); - - var difference = runtimeRendererTestCases.difference(aotCompilerTestCases); - expect(difference, isEmpty); - }); -} diff --git a/test/mustachio/runtime_renderer_builder_test.dart b/test/mustachio/runtime_renderer_builder_test.dart deleted file mode 100644 index 88832b03e2..0000000000 --- a/test/mustachio/runtime_renderer_builder_test.dart +++ /dev/null @@ -1,333 +0,0 @@ -// Copyright (c) 2021, 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. - -@TestOn('vm && !windows') -@Timeout.factor(2) -library; - -import 'dart:io'; - -import 'package:analyzer/dart/element/element.dart'; -import 'package:test/test.dart'; -import 'package:test_descriptor/test_descriptor.dart' as d; - -import 'builder_test_base.dart'; - -void main() { - group('builds a renderer class', () { - late final LibraryElement renderersLibrary; - late final String generatedContent; - - // Builders are fairly expensive (about 4 seconds per `testBuilder` call), - // so this [setUpAll] saves significant time over [setUp]. - setUpAll(() async { - await testMustachioBuilder(''' -abstract class FooBase2 { - T get generic; -} -abstract class FooBase extends FooBase2 { - Bar get bar; -} -mixin Mix on FooBase { - String get field => 'Mix.field'; -} -abstract class Foo extends FooBase with Mix { - String s1 = "s1"; - bool b1 = false; - List l1 = [1, 2, 3]; -} -class Bar {} -class Baz {} -'''); - renderersLibrary = await resolveGeneratedLibrary2(runtimeRenderersPath); - generatedContent = await File(runtimeRenderersPath).readAsString(); - }); - - test('for a class which implicitly extends Object', () { - // The renderer class for Foo - expect( - generatedContent, - contains( - 'class _Renderer_FooBase extends RendererBase>')); - }); - - test('for Object', () { - // The renderer class for Object - expect(generatedContent, - contains('class _Renderer_Object extends RendererBase {')); - }); - - test('for a class which is extended by a rendered class', () { - // No render function is necessary. - expect(renderersLibrary.getTopLevelFunction('_render_FooBase'), isNull); - expect(renderersLibrary.getClass('_Renderer_FooBase'), isNotNull); - }); - - test('for a class which is mixed into a rendered class', () { - // No render function is necessary. - expect(renderersLibrary.getTopLevelFunction('_render_Mix'), isNull); - expect(renderersLibrary.getClass('_Renderer_Mix'), isNotNull); - }); - - test('for a type found in a getter', () { - expect(renderersLibrary.getTopLevelFunction('_render_Bar'), isNotNull); - expect(renderersLibrary.getClass('_Renderer_Bar'), isNotNull); - }); - - test('for a generic, bounded type found in a getter', () { - expect(renderersLibrary.getTopLevelFunction('_render_Baz'), isNotNull); - expect(renderersLibrary.getClass('_Renderer_Baz'), isNotNull); - }); - - test('with a property map', () { - expect( - generatedContent, - contains( - 'static Map> propertyMap() =>')); - }); - - test('with a property map which references the superclass', () { - expect(generatedContent, - contains('..._Renderer_FooBase.propertyMap(),')); - }); - - test('with a property map which references a mixed in class', () { - expect(generatedContent, - contains('..._Renderer_Mix.propertyMap(),')); - }); - - test('with a property map with a bool property', () { - expect(generatedContent, contains(''' - 'b1': Property( - getValue: (CT_ c) => c.b1, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'bool'), - - getBool: (CT_ c) => c.b1, - ), -''')); - }); - - test('with a property map with an Iterable property', () { - expect(generatedContent, contains(''' - 'l1': Property( - getValue: (CT_ c) => c.l1, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable( - c, - remainingNames, - 'List', - ), - - renderIterable: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - return c.l1.map( - (e) => renderSimple( - e, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['int']!, - ), - ); - }, - ), -''')); - }); - - test( - 'with a property map with a non-bool, non-Iterable, non-nullable property', - () { - expect(generatedContent, contains(''' - 's1': Property( - getValue: (CT_ c) => c.s1, - renderVariable: - (CT_ c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, 'String'), - - isNullValue: (CT_ c) => false, - - renderValue: - ( - CT_ c, - RendererBase r, - List ast, - StringSink sink, - ) { - renderSimple( - c.s1, - ast, - r.template, - sink, - parent: r, - getters: _invisibleGetters['String']!, - ); - }, - ), -''')); - }); - }); - - test('builds renderers from multiple annotations', () async { - await testMustachioBuilder(''' -class Foo { - String s1 = 'hello'; -} -class Bar {} -class Baz {} -''', libraryFrontMatter: ''' -@Renderer(#renderFoo, Context(), 'foo') -@Renderer(#renderBar, Context(), 'bar') -library foo; -import 'annotations.dart'; -'''); - var renderersLibrary = await resolveGeneratedLibrary2(runtimeRenderersPath); - - expect(renderersLibrary.getTopLevelFunction('renderFoo'), isNotNull); - expect(renderersLibrary.getTopLevelFunction('renderBar'), isNotNull); - expect(renderersLibrary.getClass('_Renderer_Foo'), isNotNull); - expect(renderersLibrary.getClass('_Renderer_Bar'), isNotNull); - }); - - group('builds a renderer class for a generic type', () { - late final String generatedContent; - - // Builders are fairly expensive (about 4 seconds per `testBuilder` call), - // so this [setUpAll] saves significant time over [setUp]. - setUpAll(() async { - await testMustachioBuilder(''' -class FooBase {} -class Foo extends FooBase { - String s1 = 'hello'; -} -class BarBase {} -class Bar extends BarBase {} -class Baz {} -''', libraryFrontMatter: ''' -@Renderer(#renderFoo, Context(), 'foo') -@Renderer(#renderBar, Context(), 'bar') -library foo; -import 'annotations.dart'; -'''); - generatedContent = await File(runtimeRenderersPath).readAsString(); - }); - - test('with a corresponding public API function', () async { - expect(generatedContent, - contains('String renderFoo(Foo context, Template template)')); - }); - - test('with a corresponding render function', () async { - expect( - generatedContent, - contains(''' -void _render_Foo( - Foo context, - List ast, - Template template, - StringSink sink, { -'''), - ); - }); - - test('with a generic supertype type argument', () async { - expect(generatedContent, - contains('class _Renderer_Foo extends RendererBase>')); - }); - - test( - 'with a property map which references the superclass with a type ' - 'variable', () { - expect(generatedContent, - contains('..._Renderer_FooBase.propertyMap()')); - }); - - test( - 'with a property map which references the superclass with an interface ' - 'type', () { - expect(generatedContent, - contains('..._Renderer_BarBase.propertyMap()')); - }); - }); - - test('builds a renderer for a generic, bounded type', () async { - await testMustachioBuilder(''' -class Foo { - String s1 = 'hello'; -} -class Bar {} -class Baz {} -'''); - var renderersLibrary = await resolveGeneratedLibrary2(runtimeRenderersPath); - - var fooRenderFunction = renderersLibrary.getTopLevelFunction('renderFoo')!; - expect(fooRenderFunction.typeParameters, hasLength(1)); - var fBound = fooRenderFunction.typeParameters.single.bound!; - expect(fBound.getDisplayString(), equals('num')); - - var fooRendererClass = renderersLibrary.getClass('_Renderer_Foo')!; - expect(fooRendererClass.typeParameters, hasLength(1)); - var cBound = fooRenderFunction.typeParameters.single.bound!; - expect(cBound.getDisplayString(), equals('num')); - }); - - group('does not generate a renderer', () { - late final LibraryElement renderersLibrary; - - setUpAll(() async { - await testMustachioBuilder(''' -abstract class Foo { - static Static get static1 => Bar(); - Private get _private1 => Bar(); - void set setter1(Setter s); - Method method1(Method m); - String s1 = 'hello'; -} -class Bar {} -class Baz {} -class Static {} -class Private {} -class Setter {} -class Method {} -'''); - renderersLibrary = await resolveGeneratedLibrary2(runtimeRenderersPath); - }); - - test('found in a static getter', () { - expect(renderersLibrary.getTopLevelFunction('_render_Static'), isNull); - expect(renderersLibrary.getClass('_Renderer_Static'), isNull); - }); - - test('found in a private getter', () { - expect(renderersLibrary.getTopLevelFunction('_render_Private'), isNull); - expect(renderersLibrary.getClass('_Renderer_Private'), isNull); - }); - - test('found in a setter', () { - expect(renderersLibrary.getTopLevelFunction('_render_Setter'), isNull); - expect(renderersLibrary.getClass('_Renderer_Setter'), isNull); - }); - - test('found in a method', () { - expect(renderersLibrary.getTopLevelFunction('_render_Method'), isNull); - expect(renderersLibrary.getClass('_Renderer_Method'), isNull); - }); - - test('for types not @visibleToMustache', () { - expect(renderersLibrary.getTopLevelFunction('_render_String'), isNull); - expect(renderersLibrary.getClass('_Renderer_String'), isNull); - }); - }); -} - -String get runtimeRenderersPath => - '${d.sandbox}/foo_package/lib/foo.runtime_renderers.dart'; diff --git a/test/mustachio/runtime_renderer_render_test.dart b/test/mustachio/runtime_renderer_render_test.dart deleted file mode 100644 index a70c8e758c..0000000000 --- a/test/mustachio/runtime_renderer_render_test.dart +++ /dev/null @@ -1,610 +0,0 @@ -// Copyright (c) 2021, 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. - -@TestOn('!windows') -library; - -import 'package:analyzer/file_system/file_system.dart'; -import 'package:analyzer/file_system/memory_file_system.dart'; -import 'package:analyzer_testing/utilities/extensions/resource_provider.dart'; -import 'package:dartdoc/src/mustachio/renderer_base.dart'; -import 'package:path/path.dart' as path show Context; -import 'package:test/test.dart'; - -import 'foo.dart'; -import 'foo.runtime_renderers.dart'; - -void main() { - late MemoryResourceProvider resourceProvider; - - late path.Context pathContext; - - File getFile(String path) => - resourceProvider.getFile(pathContext.canonicalize( - ResourceProviderExtension(resourceProvider).convertPath(path))); - - setUp(() { - resourceProvider = MemoryResourceProvider(); - pathContext = resourceProvider.pathContext; - }); - - test('property map contains all public getters', () { - var propertyMap = Renderer_Foo.propertyMap(); - expect(propertyMap.keys, hasLength(7)); - expect(propertyMap['b1'], isNotNull); - expect(propertyMap['s1'], isNotNull); - expect(propertyMap['l1'], isNotNull); - expect(propertyMap['baz'], isNotNull); - expect(propertyMap['p1'], isNotNull); - expect(propertyMap['length'], isNotNull); - expect(propertyMap['hashCode'], isNotNull); - }); - - test('property map contains valid bool Properties', () { - var propertyMap = Renderer_Foo.propertyMap(); - var b1 = propertyMap['b1']!; - expect(b1.getValue, isNotNull); - expect(b1.renderVariable, isNotNull); - expect(b1.getBool, isNotNull); - expect(b1.renderIterable, isNull); - expect(b1.isNullValue, isNotNull); - expect(b1.renderValue, isNull); - }); - - test('property map contains valid Iterable Properties', () { - var propertyMap = Renderer_Foo.propertyMap(); - var l1 = propertyMap['l1']!; - expect(l1.getValue, isNotNull); - expect(l1.renderVariable, isNotNull); - expect(l1.getBool, isNull); - expect(l1.renderIterable, isNotNull); - expect(l1.isNullValue, isNotNull); - expect(l1.renderValue, isNull); - }); - - test('property map contains valid non-bool, non-Iterable Properties', () { - var propertyMap = Renderer_Foo.propertyMap(); - var s1 = propertyMap['s1']!; - expect(s1.getValue, isNotNull); - expect(s1.renderVariable, isNotNull); - expect(s1.getBool, isNull); - expect(s1.renderIterable, isNull); - expect(s1.isNullValue, isNotNull); - expect(s1.renderValue, isNotNull); - }); - - test('Property returns a field value by name', () { - var propertyMap = Renderer_Foo.propertyMap(); - var foo = Foo()..s1 = 'hello'; - expect(propertyMap['s1']!.getValue(foo), equals('hello')); - }); - - test('Property returns a bool field value by name', () { - var propertyMap = Renderer_Foo.propertyMap(); - var foo = Foo()..b1 = true; - expect(propertyMap['b1']!.getBool!(foo), isTrue); - }); - - test('isNullValue returns true when a value is null', () { - var propertyMap = Renderer_Foo.propertyMap(); - var foo = Foo()..length = null; - expect(propertyMap['length']!.isNullValue(foo), isTrue); - }); - - test('isNullValue returns false when a value is not null', () { - var propertyMap = Renderer_Foo.propertyMap(); - var foo = Foo()..s1 = 'hello'; - expect(propertyMap['s1']!.isNullValue(foo), isFalse); - }); - - test('isNullValue returns false for a non-nullable field', () { - var propertyMap = Renderer_Foo.propertyMap(); - var foo = Foo()..b1 = true; - expect(propertyMap['b1']!.isNullValue(foo), isFalse); - }); - - test('Property returns false for a null bool field value', () { - var propertyMap = Renderer_Bar.propertyMap(); - var bar = Bar()..l1 = null; - expect(propertyMap['l1']!.getBool!(bar), isFalse); - }); - - test('Renderer renders a non-bool variable node, escaped', () async { - var fooTemplateFile = getFile('/project/foo.mustache') - ..writeAsStringSync('Text {{s1}}'); - var fooTemplate = await Template.parse(fooTemplateFile); - var foo = Foo()..s1 = '

hello

'; - expect(renderFoo(foo, fooTemplate), - equals('Text <p>hello</p>')); - }); - - test('Renderer renders a non-bool variable node, not escaped', () async { - var fooTemplateFile = getFile('/project/foo.mustache') - ..writeAsStringSync('Text {{{s1}}}'); - var fooTemplate = await Template.parse(fooTemplateFile); - var foo = Foo()..s1 = '

hello

'; - expect(renderFoo(foo, fooTemplate), equals('Text

hello

')); - }); - - test('Renderer renders a bool variable node', () async { - var fooTemplateFile = getFile('/project/foo.mustache') - ..writeAsStringSync('Text {{b1}}'); - var fooTemplate = await Template.parse(fooTemplateFile); - var foo = Foo()..b1 = true; - expect(renderFoo(foo, fooTemplate), equals('Text true')); - }); - - test('Renderer renders an Iterable variable node', () async { - var fooTemplateFile = getFile('/project/foo.mustache') - ..writeAsStringSync('Text {{l1}}'); - var fooTemplate = await Template.parse(fooTemplateFile); - var foo = Foo()..l1 = [1, 2, 3]; - expect(renderFoo(foo, fooTemplate), equals('Text [1, 2, 3]')); - }); - - test('Renderer renders a conditional section node', () async { - var fooTemplateFile = getFile('/project/foo.mustache') - ..writeAsStringSync('Text {{#b1}}Section{{/b1}}'); - var fooTemplate = await Template.parse(fooTemplateFile); - var foo = Foo()..b1 = true; - expect(renderFoo(foo, fooTemplate), equals('Text Section')); - }); - - test('Renderer renders a false conditional section node as blank', () async { - var fooTemplateFile = getFile('/project/foo.mustache') - ..writeAsStringSync('Text {{#b1}}Section{{/b1}}'); - var fooTemplate = await Template.parse(fooTemplateFile); - var foo = Foo()..b1 = false; - expect(renderFoo(foo, fooTemplate), equals('Text ')); - }); - - test('Renderer renders an inverted conditional section node as empty', - () async { - var fooTemplateFile = getFile('/project/foo.mustache') - ..writeAsStringSync('Text {{^b1}}Section{{/b1}}'); - var fooTemplate = await Template.parse(fooTemplateFile); - var foo = Foo()..b1 = true; - expect(renderFoo(foo, fooTemplate), equals('Text ')); - }); - - test('Renderer renders an inverted false conditional section node', () async { - var fooTemplateFile = getFile('/project/foo.mustache') - ..writeAsStringSync('Text {{^b1}}Section{{/b1}}'); - var fooTemplate = await Template.parse(fooTemplateFile); - var foo = Foo()..b1 = false; - expect(renderFoo(foo, fooTemplate), equals('Text Section')); - }); - - test('Renderer renders a repeated section node', () async { - var fooTemplateFile = getFile('/project/foo.mustache') - ..writeAsStringSync('Text {{#l1}}Num {{.}}, {{/l1}}'); - var fooTemplate = await Template.parse(fooTemplateFile); - var foo = Foo()..l1 = [1, 2, 3]; - expect(renderFoo(foo, fooTemplate), equals('Text Num 1, Num 2, Num 3, ')); - }); - - test('Renderer renders a repeated section node with a multi-name key', - () async { - var barTemplateFile = getFile('/project/bar.mustache') - ..writeAsStringSync('Text {{#foo.l1}}Num {{.}}, {{/foo.l1}}'); - var barTemplate = await Template.parse(barTemplateFile); - var bar = Bar()..foo = (Foo()..l1 = [1, 2, 3]); - expect(renderBar(bar, barTemplate), equals('Text Num 1, Num 2, Num 3, ')); - }); - - test('Renderer renders an empty repeated section node as blank', () async { - var fooTemplateFile = getFile('/project/foo.mustache') - ..writeAsStringSync('Text {{#l1}}Num {{.}}, {{/l1}}'); - var fooTemplate = await Template.parse(fooTemplateFile); - var foo = Foo()..l1 = []; - expect(renderFoo(foo, fooTemplate), equals('Text ')); - }); - - test('Renderer renders an empty inverted repeated section node', () async { - var fooTemplateFile = getFile('/project/foo.mustache') - ..writeAsStringSync('Text {{^l1}}Empty{{/l1}}'); - var fooTemplate = await Template.parse(fooTemplateFile); - var foo = Foo()..l1 = []; - expect(renderFoo(foo, fooTemplate), equals('Text Empty')); - }); - - test('Renderer renders an inverted repeated section node as blank', () async { - var fooTemplateFile = getFile('/project/foo.mustache') - ..writeAsStringSync('Text {{^l1}}Empty{{/l1}}'); - var fooTemplate = await Template.parse(fooTemplateFile); - var foo = Foo()..l1 = [1, 2, 3]; - expect(renderFoo(foo, fooTemplate), equals('Text ')); - }); - - test('Renderer renders a value section node', () async { - var barTemplateFile = getFile('/project/bar.mustache') - ..writeAsStringSync('Text {{#foo}}Foo: {{s1}}{{/foo}}'); - var barTemplate = await Template.parse(barTemplateFile); - var bar = Bar()..foo = (Foo()..s1 = 'hello'); - expect(renderBar(bar, barTemplate), equals('Text Foo: hello')); - }); - - test('Renderer renders a value section node keyed lower in the stack', - () async { - var barTemplateFile = getFile('/project/bar.mustache') - ..writeAsStringSync('Text {{#foo}}One {{#s2}}Two{{/s2}}{{/foo}}'); - var barTemplate = await Template.parse(barTemplateFile); - var bar = Bar() - ..foo = Foo() - ..s2 = 'hello'; - expect(renderBar(bar, barTemplate), equals('Text One Two')); - }); - - test('Renderer renders a null value section node as blank', () async { - var fooTemplateFile = getFile('/project/foo.mustache') - ..writeAsStringSync('Text {{#length}}"{{.}}" ({{length}}){{/length}}'); - var fooTemplate = await Template.parse(fooTemplateFile); - var foo = Foo()..length = null; - expect(renderFoo(foo, fooTemplate), equals('Text ')); - }); - - test('Renderer renders an inverted value section node as blank', () async { - var fooTemplateFile = getFile('/project/foo.mustache') - ..writeAsStringSync('Text {{^s1}}Section{{/s1}}'); - var fooTemplate = await Template.parse(fooTemplateFile); - var foo = Foo()..s1 = 'hello'; - expect(renderFoo(foo, fooTemplate), equals('Text ')); - }); - - test('Renderer renders an inverted null value section node', () async { - var fooTemplateFile = getFile('/project/foo.mustache') - ..writeAsStringSync('Text {{^length}}Section{{/length}}'); - var fooTemplate = await Template.parse(fooTemplateFile); - var foo = Foo()..length = null; - expect(renderFoo(foo, fooTemplate), equals('Text Section')); - }); - - test('Renderer resolves variable inside a value section', () async { - var fooTemplateFile = getFile('/project/foo.mustache') - ..writeAsStringSync('Text {{#foo}}{{s1}}{{/foo}}'); - var fooTemplate = await Template.parse(fooTemplateFile); - var bar = Bar()..foo = (Foo()..s1 = 'hello'); - expect(renderBar(bar, fooTemplate), equals('Text hello')); - }); - - test('Renderer resolves variable from outer context inside a value section', - () async { - var barTemplateFile = getFile('/project/foo.mustache') - ..writeAsStringSync('Text {{#foo}}{{s2}}{{/foo}}'); - var barTemplate = await Template.parse(barTemplateFile); - var bar = Bar() - ..foo = (Foo()..s1 = 'hello') - ..s2 = 'goodbye'; - expect(renderBar(bar, barTemplate), equals('Text goodbye')); - }); // - - test('Renderer resolves variable with key with multiple names', () async { - var barTemplateFile = getFile('/project/bar.mustache') - ..writeAsStringSync('Text {{foo.s1}}'); - var barTemplate = await Template.parse(barTemplateFile); - var bar = Bar() - ..foo = (Foo()..s1 = 'hello') - ..s2 = 'goodbye'; - expect(renderBar(bar, barTemplate), equals('Text hello')); - }); - - test('Renderer resolves variable with properties not in @Renderer', () async { - var fooTemplateFile = getFile('/project/foo.mustache') - ..writeAsStringSync('Text {{p1.p2.s}}'); - var fooTemplate = await Template.parse(fooTemplateFile); - var foo = Foo()..p1 = (Property1()..p2 = (Property2()..s = 'hello')); - expect(renderFoo(foo, fooTemplate), equals('Text hello')); - }); - - test('Renderer resolves variable with mixin properties not in @Renderer', - () async { - var fooTemplateFile = getFile('/project/foo.mustache') - ..writeAsStringSync('Text {{p1.p2.p3.s}}'); - var fooTemplate = await Template.parse(fooTemplateFile); - var foo = Foo() - ..p1 = (Property1()..p2 = (Property2()..p3 = (Property3()..s = 'hello'))); - expect(renderFoo(foo, fooTemplate), equals('Text hello')); - }); - - test('Renderer resolves outer variable with key with two names', () async { - var barTemplateFile = getFile('/project/bar.mustache') - ..writeAsStringSync('Text {{#foo}}{{foo.s1}}{{/foo}}'); - var barTemplate = await Template.parse(barTemplateFile); - var bar = Bar() - ..foo = (Foo()..s1 = 'hello') - ..s2 = 'goodbye'; - expect(renderBar(bar, barTemplate), equals('Text hello')); - }); - - test('Renderer resolves outer variable with key with three names', () async { - var bazTemplateFile = getFile('/project/baz.mustache') - ..writeAsStringSync('Text {{#bar}}{{bar.foo.s1}}{{/bar}}'); - var bazTemplate = await Template.parse(bazTemplateFile); - var baz = Baz()..bar = (Bar()..foo = (Foo()..s1 = 'hello')); - expect(renderBaz(baz, bazTemplate), equals('Text hello')); - }); - - test('Renderer resolves outer variable with key with more than three names', - () async { - var bazTemplateFile = getFile('/project/baz.mustache') - ..writeAsStringSync('Text {{#bar}}{{bar.foo.baz.bar.foo.s1}}{{/bar}}'); - var baz = Baz()..bar = (Bar()..foo = (Foo()..s1 = 'hello')); - var bazTemplate = await Template.parse(bazTemplateFile); - baz.bar!.foo!.baz = baz; - expect(renderBaz(baz, bazTemplate), equals('Text hello')); - }); - - test('Renderer renders a partial in the same directory', () async { - var barTemplateFile = getFile('/project/bar.mustache') - ..writeAsStringSync('Text {{#foo}}{{>foo.mustache}}{{/foo}}'); - getFile('/project/foo.mustache').writeAsStringSync('Partial {{s1}}'); - var barTemplate = await Template.parse(barTemplateFile); - var bar = Bar()..foo = (Foo()..s1 = 'hello'); - expect(renderBar(bar, barTemplate), equals('Text Partial hello')); - }); - - test('Renderer renders a partial in a different directory', () async { - var barTemplateFile = getFile('/project/src/bar.mustache') - ..writeAsStringSync('Text {{#foo}}{{>../foo.mustache}}{{/foo}}'); - getFile('/project/foo.mustache').writeAsStringSync('Partial {{s1}}'); - var barTemplate = await Template.parse(barTemplateFile); - var bar = Bar()..foo = (Foo()..s1 = 'hello'); - expect(renderBar(bar, barTemplate), equals('Text Partial hello')); - }); - - test('Renderer renders a partial in an absolute directory', () async { - var fooTemplateFile = getFile('/project/foo.mustache'); - fooTemplateFile.writeAsStringSync('Partial {{s1}}'); - var barTemplateFile = getFile('/project/src/bar.mustache') - ..writeAsStringSync('Text {{#foo}}{{>${fooTemplateFile.path}}}{{/foo}}'); - var barTemplate = await Template.parse(barTemplateFile); - var bar = Bar()..foo = (Foo()..s1 = 'hello'); - expect(renderBar(bar, barTemplate), equals('Text Partial hello')); - }); - - test('Renderer renders a partial with context chain', () async { - var barTemplateFile = getFile('/project/bar.mustache') - ..writeAsStringSync('Text {{#foo}}{{>foo.mustache}}{{/foo}}'); - getFile('/project/foo.mustache').writeAsStringSync('Partial {{s2}}'); - var barTemplate = await Template.parse(barTemplateFile); - var bar = Bar() - ..foo = (Foo()..s1 = 'hello') - ..s2 = 'goodbye'; - expect(renderBar(bar, barTemplate), equals('Text Partial goodbye')); - }); - - test('Renderer renders a partial which refers to other partials', () async { - var barTemplateFile = getFile('/project/bar.mustache') - ..writeAsStringSync('Text, {{#foo}}{{>foo.mustache}}{{/foo}}'); - getFile('/project/foo.mustache') - .writeAsStringSync('p1, {{#l1}}{{>foo_l1.mustache}}{{/l1}}'); - getFile('/project/foo_l1.mustache').writeAsStringSync('p2 {{.}}, '); - var barTemplate = await Template.parse(barTemplateFile); - var bar = Bar() - ..foo = (Foo() - ..s1 = 'hello' - ..l1 = [1, 2, 3]); - expect(renderBar(bar, barTemplate), equals('Text, p1, p2 1, p2 2, p2 3, ')); - }); - - test('Renderer renders a partial with a heterogeneous context chain', - () async { - var barTemplateFile = getFile('/project/bar.mustache') - ..writeAsStringSync('Line 1 {{#foo}}{{>baz.mustache}}{{/foo}}\n' - 'Line 2 {{>baz.mustache}}'); - getFile('/project/baz.mustache') - .writeAsStringSync('Partial {{#l1}}Section {{.}}{{/l1}}'); - var barTemplate = await Template.parse(barTemplateFile); - var baz = Baz(); - var bar = Bar() - ..foo = (Foo() - ..baz = baz - ..l1 = [1, 2, 3]) - ..baz = baz - ..l1 = true; - // This is a wild consequence of Mustache's dynamic rendering concepts. - // The `baz.mustache` partial refers to a variable, "l1", which does not - // exist on the Baz class, so variable resolution walks up the context - // chain. In the first line, this finds `Foo.l1`, and renders a repeated - // section for the `l1` List. In the second line, this finds `Bar.l1`, and - // renders the conditional section, which doesn't push a context, so - // `{{.}}` renders `Bar.toString()`. - expect( - renderBar(bar, barTemplate), - equals('Line 1 Partial Section 1Section 2Section 3\n' - 'Line 2 Partial Section Instance of 'Bar'')); - }); - - test('Renderer renders a partial using a custom partial renderer', () async { - Future partialResolver(String path) async { - var partialPath = pathContext.isAbsolute(path) - ? '_$path.mustache' - : pathContext.join('/project', '_$path.mustache'); - return getFile(partialPath); - } - - var barTemplateFile = getFile('/project/bar.mustache') - ..writeAsStringSync('Text {{#foo}}{{>foo}}{{/foo}}'); - getFile('/project/_foo.mustache').writeAsStringSync('Partial {{s1}}'); - var barTemplate = - await Template.parse(barTemplateFile, partialResolver: partialResolver); - var bar = Bar()..foo = (Foo()..s1 = 'hello'); - - expect(renderBar(bar, barTemplate), equals('Text Partial hello')); - }); - - test('Parser removes whitespace preceding a Section tag on its own line', - () async { - var fooTemplateFile = getFile('/project/foo.mustache') - ..writeAsStringSync(''' -
    - {{#l1}} -
  1. Num {{.}}
  2. - {{/l1}} -
-'''); - var fooTemplate = await Template.parse(fooTemplateFile); - var foo = Foo()..l1 = [1, 2, 3]; - expect(renderFoo(foo, fooTemplate), equals(''' -
    -
  1. Num 1
  2. -
  3. Num 2
  4. -
  5. Num 3
  6. -
-''')); - }); - - test('Parser does not remove whitespace preceding a non-Section tag', - () async { - var fooTemplateFile = getFile('/project/foo.mustache') - ..writeAsStringSync(''' -Hello -{{ #b1 }} -{{ s1 }} -{{ /b1 }} -'''); - var fooTemplate = await Template.parse(fooTemplateFile); - var foo = Foo() - ..b1 = true - ..s1 = 'World'; - expect(renderFoo(foo, fooTemplate), equals(''' -Hello -World -''')); - }); - - test('Renderer throws when it cannot resolve a variable key', () async { - var fooTemplateFile = getFile('/project/foo.mustache') - ..writeAsStringSync('Text {{s2}}'); - var fooTemplate = await Template.parse(fooTemplateFile); - var foo = Foo(); - expect( - () => renderFoo(foo, fooTemplate), - throwsA(const TypeMatcher() - .having((e) => e.message, 'message', contains(''' -line 1, column 8 of ${fooTemplateFile.path}: Failed to resolve 's2' as a property on any types in the context chain: Foo - ╷ -1 │ Text {{s2}} - │ ^^ -''')))); - }); - - test('Renderer throws when it cannot resolve a section key', () async { - var fooTemplateFile = getFile('/project/foo.mustache') - ..writeAsStringSync('Text {{#s2}}Section{{/s2}}'); - var fooTemplate = await Template.parse(fooTemplateFile); - var foo = Foo(); - expect( - () => renderFoo(foo, fooTemplate), - throwsA(const TypeMatcher() - .having((e) => e.message, 'message', contains(''' -line 1, column 9 of ${fooTemplateFile.path}: Failed to resolve 's2' as a property on any types in the current context - ╷ -1 │ Text {{#s2}}Section{{/s2}} - │ ^^ -''')))); - }); - - test('Renderer throws when it cannot resolve a multi-name variable key', - () async { - var barTemplateFile = getFile('/project/bar.mustache') - ..writeAsStringSync('Text {{foo.x}}'); - var barTemplate = await Template.parse(barTemplateFile); - var bar = Bar()..foo = Foo(); - expect( - () => renderBar(bar, barTemplate), - throwsA(const TypeMatcher().having( - (e) => e.message, - 'message', - contains("Failed to resolve 'x' on Foo while resolving [x] as a " - 'property chain on any types in the context chain: Bar, after ' - "first resolving 'foo' to a property on Bar")))); - }); - - test('Renderer throws when it cannot resolve a multi-name section key', - () async { - var barTemplateFile = getFile('/project/bar.mustache') - ..writeAsStringSync('Text {{#foo.x}}Section{{/foo.x}}'); - var barTemplate = await Template.parse(barTemplateFile); - var bar = Bar()..foo = Foo(); - expect( - () => renderBar(bar, barTemplate), - throwsA(const TypeMatcher().having( - (e) => e.message, - 'message', - contains("Failed to resolve 'x' as a property on any types in the " - 'current context')))); - }); - - test('Renderer throws when it cannot resolve a key with a SimpleRenderer', - () async { - var fooTemplateFile = getFile('/project/foo.mustache') - ..writeAsStringSync('Text {{s1.length}}'); - var fooTemplate = await Template.parse(fooTemplateFile); - var foo = Foo(); - expect( - () => renderFoo(foo, fooTemplate), - throwsA(const TypeMatcher().having( - (e) => e.message, - 'message', - contains('Failed to resolve [length] property chain on String')))); - }); - - test('Renderer throws when a SimpleRenderer variable key shadows another key', - () async { - var fooTemplateFile = getFile('/project/foo.mustache') - ..writeAsStringSync('Text {{#s1}} {{length}} {{/s1}}'); - var fooTemplate = await Template.parse(fooTemplateFile); - var foo = Foo()..s1 = 'String'; - expect( - () => renderFoo(foo, fooTemplate), - throwsA(const TypeMatcher().having( - (e) => e.message, - 'message', - contains('[length] is a getter on String, which is not visible to ' - 'Mustache.')))); - }); - - test('Renderer throws when a SimpleRenderer section key shadows another key', - () async { - var fooTemplateFile = getFile('/project/foo.mustache') - ..writeAsStringSync('Text {{#s1}} {{#length}}Inner{{/length}} {{/s1}}'); - var fooTemplate = await Template.parse(fooTemplateFile); - var foo = Foo()..s1 = 'String'; - expect( - () => renderFoo(foo, fooTemplate), - throwsA(const TypeMatcher().having( - (e) => e.message, - 'message', - contains('[length] is a getter on String, which is not visible to ' - 'Mustache.')))); - }); - - test('Template parser throws when it cannot read a template', () async { - var barTemplateFile = getFile('/project/src/bar.mustache'); - expect( - () async => await Template.parse(barTemplateFile), - throwsA(const TypeMatcher() - .having((e) => e.message, 'message', contains('does not exist.')))); - }); - - test('Template parser throws when it cannot read a partial', () async { - var barTemplateFile = getFile('/project/src/bar.mustache') - ..writeAsStringSync('Text {{#foo}}{{>missing.mustache}}{{/foo}}'); - expect( - () async => await Template.parse(barTemplateFile), - throwsA(const TypeMatcher().having( - (e) => e.message, - 'message', - allOf( - contains(''' -line 1, column 14 of ${barTemplateFile.path}: FileSystemException'''), - contains('''does not exist.'''), - contains('''when reading partial: - ╷ -1 │ Text {{#foo}}{{>missing.mustache}}{{/foo}} - │ ^^^^^^^^^^^^^^^^^^^^^ -'''))))); - }); -} diff --git a/tool/mustachio/builder.dart b/tool/mustachio/builder.dart index 96c87eb0c3..7427ddc917 100644 --- a/tool/mustachio/builder.dart +++ b/tool/mustachio/builder.dart @@ -14,20 +14,17 @@ import 'package:dartdoc/src/mustachio/annotations.dart'; import 'package:path/path.dart' as path; import 'codegen_aot_compiler.dart'; -import 'codegen_runtime_renderer.dart'; void main() async { await build(path.join('lib', 'src', 'generator', 'templates.dart')); await build( path.join('test', 'mustachio', 'foo.dart'), - rendererClassesArePublic: true, ); } Future build( String sourcePath, { String? root, - bool rendererClassesArePublic = false, }) async { root ??= Directory.current.path; var contextCollection = AnalysisContextCollectionImpl( @@ -55,17 +52,7 @@ Future build( rendererSpecs.add(_buildRendererSpec(renderer)); } - var runtimeRenderersContents = buildRuntimeRenderers( - rendererSpecs, - Uri.parse(sourcePath), - typeProvider, - typeSystem, - rendererClassesArePublic: rendererClassesArePublic, - ); var basePath = path.withoutExtension(sourcePath); - await File(path.join(root, '$basePath.runtime_renderers.dart')) - .writeAsString(runtimeRenderersContents); - var aotRenderersContents = await compileTemplatesToRenderers( rendererSpecs, typeProvider, diff --git a/tool/mustachio/codegen_runtime_renderer.dart b/tool/mustachio/codegen_runtime_renderer.dart deleted file mode 100644 index 1957bfd2af..0000000000 --- a/tool/mustachio/codegen_runtime_renderer.dart +++ /dev/null @@ -1,729 +0,0 @@ -// Copyright (c) 2020, 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. - -/// @docImport 'package:dartdoc/src/mustachio/renderer_base.dart'; -library; - -import 'dart:collection'; - -import 'package:analyzer/dart/element/element.dart'; -import 'package:analyzer/dart/element/nullability_suffix.dart'; -import 'package:analyzer/dart/element/type.dart'; -import 'package:analyzer/dart/element/type_provider.dart'; -import 'package:analyzer/dart/element/type_system.dart'; -import 'package:dart_style/dart_style.dart'; -import 'package:dartdoc/src/mustachio/annotations.dart'; -import 'package:dartdoc/src/type_utils.dart'; -import 'package:path/path.dart' as path; - -import 'utilities.dart'; - -/// Builds [specs] into a Dart library containing runtime renderers. -String buildRuntimeRenderers(Set specs, Uri sourceUri, - TypeProvider typeProvider, TypeSystem typeSystem, - {bool rendererClassesArePublic = false}) { - var visibleElements = specs - .map((spec) => spec.visibleTypes) - .reduce((value, element) => value.union(element)) - .map((type) => type.documentableElement2!) - .toSet(); - var raw = RuntimeRenderersBuilder( - sourceUri, typeProvider, typeSystem, visibleElements, - rendererClassesArePublic: rendererClassesArePublic) - ._buildTemplateRenderers(specs); - return DartFormatter(languageVersion: DartFormatter.latestLanguageVersion) - .format(raw); -} - -/// This class builds runtime Mustache renderers from a set of [RendererSpec]s. -class RuntimeRenderersBuilder { - static const _contextTypeVariable = 'CT_'; - - final _buffer = StringBuffer(); - - /// A queue of types to process, in order to find all types for which we need - /// to build renderers. - final _typesToProcess = Queue<_RendererInfo>(); - - /// Maps a type to the name of the render function which can render that type - /// as a context type. - final _typeToRenderFunctionName = {}; - - /// Maps a type to the name of the renderer class which can render that type - /// as a context type. - final _typeToRendererClassName = {}; - - final Uri _sourceUri; - - final TypeProvider _typeProvider; - final TypeSystem _typeSystem; - - final Set _allVisibleElements; - - /// Whether renderer classes are public. This should only be true for testing. - final bool _rendererClassesArePublic; - - /// A mapping of getter names on classes which are not "visible." - final Map> _invisibleGetters = {}; - - RuntimeRenderersBuilder(this._sourceUri, this._typeProvider, this._typeSystem, - this._allVisibleElements, - {bool rendererClassesArePublic = false}) - : _rendererClassesArePublic = rendererClassesArePublic; - - String _buildTemplateRenderers(Set specs) { - // TODO(srawlins): There are some private renderer functions that are - // unused. Figure out if we can detect these statically, and then not - // generate them. - // TODO(srawlins): To really get the correct list of imports, we need to use - // the code_builder package. - _buffer.writeln(''' -// GENERATED CODE. DO NOT EDIT. -// -// To change the contents of this library, make changes to the builder source -// files in the tool/mustachio/ directory. - -// ignore_for_file: camel_case_types, deprecated_member_use_from_same_package -// ignore_for_file: non_constant_identifier_names, unnecessary_string_escapes -// ignore_for_file: unused_import -// ignore_for_file: use_super_parameters - -import 'package:dartdoc/src/element_type.dart'; -import 'package:dartdoc/src/generator/template_data.dart'; -import 'package:dartdoc/src/model/annotation.dart'; -import 'package:dartdoc/src/model/attribute.dart'; -import 'package:dartdoc/src/model/comment_referable.dart'; -import 'package:dartdoc/src/model/model.dart'; -import 'package:dartdoc/src/model/tag.dart'; -import 'package:dartdoc/src/mustachio/parser.dart'; -import 'package:dartdoc/src/mustachio/renderer_base.dart'; -import 'package:dartdoc/src/warnings.dart'; -import '${path.basename(_sourceUri.path)}'; -'''); - - specs.forEach(_addTypesForRendererSpec); - var builtRenderers = {}; - var elementsToProcess = _typesToProcess.toList() - ..sort((a, b) => a._typeName.compareTo(b._typeName)); - - for (var info in elementsToProcess) { - if (info.isFullRenderer) { - var buildOnlyPublicFunction = - builtRenderers.contains(info._contextClass); - _buildRenderer(info, buildOnlyPublicFunction: buildOnlyPublicFunction); - builtRenderers.add(info._contextClass); - } - } - - _writeInvisibleGetters(); - - return _buffer.toString(); - } - - /// Adds type specified in [spec] to the [_typesToProcess] queue, as well as - /// all supertypes, and the types of all valid getters, recursively. - void _addTypesForRendererSpec(RendererSpec spec) { - var element = spec.contextElement; - var rendererInfo = _RendererInfo(element, - public: _rendererClassesArePublic, publicApiFunctionName: spec.name); - _typesToProcess.add(rendererInfo); - _typeToRenderFunctionName[element] = rendererInfo._renderFunctionName; - _typeToRendererClassName[element] = rendererInfo._rendererClassName; - - spec.contextType.getters.forEach(_addPropertyToProcess); - - for (var mixin in spec.contextElement.mixins) { - _addTypeToProcess(mixin.element, - isFullRenderer: true, includeRenderFunction: false); - } - var superclass = spec.contextElement.supertype; - - while (superclass != null) { - // Any type specified with a renderer spec (`@Renderer`) is full. - _addTypeToProcess(superclass.element, - isFullRenderer: true, includeRenderFunction: false); - for (var mixin in superclass.element.mixins) { - _addTypeToProcess(mixin.element, - isFullRenderer: true, includeRenderFunction: false); - } - superclass.getters.forEach(_addPropertyToProcess); - superclass = superclass.element.supertype; - } - } - - /// Adds the return type of [property] to the [_typesToProcess] queue, if it - /// is a "valid" property. - /// - /// A "valid" property is a public, instance getter with an interface type - /// return type. Getters annotated with `@internal`, `@protected`, - /// `@visibleForOverriding`, or `@visibleForTesting` are not valid. - void _addPropertyToProcess(GetterElement property) { - if (property.shouldBeOmitted) return; - - var type = _relevantTypeFrom(property.type.returnType); - if (type == null) return; - - var types = _typesToProcess.where((rs) => rs._contextClass == type.element); - if (types.isNotEmpty) { - assert(types.length == 1); - if (types.first.includeRenderFunction) { - // [type] has already been added to [_typesToProcess], and all of its - // supertypes and properties have been visited. - return; - } - } - - _addTypeHierarchyToProcess( - type, - isFullRenderer: _isVisibleToMustache(type.element), - // If [type.element] is not visible to mustache, then [renderSimple] will - // be used, not [type.element]'s render function. - includeRenderFunction: _isVisibleToMustache(type.element), - ); - } - - /// Returns an [InterfaceType] which may be relevant for generating a - /// renderer, given a [type]: - /// - /// * If [type] is assignable to [Iterable], returns the relevant type from - /// `T`. - /// * If [type] is a [TypeParameterType] with a bound other than `dynamic`, - /// returns the relevant type from the bound. - /// * If [type] is an [InterfaceType] (not assignable to [Iterable]), returns - /// [type]. - /// * Otherwise, returns `null`, indicating there is no relevant type. - InterfaceType? _relevantTypeFrom(DartType type) { - if (type is InterfaceType) { - if (_typeSystem.isAssignableTo(type, _typeProvider.iterableDynamicType)) { - var iterableElement = _typeProvider.iterableElement; - var iterableType = type.asInstanceOf(iterableElement)!; - var innerType = iterableType.typeArguments.first; - - return _relevantTypeFrom(innerType); - } else { - return type; - } - } else if (type is TypeParameterType) { - var bound = type.bound; - if (bound is DynamicType) { - // Don't add functions for a generic type, for example - // `List.first` has type `E`, which we don't have a specific - // renderer for. - // TODO(srawlins): Find a solution for this. We can track all of the - // concrete types substituted for `E` for example. - return null; - } else { - return _relevantTypeFrom(bound); - } - } else { - // We can do nothing with function types, record types, etc. - return null; - } - } - - /// Adds [type] to the queue of types to process, as well as related types: - /// - /// * its supertypes (if [type] is not a mixin), - /// * mixed in types, - /// * superclass constraints (if [type] a mixin), - /// * types of relevant properties (recursively). - void _addTypeHierarchyToProcess( - InterfaceType? type, { - required bool isFullRenderer, - required bool includeRenderFunction, - }) { - while (type != null) { - _addTypeToProcess( - type.element, - isFullRenderer: isFullRenderer, - includeRenderFunction: includeRenderFunction, - ); - if (isFullRenderer) { - for (var getter in type.getters) { - var getterType = _relevantTypeFrom(getter.type.returnType); - if (getterType == null) continue; - _addPropertyToProcess(getter); - } - } - for (var mixin in type.element.mixins) { - _addTypeHierarchyToProcess( - mixin, - isFullRenderer: isFullRenderer, - includeRenderFunction: false, - ); - } - final typeElement = type.element; - if (typeElement is MixinElement) { - for (var constraint in typeElement.superclassConstraints) { - _addTypeToProcess( - constraint.element, - isFullRenderer: isFullRenderer, - includeRenderFunction: false, - ); - } - break; - } else { - type = type.superclass; - // Render functions are not needed for superclasses. - includeRenderFunction = false; - } - } - } - - /// Adds [element] to the [_typesToProcess] queue, if it is not already there. - void _addTypeToProcess( - InterfaceElement element, { - required bool isFullRenderer, - required bool includeRenderFunction, - }) { - var types = _typesToProcess.where((rs) => rs._contextClass == element); - if (types.isEmpty) { - var rendererInfo = _RendererInfo( - element, - isFullRenderer: isFullRenderer, - includeRenderFunction: includeRenderFunction, - public: _rendererClassesArePublic, - ); - _typesToProcess.add(rendererInfo); - if (isFullRenderer) { - if (includeRenderFunction) { - _typeToRenderFunctionName[element] = rendererInfo._renderFunctionName; - } - _typeToRendererClassName[element] = rendererInfo._rendererClassName; - } - } else { - for (var typeToProcess in types) { - // "Upgrade" the renderer info to include a render function if the - // current one doesn't. - if (includeRenderFunction && !typeToProcess.includeRenderFunction) { - typeToProcess.includeRenderFunction = true; - } - // "Upgrade" the renderer info to "full" if the current one isn't. - if (isFullRenderer && !typeToProcess.isFullRenderer) { - typeToProcess.isFullRenderer = true; - } - - // Log the names if we've perhaps just "upgraded" the renderer info. - if (isFullRenderer) { - if (typeToProcess.includeRenderFunction) { - _typeToRenderFunctionName[element] = - typeToProcess._renderFunctionName; - } - _typeToRendererClassName[element] = typeToProcess._rendererClassName; - } - } - } - } - - /// Returns whether [element] or any of its supertypes are "visible" to - /// Mustache. - bool _isVisibleToMustache(InterfaceElement element) { - if (_allVisibleElements.contains(element)) { - return true; - } - var supertype = element.supertype; - if (supertype == null) { - return false; - } - return _isVisibleToMustache(supertype.element); - } - - /// Builds render functions and the renderer class for [renderer]. - /// - /// The function and the class are each written as Dart code to [_buffer]. - /// - /// If [renderer] also specifies a `publicApiFunctionName`, then a public API - /// function (which renders a context object using a template file at a path, - /// rather than an AST) is also written. - /// - /// If [buildOnlyPublicFunction] is true, then the private render function and - /// renderer classes are not built, having been built for a different - /// [_RendererInfo]. - void _buildRenderer(_RendererInfo renderer, - {required bool buildOnlyPublicFunction}) { - var typeName = renderer._typeName; - var typeWithVariables = '$typeName${renderer._typeVariablesString}'; - - if (renderer.publicApiFunctionName != null) { - _buffer.writeln(''' -String ${renderer.publicApiFunctionName}${renderer._typeParametersString}( - $typeWithVariables context, Template template) { - var buffer = StringBuffer(); - ${renderer._renderFunctionName}(context, template.ast, template, buffer); - return buffer.toString(); -} -'''); - } - - if (buildOnlyPublicFunction) return; - - // Write out the render function. - if (renderer.includeRenderFunction) { - _buffer.writeln(''' -void ${renderer._renderFunctionName}${renderer._typeParametersString}( - $typeWithVariables context, List ast, - Template template, StringSink sink, - {RendererBase? parent}) { - var renderer = ${renderer._rendererClassName}(context, parent, template, sink); - renderer.renderBlock(ast); -} -'''); - } - - // Write out the renderer class. - _buffer.write(''' -class ${renderer._rendererClassName}${renderer._typeParametersString} - extends RendererBase<$typeWithVariables> { -'''); - _writePropertyMap(renderer); - // Write out the constructor. - _buffer.writeln(''' - ${renderer._rendererClassName}( - $typeWithVariables context, RendererBase? parent, - Template template, StringSink sink) - : super(context, parent, template, sink); -'''); - var propertyMapTypeArguments = - renderer._typeArgumentsStringWith(typeWithVariables); - var propertyMapName = 'propertyMap$propertyMapTypeArguments'; - // Write out `getProperty`. - _buffer.writeln(''' - @override - Property<$typeWithVariables>? getProperty(String key) { - if ($propertyMapName().containsKey(key)) { - return $propertyMapName()[key]; - } else { - return null; - } - } -'''); - // Close the class. - _buffer.writeln('}'); - } - - /// Write out the property map for [renderer]. - /// - /// For each valid property of the context type of [renderer], this maps the - /// property's name to the property's [Property] object. - void _writePropertyMap(_RendererInfo renderer) { - var contextClass = renderer._contextClass; - var generics = renderer._typeParametersStringWith( - '$_contextTypeVariable extends ${renderer._typeName}'); - // It would be simplest if [propertyMap] were just a getter, but it must be - // parameterized on `CT_`, so it is a static method. Due to the possibly - // extensive amount of spreading (supertypes, mixins) and object - // construction (lots of [Property] objects with function literals), we - // cache the construction of each one, keyed to the `CT_` value. Each cache - // should not have many entries, as there are probably not many values for - // each type variable, `CT_`, typically one. - _buffer.writeln(''' - static final Map _propertyMapCache = {}; - static Map> propertyMap$generics() => - _propertyMapCache.putIfAbsent($_contextTypeVariable, () => {'''); - var supertype = contextClass.supertype; - if (supertype != null) { - var superclassRendererName = _typeToRendererClassName[supertype.element]; - if (superclassRendererName != null) { - var superMapName = '$superclassRendererName.propertyMap'; - var generics = asGenerics([ - ...supertype.typeArguments.map((e) => e.getDisplayString()), - _contextTypeVariable - ]); - _buffer.writeln(' ...$superMapName$generics(),'); - } - } - // Mixins are spread into the property map _after_ the super class, so - // that they override any values which need to be overridden. Superclass - // and mixins override from left to right, as do spreads: - // `class C extends E with M, N` first takes members from N, then M, then - // E. Similarly, `{...a, ...b, ...c}` will feature elements from `c` which - // override `b` and `a`. - for (var mixin in contextClass.mixins) { - var mixinRendererName = _typeToRendererClassName[mixin.element]; - if (mixinRendererName != null) { - var mixinMapName = '$mixinRendererName.propertyMap'; - var generics = asGenerics([ - ...mixin.typeArguments.map((e) => e.getDisplayString()), - _contextTypeVariable - ]); - _buffer.writeln(' ...$mixinMapName$generics(),'); - } - } - for (var property in [...contextClass.getters] - ..sort((a, b) => a.name!.compareTo(b.name!))) { - var returnType = property.type.returnType; - if (returnType is InterfaceType) { - _writeProperty(renderer, property, returnType); - } else if (returnType is TypeParameterType && - returnType.bound is! DynamicType) { - _writeProperty(renderer, property, returnType.bound as InterfaceType); - } - } - _buffer.writeln('}) as Map>;'); - _buffer.writeln(''); - } - - void _writeProperty(_RendererInfo renderer, GetterElement property, - InterfaceType getterType) { - if (getterType == _typeProvider.typeType) { - // The [Type] type is the first case of a type we don't want to traverse. - return; - } - - if (property.shouldBeOmitted) return; - - _buffer.writeln("'${property.name}': Property("); - _buffer - .writeln('getValue: ($_contextTypeVariable c) => c.${property.name},'); - - var getterName = property.name; - var getterTypeString = - _typeSystem.promoteToNonNull(getterType).getDisplayString(); - // Only add a `getProperties` function, which returns the property map for - // [getterType], if [getterType] is a renderable type. - if (_typeToRendererClassName.containsKey(getterType.element)) { - var rendererClassName = _typeToRendererClassName[getterType.element]; - _buffer.writeln(''' -renderVariable: - ($_contextTypeVariable c, - Property<$_contextTypeVariable> self, - List remainingNames) { - if (remainingNames.isEmpty) { - return self.getValue(c).toString(); - } - var name = remainingNames.first; - var nextProperty = $rendererClassName.propertyMap().getValue(name); - return nextProperty.renderVariable( - self.getValue(c) as $getterTypeString, - nextProperty, [...remainingNames.skip(1)]); -}, -'''); - } else { - // [getterType] does not have a full renderer, so we just render a simple - // variable, with no opportunity to access fields on [getterType]. - - _buffer.writeln(''' -renderVariable: - ($_contextTypeVariable c, Property self, List remainingNames) => - self.renderSimpleVariable(c, remainingNames, '$getterTypeString'), -'''); - } - - if (getterType.isDartCoreBool) { - _buffer.write( - 'getBool: ($_contextTypeVariable c) => c.$getterName', - ); - if (getterType.nullabilitySuffix != NullabilitySuffix.none) { - _buffer.writeln(' == true,'); - } else { - _buffer.writeln(','); - } - } else if (_typeSystem.isAssignableTo( - getterType, _typeProvider.iterableDynamicType)) { - var iterableElement = _typeProvider.iterableElement; - var iterableType = getterType.asInstanceOf(iterableElement); - // Not sure why [iterableType] would be null... unresolved type? - if (iterableType != null) { - var innerType = iterableType.typeArguments.first; - // Don't add Iterable functions for a generic type, for example - // `List.reversed` has inner type `E`, which we don't have a specific - // renderer for. - // TODO(srawlins): Find a solution for this. We can track all of the - // concrete types substituted for `E` for example. - if (innerType is! TypeParameterType) { - var innerTypeElement = innerType.documentableElement2; - var renderFunctionName = _typeToRenderFunctionName[innerTypeElement]; - String renderCall; - if (renderFunctionName == null) { - var typeName = innerTypeElement!.name!; - if (innerType is InterfaceType) { - _invisibleGetters.putIfAbsent( - typeName, () => innerType.element.allAccessorNames); - } - renderCall = 'renderSimple(e, ast, r.template, sink, parent: r, ' - "getters: _invisibleGetters['$typeName']!)"; - } else { - var bang = _typeSystem.isPotentiallyNullable(innerType) ? '!' : ''; - renderCall = - '$renderFunctionName(e$bang, ast, r.template, sink, parent: r)'; - } - _buffer.writeln(''' -renderIterable: - ($_contextTypeVariable c, RendererBase<$_contextTypeVariable> r, - List ast, StringSink sink) { - return c.$getterName.map((e) => $renderCall); -}, -'''); - } - } - } else { - // Don't add Iterable functions for a generic type, for example - // `List.first` has type `E`, which we don't have a specific - // renderer for. - // TODO(srawlins): Find a solution for this. We can track all of the - // concrete types substituted for `E` for example. - if (getterName is! TypeParameterType) { - var renderFunctionName = _typeToRenderFunctionName[getterType.element]; - String renderCall; - if (renderFunctionName == null) { - var typeName = getterType.element.name!; - _invisibleGetters.putIfAbsent( - typeName, () => getterType.element.allAccessorNames); - renderCall = - 'renderSimple(c.$getterName, ast, r.template, sink, parent: r, ' - "getters: _invisibleGetters['$typeName']!)"; - } else { - var bang = _typeSystem.isPotentiallyNullable(getterType) ? '!' : ''; - renderCall = - '$renderFunctionName(c.$getterName$bang, ast, r.template, sink, parent: r)'; - } - var nullValueGetter = - getterType.nullabilitySuffix == NullabilitySuffix.none - ? 'false' - : 'c.$getterName == null'; - _buffer.writeln(''' -isNullValue: ($_contextTypeVariable c) => $nullValueGetter, - -renderValue: - ($_contextTypeVariable c, RendererBase<$_contextTypeVariable> r, - List ast, StringSink sink) { - $renderCall; -}, -'''); - } - } - _buffer.writeln('),'); - } - - /// Writes the mapping of invisible getters, used to report simple renderer - /// errors. - void _writeInvisibleGetters() { - _buffer.write('const _invisibleGetters = {'); - for (var class_ in _invisibleGetters.keys.toList()..sort()) { - _buffer.write("'$class_':"); - var getters = _invisibleGetters[class_]!.toList()..sort(); - _buffer.write('{${getters.map((e) => "'$e'").join(', ')}},'); - } - _buffer.write('};'); - } -} - -/// A container with the information needed to distinguish one -/// renderer-to-be-built from another. -/// -/// This can be used when building a set of renderers to build (both the render -/// functions and the renderer class), and also to refer from one renderer to -/// another. -class _RendererInfo { - final InterfaceElement _contextClass; - - /// The name of the top level render function. - /// - /// This function is public when specified in a @Renderer annotation, and - /// private otherwise. - final String _renderFunctionName; - - /// Whether the renderer should be a full renderer. - /// - /// If a render spec is not specified with @Renderer, then a class needs to be - /// annotated with @visibleToRender in order to get a full renderer. - /// Otherwise, the [SimpleRenderer] will be used. - /// - /// It may be initially determined that we only need an abbreviated, then - /// later determined that we need a full renderer, so this field is not final. - bool isFullRenderer; - - bool includeRenderFunction; - - /// The public API function name specified with @Renderer, or null. - String? publicApiFunctionName; - - factory _RendererInfo( - InterfaceElement contextClass, { - bool public = false, - bool isFullRenderer = true, - bool includeRenderFunction = true, - String? publicApiFunctionName, - }) { - var typeBaseName = contextClass.name; - var renderFunctionName = '_render_$typeBaseName'; - var rendererClassName = - public ? 'Renderer_$typeBaseName' : '_Renderer_$typeBaseName'; - - return _RendererInfo._( - contextClass, - renderFunctionName, - rendererClassName, - isFullRenderer: isFullRenderer, - includeRenderFunction: includeRenderFunction, - publicApiFunctionName: publicApiFunctionName, - ); - } - - _RendererInfo._( - this._contextClass, - this._renderFunctionName, - this._rendererClassName, { - required this.isFullRenderer, - required this.includeRenderFunction, - this.publicApiFunctionName, - }); - - String get _typeName => _contextClass.name!; - - final String _rendererClassName; - - String get _typeParametersString => _contextClass.typeParametersString; - - String get _typeVariablesString => _contextClass.typeVariablesString; - - String _typeParametersStringWith(String extra) => - _contextClass.typeParametersStringWith(extra); - - String _renderSingleType(DartType tp) { - var displayString = tp.getDisplayString(); - var nullabilitySuffix = - tp.nullabilitySuffix == NullabilitySuffix.question ? '?' : ''; - return '$displayString$nullabilitySuffix'; - } - - /// Returns the type arguments of the context type, and [extra], as they - /// appear in a list of generics. - String _typeArgumentsStringWith(String extra) { - return asGenerics([ - ..._contextClass.thisType.typeArguments - // withNullability will give star types, we actually want nullable or - // non-nullable only for generation. - .map(_renderSingleType), - extra, - ]); - } -} - -extension on InterfaceElement { - /// A set of the names of all accessors on this [ClassElement], including - /// supertypes. - Set get allAccessorNames { - return { - ...?supertype?.element.allAccessorNames, - ...getters.where((e) => e.isPublic && !e.isStatic).map((e) => e.name!), - }; - } -} - -extension on GetterElement { - // Whether this getter should be omitted from the runtime renderer code. - bool get shouldBeOmitted { - return isPrivate || - isStatic || - metadata.hasInternal || - metadata.hasProtected || - metadata.hasVisibleForOverriding || - metadata.hasVisibleForTesting || - variable.metadata.hasInternal || - variable.metadata.hasProtected || - variable.metadata.hasVisibleForOverriding || - variable.metadata.hasVisibleForTesting; - } -} diff --git a/tool/task.dart b/tool/task.dart index 74b2bcf7c9..e64d4ca8fb 100644 --- a/tool/task.dart +++ b/tool/task.dart @@ -13,7 +13,6 @@ import 'package:dartdoc/src/package_meta.dart'; import 'package:path/path.dart' as path; import 'package:sass/sass.dart' as sass; import 'package:yaml/yaml.dart' as yaml; -import 'package:yaml/yaml.dart'; import 'src/flutter_repo.dart'; import 'src/io_utils.dart' as io_utils; @@ -816,12 +815,6 @@ Future validateBuild() async { await buildAll(); for (var relPath in _generatedFilesList) { - if (relPath.contains('runtime_renderers') && !_analyzerInUseIsTarget) { - // The content of these files is very specific to the version of the - // analyzer package in use. So we only validate if we are working on that - // exact version. - continue; - } var newVersion = File(path.join('lib', relPath)); if (!newVersion.existsSync()) { print('${newVersion.path} does not exist\n'); @@ -866,27 +859,11 @@ Rebuild them with "dart tool/task.dart build" and check the results in. ]); } -/// Whether the analyzer in use (as found in `pubspec.lock`) is the target -/// version of analyzer, against which we verify the runtime renderer files. -bool get _analyzerInUseIsTarget { - // TODO(srawlins): Add validation that this number falls within the - // constraints of the analyzer package which are set in `pubspec.yaml`. - const analyzerTarget = '7.2.0'; - - var lockfilePath = path.join(Directory.current.path, 'pubspec.lock'); - var lockfile = loadYaml(File(lockfilePath).readAsStringSync()) as YamlMap; - var packages = lockfile['packages'] as YamlMap; - var analyzer = packages['analyzer'] as YamlMap; - var analyzerInUse = analyzer['version'] as String; - return analyzerInUse == analyzerTarget; -} - /// Paths in this list are relative to lib/. final _generatedFilesList = [ '../dartdoc_options.yaml', 'src/generator/html_resources.g.dart', 'src/generator/templates.aot_renderers_for_html.dart', - 'src/generator/templates.runtime_renderers.dart', 'src/version.dart', '../test/mustachio/foo.dart', ].map((s) => path.joinAll(path.posix.split(s)));