Coverage Summary for Class: GeneratorActionProviderImpl (ru.eda.plgn.bizgen.plugin.actions)

Class Method, % Branch, % Line, % Instruction, %
GeneratorActionProviderImpl 75% (3/4) 85.7% (6/7) 88.9% (24/27)
GeneratorActionProviderImpl$Companion 100% (1/1) 100% (7/7) 100% (28/28)
GeneratorActionProviderImpl$Companion$toBaseGeneratorAction$1 100% (1/1) 100% (7/7) 100% (8/8)
Total 83.3% (5/6) 95.2% (20/21) 95.2% (60/63)


 package ru.eda.plgn.bizgen.plugin.actions
 
 import ru.eda.plgn.bizgen.core.generator_info.GeneratorInfo
 import ru.eda.plgn.bizgen.core.generator_info.GeneratorInfoProvider
 import ru.eda.plgn.bizgen.plugin.di.BizGenService
 
 /**
  * Провайдер действий.
  *
  * @author Dmitry_Emelyanenko
  */
 interface GeneratorActionProvider : BizGenService {
 
   /**
    * Получение всех описаний генераторов.
    *
    * @return перечень описаний генераторов
    */
   fun getInfos(): List<GeneratorInfo<*>>
 
   /**
    * Получение всех действия для применения.
    *
    * @return перечень действия для применения
    */
   fun getAnActions(): List<GeneratorAnAction>
 
   /**
    * Получение общего количества зарегистрированных действий.
    *
    * @return количество зарегистрированных действий в провайдере
    */
   fun actionCount(): Int
 }
 
 /** Реализация [GeneratorActionProvider]. */
 class GeneratorActionProviderImpl : GeneratorActionProvider {
   private val infos: List<GeneratorInfo<*>> = GeneratorInfoProvider.generatorInfos
   private val actions: List<BaseGeneratorAction<*>> = infos
     .map { it.toBaseGeneratorAction() }
 
   override fun getInfos(): List<GeneratorInfo<*>> {
     return infos
   }
 
   override fun getAnActions(): List<GeneratorAnAction> {
     return actions
   }
 
   override fun actionCount(): Int {
     return actions.size
   }
 
   private companion object {
     fun <T : Any> GeneratorInfo<T>.toBaseGeneratorAction(): BaseGeneratorAction<T> {
       return object : BaseGeneratorAction<T>(
         id = id,
         name = name,
         generator = generator,
         category = category,
         detailedDescription = detailedDescription,
         example = example,
       ) {}
     }
   }
 }