use of com.synopsys.integration.alert.channel.email.attachment.compatibility.ComponentItem in project hub-alert by blackducksoftware.
the class MessageContentGroupCsvCreator method createRowValues.
private List<List<String>> createRowValues(LinkableItem commonProvider, LinkableItem commonTopic, List<ProviderMessageContent> contents) {
List<List<String>> rows = new ArrayList<>();
for (ProviderMessageContent message : contents) {
String subTopicValue = createOptionalValueString(message.getSubTopic(), LinkableItem::getValue);
Set<ComponentItem> componentItems = extractComponentItemsOrDefault(message);
for (ComponentItem componentItem : componentItems) {
List<String> columnValues = createColumnValues(commonProvider.getLabel(), commonProvider.getValue(), commonTopic.getValue(), subTopicValue, componentItem);
rows.add(columnValues);
}
}
return rows;
}
use of com.synopsys.integration.alert.channel.email.attachment.compatibility.ComponentItem in project hub-alert by blackducksoftware.
the class ProjectMessageToMessageContentGroupConversionUtils method toMessageContentGroup.
public static MessageContentGroup toMessageContentGroup(ProjectMessage projectMessage) {
ProviderMessageContent.Builder providerMessageContentBuilder = new ProviderMessageContent.Builder();
LinkableItem provider = projectMessage.getProvider();
providerMessageContentBuilder.applyProvider(provider.getLabel(), -1L, provider.getValue(), provider.getUrl().orElse(null));
LinkableItem project = projectMessage.getProject();
providerMessageContentBuilder.applyTopic(project.getLabel(), project.getValue(), project.getUrl().orElse(null));
Optional<LinkableItem> optionalProjectVersion = projectMessage.getProjectVersion();
if (optionalProjectVersion.isPresent()) {
LinkableItem projectVersion = optionalProjectVersion.get();
providerMessageContentBuilder.applySubTopic(projectVersion.getLabel(), projectVersion.getValue(), projectVersion.getUrl().orElse(null));
}
projectMessage.getOperation().map(ProjectMessageToMessageContentGroupConversionUtils::convertToItemOperation).ifPresent(providerMessageContentBuilder::applyAction);
MessageContentGroup messageContentGroup = new MessageContentGroup();
List<ComponentItem> componentItems = new LinkedList<>();
for (BomComponentDetails bomComponent : projectMessage.getBomComponents()) {
List<ComponentItem> bomComponentItems = convertToComponentItems(bomComponent);
componentItems.addAll(bomComponentItems);
}
providerMessageContentBuilder.applyAllComponentItems(componentItems);
try {
ProviderMessageContent providerMessageContent = providerMessageContentBuilder.build();
messageContentGroup.add(providerMessageContent);
} catch (AlertException e) {
// Ignore for feature parity
}
return messageContentGroup;
}
use of com.synopsys.integration.alert.channel.email.attachment.compatibility.ComponentItem in project hub-alert by blackducksoftware.
the class ProjectMessageToMessageContentGroupConversionUtils method convertToComponentItems.
private static List<ComponentItem> convertToComponentItems(BomComponentDetails bomComponent) {
List<ComponentItem> componentItems = new LinkedList<>();
for (ComponentConcern componentConcern : bomComponent.getComponentConcerns()) {
ComponentItem.Builder componentItemBuilder = new ComponentItem.Builder();
componentItemBuilder.applyOperation(componentConcern.getOperation());
ComponentConcernType type = componentConcern.getType();
String category = StringUtils.capitalize(StringUtils.lowerCase(type.name()));
componentItemBuilder.applyCategory(category);
componentItemBuilder.applyComponentData(bomComponent.getComponent());
bomComponent.getComponentVersion().ifPresent(componentItemBuilder::applySubComponent);
String categoryItemLabel = convertToCategoryLabel(type);
LinkableItem categoryItem = new LinkableItem(categoryItemLabel, componentConcern.getName(), componentConcern.getUrl().orElse(null));
componentItemBuilder.applyCategoryItem(categoryItem);
String severity = componentConcern.getSeverity().name();
componentItemBuilder.applyCategoryGroupingAttribute("Severity", severity);
boolean collapseOnCategory = ComponentConcernType.VULNERABILITY.equals(type);
componentItemBuilder.applyCollapseOnCategory(collapseOnCategory);
List<LinkableItem> componentAttributes = new LinkedList<>();
componentAttributes.add(bomComponent.getLicense());
LinkableItem usageItem = new LinkableItem("Usage", bomComponent.getUsage());
componentAttributes.add(usageItem);
ComponentUpgradeGuidance upgradeGuidance = bomComponent.getComponentUpgradeGuidance();
upgradeGuidance.getLongTermUpgradeGuidance().ifPresent(componentAttributes::add);
upgradeGuidance.getShortTermUpgradeGuidance().ifPresent(componentAttributes::add);
componentAttributes.addAll(bomComponent.getAdditionalAttributes());
componentItemBuilder.applyAllComponentAttributes(componentAttributes);
try {
componentItems.add(componentItemBuilder.build());
} catch (AlertException e) {
// Ignored for feature parity
}
}
return componentItems;
}
Aggregations