Skip to content

Commit f13162a

Browse files
authored
Make getChildren and getNodes return DependencyTree (#688)
1 parent d99d011 commit f13162a

File tree

2 files changed

+39
-22
lines changed

2 files changed

+39
-22
lines changed

Diff for: build-info-extractor/src/main/java/org/jfrog/build/extractor/scan/DependencyTree.java

+16-16
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@
66
import org.jfrog.build.api.util.Log;
77

88
import javax.swing.tree.DefaultMutableTreeNode;
9-
import javax.swing.tree.TreeNode;
10-
119
import java.util.*;
1210
import java.util.stream.Collectors;
1311

@@ -112,7 +110,7 @@ public void setMetadata(boolean metadata) {
112110

113111
public void setPrefix(String prefix) {
114112
packagePrefix = prefix.toLowerCase() + "://";
115-
getChildren().forEach(node -> ((DependencyTree)node).setPrefix(prefix));
113+
getChildren().forEach(node -> node.setPrefix(prefix));
116114
}
117115

118116
/**
@@ -126,15 +124,20 @@ public int getIssueCount() {
126124
/**
127125
* @return Node's children
128126
*/
129-
@SuppressWarnings({"WeakerAccess", "unchecked"})
130-
public Vector<TreeNode> getChildren() {
131-
return children != null ? children : new Vector<>();
127+
@SuppressWarnings({"rawtypes", "UnnecessaryLocalVariable", "unchecked"})
128+
public Vector<DependencyTree> getChildren() {
129+
if (this.children == null) {
130+
return new Vector<>();
131+
}
132+
// Force upcasting from TreeNode to DependencyTree
133+
Vector children = this.children;
134+
return children;
132135
}
133136

134137
@JsonProperty(value = "nodes")
135-
@SuppressWarnings({"unchecked", "unused"})
136-
public List<TreeNode> getNodes() {
137-
return children;
138+
@SuppressWarnings({"unused"})
139+
public List<DependencyTree> getNodes() {
140+
return getChildren();
138141
}
139142

140143
/**
@@ -148,7 +151,7 @@ public List<TreeNode> getNodes() {
148151
@SuppressWarnings({"WeakerAccess", "unused"})
149152
public Set<Issue> processTreeIssues() {
150153
setIssuesComponent();
151-
getChildren().forEach(child -> issues.addAll(((DependencyTree)child).processTreeIssues()));
154+
getChildren().forEach(child -> issues.addAll(child.processTreeIssues()));
152155
setTopIssue();
153156
sortChildren();
154157
return issues;
@@ -162,10 +165,7 @@ private void setIssuesComponent() {
162165
}
163166

164167
private void sortChildren() {
165-
Vector children = getChildren();
166-
Vector<DependencyTree> dependencyTrees = (Vector<DependencyTree>) children;
167-
168-
dependencyTrees.sort(Comparator
168+
getChildren().sort(Comparator
169169
.comparing(DependencyTree::getTopIssue, Comparator.comparing(Issue::getSeverity))
170170
.thenComparing(DependencyTree::getIssueCount)
171171
.thenComparing(DependencyTree::getChildCount)
@@ -193,7 +193,7 @@ private void setTopIssue() {
193193
public Set<License> processTreeViolatedLicenses() {
194194
setViolatedLicensesComponent();
195195
violatedLicenses.addAll(licenses.stream().filter(License::isViolate).collect(Collectors.toSet()));
196-
getChildren().forEach(child -> violatedLicenses.addAll(((DependencyTree)child).processTreeViolatedLicenses()));
196+
getChildren().forEach(child -> violatedLicenses.addAll(child.processTreeViolatedLicenses()));
197197
return violatedLicenses;
198198
}
199199

@@ -231,7 +231,7 @@ public DependencyTree find(String componentId) {
231231
return this;
232232
}
233233
return getChildren().stream()
234-
.map(child -> ((DependencyTree)child).find(componentId))
234+
.map(child -> child.find(componentId))
235235
.filter(Objects::nonNull)
236236
.findAny()
237237
.orElse(null);

Diff for: build-info-extractor/src/test/java/org/jfrog/build/extractor/scan/DependencyTreeTest.java

+23-6
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,12 @@
11
package org.jfrog.build.extractor.scan;
22

3-
import org.apache.commons.compress.utils.Lists;
43
import org.apache.commons.compress.utils.Sets;
54
import org.jfrog.build.api.util.NullLog;
65
import org.testng.annotations.BeforeClass;
76
import org.testng.annotations.Test;
7+
import org.testng.collections.Lists;
88

9-
import java.util.HashSet;
10-
import java.util.List;
11-
import java.util.Set;
12-
import java.util.UUID;
9+
import java.util.*;
1310

1411
import static org.testng.Assert.*;
1512
import static org.testng.AssertJUnit.assertEquals;
@@ -39,6 +36,26 @@ public void init() {
3936
four.add(five); // 4 -> 5
4037
}
4138

39+
@Test
40+
public void testGetChildren() {
41+
// Check root children
42+
List<DependencyTree> rootChildren = root.getChildren();
43+
assertTrue(rootChildren.contains(one));
44+
assertTrue(rootChildren.contains(two));
45+
46+
// Check 'one' children
47+
assertEquals(new ArrayList<>(), one.getChildren());
48+
49+
// Check 'two' children
50+
List<DependencyTree> twoChildren = two.getChildren();
51+
assertTrue(twoChildren.contains(three));
52+
assertTrue(twoChildren.contains(four));
53+
54+
// Check 'four' and 'five' children
55+
assertEquals(Lists.newArrayList(five), four.getChildren());
56+
assertEquals(new ArrayList<>(), five.getChildren());
57+
}
58+
4259
@Test
4360
public void testInit() {
4461
// Sanity test - Check tree with no issues
@@ -247,4 +264,4 @@ private License createLicense(boolean violating) {
247264
private String generateUID() {
248265
return UUID.randomUUID().toString();
249266
}
250-
}
267+
}

0 commit comments

Comments
 (0)