Skip to content

Commit

Permalink
passing in the parent notification
Browse files Browse the repository at this point in the history
  • Loading branch information
ekerwin committed May 9, 2018
1 parent d3c4f8b commit 946cb0a
Show file tree
Hide file tree
Showing 7 changed files with 58 additions and 23 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -61,4 +61,9 @@ public List<NotificationContentDetail> getNotificationContentDetails() {
return Collections.emptyList();
}

@Override
public String getNotificationGroup() {
return NotificationContentDetail.CONTENT_KEY_GROUP_LICENSE;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,6 @@ public abstract class NotificationContent extends HubComponent {

public abstract List<NotificationContentDetail> getNotificationContentDetails();

public abstract String getNotificationGroup();

}
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@
import com.blackducksoftware.integration.util.Stringable;

public class NotificationContentDetail extends Stringable {
private final NotificationContent notificationContent;
private final String contentDetailKey;
private final String notificationGroup;
private final String projectName;
private final String projectVersionName;
private final Optional<UriSingleResponse<ProjectVersionView>> projectVersion;
Expand All @@ -64,47 +64,52 @@ public class NotificationContentDetail extends Stringable {
public final static String CONTENT_KEY_GROUP_VULNERABILITY = "vulnerability";
public final static String CONTENT_KEY_SEPARATOR = "|";

public static NotificationContentDetail createPolicyDetailWithComponentOnly(final String projectName, final String projectVersionName, final String projectVersionUri, final String componentName, final String componentUri,
public static NotificationContentDetail createPolicyDetailWithComponentOnly(final NotificationContent notificationContent, final String projectName, final String projectVersionName, final String projectVersionUri,
final String componentName, final String componentUri,
final String policyName, final String policyUri) {
return new NotificationContentDetail(CONTENT_KEY_GROUP_POLICY, projectName, projectVersionName, projectVersion(projectVersionUri), Optional.of(componentName), component(componentUri), Optional.empty(), Optional.empty(),
return new NotificationContentDetail(notificationContent, projectName, projectVersionName, projectVersion(projectVersionUri), Optional.of(componentName), component(componentUri), Optional.empty(), Optional.empty(),
Optional.of(policyName),
policy(policyUri), Optional.empty(), Optional.empty(), Optional.empty());
}

public static NotificationContentDetail createPolicyDetailWithComponentVersion(final String projectName, final String projectVersionName, final String projectVersionUri, final String componentName, final String componentVersionName,
public static NotificationContentDetail createPolicyDetailWithComponentVersion(final NotificationContent notificationContent, final String projectName, final String projectVersionName, final String projectVersionUri,
final String componentName, final String componentVersionName,
final String componentVersionUri, final String policyName, final String policyUri) {
return new NotificationContentDetail(CONTENT_KEY_GROUP_POLICY, projectName, projectVersionName, projectVersion(projectVersionUri), Optional.of(componentName), Optional.empty(), Optional.of(componentVersionName),
return new NotificationContentDetail(notificationContent, projectName, projectVersionName, projectVersion(projectVersionUri), Optional.of(componentName), Optional.empty(), Optional.of(componentVersionName),
componentVersion(componentVersionUri),
Optional.of(policyName), policy(policyUri), Optional.empty(), Optional.empty(), Optional.empty());
}

public static NotificationContentDetail createPolicyDetailWithComponentAndIssue(final String projectName, final String projectVersionName, final String projectVersionUri, final String componentName, final String componentUri,
public static NotificationContentDetail createPolicyDetailWithComponentAndIssue(final NotificationContent notificationContent, final String projectName, final String projectVersionName, final String projectVersionUri,
final String componentName, final String componentUri,
final String policyName, final String policyUri, final String componentIssueUri) {
return new NotificationContentDetail(CONTENT_KEY_GROUP_POLICY, projectName, projectVersionName, projectVersion(projectVersionUri), Optional.of(componentName), component(componentUri), Optional.empty(), Optional.empty(),
return new NotificationContentDetail(notificationContent, projectName, projectVersionName, projectVersion(projectVersionUri), Optional.of(componentName), component(componentUri), Optional.empty(), Optional.empty(),
Optional.of(policyName),
policy(policyUri), Optional.empty(), componentIssue(componentIssueUri), Optional.empty());
}

public static NotificationContentDetail createPolicyDetailWithComponentVersionAndIssue(final String projectName, final String projectVersionName, final String projectVersionUri, final String componentName,
public static NotificationContentDetail createPolicyDetailWithComponentVersionAndIssue(final NotificationContent notificationContent, final String projectName, final String projectVersionName, final String projectVersionUri,
final String componentName,
final String componentVersionName,
final String componentVersionUri, final String policyName, final String policyUri, final String componentIssueUri) {
return new NotificationContentDetail(CONTENT_KEY_GROUP_POLICY, projectName, projectVersionName, projectVersion(projectVersionUri), Optional.of(componentName), Optional.empty(), Optional.of(componentVersionName),
return new NotificationContentDetail(notificationContent, projectName, projectVersionName, projectVersion(projectVersionUri), Optional.of(componentName), Optional.empty(), Optional.of(componentVersionName),
componentVersion(componentVersionUri),
Optional.of(policyName), policy(policyUri), Optional.empty(), componentIssue(componentIssueUri), Optional.empty());
}

public static NotificationContentDetail createVulnerabilityDetail(final String projectName, final String projectVersionName, final String projectVersionUri, final String componentName, final String componentVersionName,
public static NotificationContentDetail createVulnerabilityDetail(final NotificationContent notificationContent, final String projectName, final String projectVersionName, final String projectVersionUri, final String componentName,
final String componentVersionName,
final String componentVersionUri, final String componentVersionOriginName, final String componentIssueUri, final String componentVersionOriginId) {
return new NotificationContentDetail(CONTENT_KEY_GROUP_VULNERABILITY, projectName, projectVersionName, projectVersion(projectVersionUri), Optional.of(componentName), Optional.empty(), Optional.of(componentVersionName),
return new NotificationContentDetail(notificationContent, projectName, projectVersionName, projectVersion(projectVersionUri), Optional.of(componentName), Optional.empty(), Optional.of(componentVersionName),
componentVersion(componentVersionUri),
Optional.empty(), Optional.empty(), Optional.of(componentVersionOriginName), componentIssue(componentIssueUri), Optional.of(componentVersionOriginId));
}

private NotificationContentDetail(final String notificationGroup, final String projectName, final String projectVersionName, final Optional<UriSingleResponse<ProjectVersionView>> projectVersion,
private NotificationContentDetail(final NotificationContent notificationContent, final String projectName, final String projectVersionName, final Optional<UriSingleResponse<ProjectVersionView>> projectVersion,
final Optional<String> componentName,
final Optional<UriSingleResponse<ComponentView>> component, final Optional<String> componentVersionName, final Optional<UriSingleResponse<ComponentVersionView>> componentVersion, final Optional<String> policyName,
final Optional<UriSingleResponse<PolicyRuleViewV2>> policy, final Optional<String> componentVersionOriginName, final Optional<UriSingleResponse<IssueView>> componentIssue, final Optional<String> componentVersionOriginId) {
this.notificationGroup = notificationGroup;
this.notificationContent = notificationContent;
this.projectName = projectName;
this.projectVersionName = projectVersionName;
this.projectVersion = projectVersion;
Expand All @@ -122,7 +127,7 @@ private NotificationContentDetail(final String notificationGroup, final String p

private String createContentDetailKey() {
final StringBuilder keyBuilder = new StringBuilder();
keyBuilder.append(notificationGroup);
keyBuilder.append(notificationContent.getNotificationGroup());
keyBuilder.append(CONTENT_KEY_SEPARATOR);

if (projectVersion.isPresent()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,12 +71,18 @@ public List<NotificationContentDetail> getNotificationContentDetails() {
final List<NotificationContentDetail> details = new ArrayList<>();
policyInfos.forEach(policyInfo -> {
if (componentVersion != null) {
details.add(NotificationContentDetail.createPolicyDetailWithComponentVersion(projectName, projectVersionName, projectVersion, componentName, componentVersionName, componentVersion, policyInfo.policyName, policyInfo.policy));
details.add(NotificationContentDetail.createPolicyDetailWithComponentVersion(this, projectName, projectVersionName, projectVersion, componentName, componentVersionName, componentVersion, policyInfo.policyName,
policyInfo.policy));
} else {
details.add(NotificationContentDetail.createPolicyDetailWithComponentOnly(projectName, projectVersionName, projectVersion, componentName, component, policyInfo.policyName, policyInfo.policy));
details.add(NotificationContentDetail.createPolicyDetailWithComponentOnly(this, projectName, projectVersionName, projectVersion, componentName, component, policyInfo.policyName, policyInfo.policy));
}
});
return details;
}

@Override
public String getNotificationGroup() {
return NotificationContentDetail.CONTENT_KEY_GROUP_POLICY;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -64,15 +64,21 @@ public List<NotificationContentDetail> getNotificationContentDetails() {
componentVersionStatus.policies.forEach(policyUri -> {
final String policyName = uriToName.get(policyUri);
if (componentVersionStatus.componentVersion != null) {
details.add(NotificationContentDetail.createPolicyDetailWithComponentVersionAndIssue(projectName, projectVersionName, projectVersion, componentVersionStatus.componentName, componentVersionStatus.componentVersionName,
componentVersionStatus.componentVersion, policyName, policyUri, componentVersionStatus.componentIssueLink));
details.add(
NotificationContentDetail.createPolicyDetailWithComponentVersionAndIssue(this, projectName, projectVersionName, projectVersion, componentVersionStatus.componentName, componentVersionStatus.componentVersionName,
componentVersionStatus.componentVersion, policyName, policyUri, componentVersionStatus.componentIssueLink));
} else {
details.add(NotificationContentDetail.createPolicyDetailWithComponentAndIssue(projectName, projectVersionName, projectVersion, componentVersionStatus.componentName, componentVersionStatus.component, policyName,
details.add(NotificationContentDetail.createPolicyDetailWithComponentAndIssue(this, projectName, projectVersionName, projectVersion, componentVersionStatus.componentName, componentVersionStatus.component, policyName,
policyUri, componentVersionStatus.componentIssueLink));
}
});
});
return details;
}

@Override
public String getNotificationGroup() {
return NotificationContentDetail.CONTENT_KEY_GROUP_POLICY;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -64,15 +64,21 @@ public List<NotificationContentDetail> getNotificationContentDetails() {
componentVersionStatus.policies.forEach(policyUri -> {
final String policyName = uriToName.get(policyUri);
if (componentVersionStatus.componentVersion != null) {
details.add(NotificationContentDetail.createPolicyDetailWithComponentVersionAndIssue(projectName, projectVersionName, projectVersion, componentVersionStatus.componentName, componentVersionStatus.componentVersionName,
componentVersionStatus.componentVersion, policyName, policyUri, componentVersionStatus.componentIssueLink));
details.add(
NotificationContentDetail.createPolicyDetailWithComponentVersionAndIssue(this, projectName, projectVersionName, projectVersion, componentVersionStatus.componentName, componentVersionStatus.componentVersionName,
componentVersionStatus.componentVersion, policyName, policyUri, componentVersionStatus.componentIssueLink));
} else {
details.add(NotificationContentDetail.createPolicyDetailWithComponentAndIssue(projectName, projectVersionName, projectVersion, componentVersionStatus.componentName, componentVersionStatus.component, policyName,
details.add(NotificationContentDetail.createPolicyDetailWithComponentAndIssue(this, projectName, projectVersionName, projectVersion, componentVersionStatus.componentName, componentVersionStatus.component, policyName,
policyUri, componentVersionStatus.componentIssueLink));
}
});
});
return details;
}

@Override
public String getNotificationGroup() {
return NotificationContentDetail.CONTENT_KEY_GROUP_POLICY;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -66,10 +66,15 @@ public boolean providesLicenseDetails() {
public List<NotificationContentDetail> getNotificationContentDetails() {
final List<NotificationContentDetail> details = new ArrayList<>();
affectedProjectVersions.forEach(projectVersion -> {
details.add(NotificationContentDetail.createVulnerabilityDetail(projectVersion.projectName, projectVersion.projectVersionName, projectVersion.projectVersion, componentName, versionName, componentVersion,
details.add(NotificationContentDetail.createVulnerabilityDetail(this, projectVersion.projectName, projectVersion.projectVersionName, projectVersion.projectVersion, componentName, versionName, componentVersion,
componentVersionOriginName, projectVersion.componentIssueUrl, componentVersionOriginId));
});
return details;
}

@Override
public String getNotificationGroup() {
return NotificationContentDetail.CONTENT_KEY_GROUP_VULNERABILITY;
}

}

0 comments on commit 946cb0a

Please sign in to comment.