LCOV - code coverage report
Current view: top level - src/builders - bloc_class.dart (source / functions) Hit Total Coverage
Test: lcov.info Lines: 36 36 100.0 %
Date: 2021-09-23 09:58:53 Functions: 0 0 -

          Line data    Source code
       1             : part of rx_bloc_generator;
       2             : 
       3             : /// Generates the content of the blocClass
       4             : ///
       5             : /// Example:
       6             : /// abstract class ${RxBlocName}Bloc extends RxBlocBase
       7             : ///    implements {RxBlocName}BlocEvents, {RxBlocName}BlocStates,
       8             : ///           {RxBlocName}BlocType {
       9             : ///
      10             : ///    /// Events
      11             : ///    ...
      12             : ///    /// States
      13             : ///    ...
      14             : ///    /// Type - events, states getters
      15             : ///    ...
      16             : ///    /// Dispose of all the opened streams
      17             : ///    ...
      18             : /// }
      19             : ///
      20             : class _BlocClass implements _BuilderContract {
      21           1 :   const _BlocClass(
      22             :     this.className,
      23             :     this.blocTypeClassName,
      24             :     this.eventClassName,
      25             :     this.stateClassName,
      26             :     this.eventsMethods,
      27             :     this.statesFields,
      28             :   );
      29             : 
      30             :   final String className;
      31             : 
      32             :   final String blocTypeClassName;
      33             : 
      34             :   final String eventClassName;
      35             : 
      36             :   final String stateClassName;
      37             : 
      38             :   final List<MethodElement> eventsMethods;
      39             : 
      40             :   final List<FieldElement> statesFields;
      41             : 
      42           1 :   @override
      43           1 :   Class build() => Class(
      44           1 :         (b) => b
      45           3 :           ..docs.addAll(<String>[
      46           4 :             '/// [$className] extended by the [${className.substring(1)}]',
      47             :             '/// {@nodoc}',
      48             :           ])
      49           1 :           ..abstract = true
      50           2 :           ..name = className
      51           3 :           ..extend = refer((RxBlocBase).toString())
      52           3 :           ..implements.addAll(<Reference>[
      53           2 :             refer(eventClassName),
      54           2 :             refer(stateClassName),
      55           2 :             refer(blocTypeClassName),
      56             :           ])
      57           3 :           ..fields.addAll(<Field>[
      58             :             // Example:
      59             :             // final _compositeSubscription = CompositeSubscription();
      60           2 :             _CompositionField().build(),
      61             : 
      62             :             // Example:
      63             :             // final _${eventName}Event = PublishSubject<void>();
      64           1 :             ...eventsMethods
      65           4 :                 .map((MethodElement method) => _EventField(method).build())
      66           1 :                 .toList(),
      67             : 
      68             :             // Example:
      69             :             // Stream<int> _{stateName}State;
      70           1 :             ...statesFields
      71           4 :                 .map((FieldElement field) => _StateField(field).build())
      72           1 :                 .toList(),
      73             :           ])
      74           2 :           ..methods.addAll(
      75           1 :             <Method>[
      76             :               // Example:
      77             :               // void {eventName}() => _${eventName}Event.add(null);
      78           1 :               ...eventsMethods
      79           4 :                   .map((MethodElement method) => _EventMethod(method).build())
      80           1 :                   .toList(),
      81             : 
      82             :               // Example:
      83             :               // Stream<int> get {stateName} =>
      84             :               //      _{stateName}State ??= _mapTo{StateName}State();
      85           1 :               ...statesFields
      86           1 :                   .map(
      87           3 :                       (FieldElement field) => _StateGetterMethod(field).build())
      88           1 :                   .toList(),
      89             : 
      90             :               // Example:
      91             :               // Stream<int> _mapTo{StateName}State();
      92           1 :               ...statesFields
      93           4 :                   .map((FieldElement field) => _StateMethod(field).build())
      94           1 :                   .toList(),
      95             : 
      96             :               // Example:
      97             :               // {BlocName}BlocEvents get events => this;
      98           3 :               _StaticStateGetterMethod(eventClassName, true).build(),
      99             : 
     100             :               // Example:
     101             :               // {BlocName}BlocStates get states => this;
     102           3 :               _StaticStateGetterMethod(stateClassName, false).build(),
     103             : 
     104             :               // Example:
     105             :               // void dispose() {
     106             :               //   .._${eventMethod1}Event.close();
     107             :               //   .._${eventMethod2}Event.close();
     108             :               //   ...
     109             :               //   ..super.dispose();
     110             :               // }
     111           3 :               _DisposeMethod(eventsMethods).build(),
     112             :             ],
     113             :           ),
     114             :       );
     115             : }

Generated by: LCOV version 1.15