package sonia.scm.plugin; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; import java.util.HashSet; import java.util.Set; @Mapper public abstract class PluginCenterDtoMapper { static final PluginCenterDtoMapper INSTANCE = Mappers.getMapper(PluginCenterDtoMapper.class); abstract PluginInformation map(PluginCenterDto.Plugin plugin); abstract PluginCondition map(PluginCenterDto.Condition condition); Set map(PluginCenterDto pluginCenterDto) { Set plugins = new HashSet<>(); for (PluginCenterDto.Plugin plugin : pluginCenterDto.getEmbedded().getPlugins()) { AvailablePluginDescriptor descriptor = new AvailablePluginDescriptor( map(plugin), map(plugin.getConditions()), plugin.getDependencies() ); plugins.add(new AvailablePlugin(descriptor)); } return plugins; } }