Files
SCM-Manager/scm-webapp/src/main/java/sonia/scm/plugin/PluginCenterDtoMapper.java

29 lines
966 B
Java
Raw Normal View History

package sonia.scm.plugin;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import java.util.HashSet;
import java.util.Set;
@Mapper
2019-08-20 12:29:59 +02:00
public abstract class PluginCenterDtoMapper {
2019-08-20 12:29:59 +02:00
static final PluginCenterDtoMapper INSTANCE = Mappers.getMapper(PluginCenterDtoMapper.class);
2019-08-20 12:29:59 +02:00
abstract PluginInformation map(PluginCenterDto.Plugin plugin);
abstract PluginCondition map(PluginCenterDto.Condition condition);
2019-08-20 12:29:59 +02:00
Set<AvailablePlugin> map(PluginCenterDto pluginCenterDto) {
Set<AvailablePlugin> plugins = new HashSet<>();
for (PluginCenterDto.Plugin plugin : pluginCenterDto.getEmbedded().getPlugins()) {
2019-08-20 14:43:48 +02:00
String url = plugin.getLinks().get("download").getHref();
2019-08-20 12:29:59 +02:00
AvailablePluginDescriptor descriptor = new AvailablePluginDescriptor(
2019-08-20 14:43:48 +02:00
map(plugin), map(plugin.getConditions()), plugin.getDependencies(), url, plugin.getSha256()
2019-08-20 12:29:59 +02:00
);
plugins.add(new AvailablePlugin(descriptor));
}
return plugins;
}
}