| // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file | |
| // for details. All rights reserved. Use of this source code is governed by a | |
| // BSD-style license that can be found in the LICENSE file. | |
| import 'package:built_collection/built_collection.dart'; | |
| import 'package:built_value/built_value.dart'; | |
| import 'package:meta/meta.dart'; | |
| import '../base.dart'; | |
| import '../mixins/annotations.dart'; | |
| import '../mixins/dartdoc.dart'; | |
| import '../visitors.dart'; | |
| import 'directive.dart'; | |
| import 'expression.dart'; | |
| part 'library.g.dart'; | |
| @immutable | |
| abstract class Library | |
| with HasAnnotations, HasDartDocs | |
| implements Built<Library, LibraryBuilder>, Spec { | |
| factory Library([void Function(LibraryBuilder) updates]) = _$Library; | |
| Library._(); | |
| @override | |
| BuiltList<Expression> get annotations; | |
| @override | |
| BuiltList<String> get docs; | |
| BuiltList<Directive> get directives; | |
| BuiltList<Spec> get body; | |
| /// Line comments to place at the start of the library. | |
| BuiltList<String> get comments; | |
| /// A comment indicating the tool this library was generated by. | |
| /// | |
| /// This is typically of the form `Generated by xxx.`; it should exclude | |
| /// leading line comment characters. | |
| String? get generatedByComment; | |
| /// A list of analysis issues to ignore (`ignore_for_file: ...`). | |
| BuiltList<String> get ignoreForFile; | |
| /// Name of the library. | |
| /// | |
| /// May be `null` when no [annotations] are specified. | |
| String? get name; | |
| @override | |
| R accept<R>(SpecVisitor<R> visitor, [R? context]) => | |
| visitor.visitLibrary(this, context); | |
| } | |
| abstract class LibraryBuilder | |
| with HasAnnotationsBuilder, HasDartDocsBuilder | |
| implements Builder<Library, LibraryBuilder> { | |
| factory LibraryBuilder() = _$LibraryBuilder; | |
| LibraryBuilder._(); | |
| @override | |
| ListBuilder<Expression> annotations = ListBuilder<Expression>(); | |
| @override | |
| ListBuilder<String> docs = ListBuilder<String>(); | |
| ListBuilder<Spec> body = ListBuilder<Spec>(); | |
| ListBuilder<Directive> directives = ListBuilder<Directive>(); | |
| ListBuilder<String> comments = ListBuilder<String>(); | |
| String? generatedByComment; | |
| ListBuilder<String> ignoreForFile = ListBuilder<String>(); | |
| String? name; | |
| } |