Skip to content

Commit fe7b4c7

Browse files
committed
# Conflicts: # README.md
2 parents b8d12cb + d0f0524 commit fe7b4c7

File tree

7 files changed

+135
-135
lines changed

7 files changed

+135
-135
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
# Java8TreeExample
22

3-
see TreeTest.java
3+
see TreeTest.java
Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,32 @@
1-
package example;
2-
3-
import java.math.BigDecimal;
4-
5-
public class ExampleData {
6-
String name;
7-
int num;
8-
BigDecimal foo;
9-
10-
public ExampleData(String name, int num) {
11-
super();
12-
this.name = name;
13-
this.num = num;
14-
}
15-
16-
public String getName() {
17-
return name;
18-
}
19-
20-
public int getNum() {
21-
return num;
22-
}
23-
24-
public BigDecimal getNumAsBigDecimal() {
25-
return BigDecimal.valueOf(num);
26-
}
27-
28-
public BigDecimal getFoo() {
29-
return BigDecimal.valueOf(num * 10);
30-
}
31-
1+
package example;
2+
3+
import java.math.BigDecimal;
4+
5+
public class ExampleData {
6+
String name;
7+
int num;
8+
BigDecimal foo;
9+
10+
public ExampleData(String name, int num) {
11+
super();
12+
this.name = name;
13+
this.num = num;
14+
}
15+
16+
public String getName() {
17+
return name;
18+
}
19+
20+
public int getNum() {
21+
return num;
22+
}
23+
24+
public BigDecimal getNumAsBigDecimal() {
25+
return BigDecimal.valueOf(num);
26+
}
27+
28+
public BigDecimal getFoo() {
29+
return BigDecimal.valueOf(num * 10);
30+
}
31+
3232
}
Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
1-
package example.genericJ8;
2-
3-
import java.util.stream.Stream;
4-
5-
import example.TreeNode;
6-
7-
public class ExtendedTreeNode<T> extends TreeNode<T> {
8-
9-
public ExtendedTreeNode(TreeNode<T> node) {
10-
super(node);
11-
}
12-
13-
public Stream<ExtendedTreeNode<T>> flattened() {
14-
return Stream.concat(Stream.of(this),
15-
getChildren().stream()
16-
// extend
17-
.map(ExtendedTreeNode<T>::new)
18-
// recurse
19-
.flatMap(ExtendedTreeNode<T>::flattened));
20-
}
21-
22-
}
1+
package example.genericJ8;
2+
3+
import java.util.stream.Stream;
4+
5+
import example.TreeNode;
6+
7+
public class ExtendedTreeNode<T> extends TreeNode<T> {
8+
9+
public ExtendedTreeNode(TreeNode<T> node) {
10+
super(node);
11+
}
12+
13+
public Stream<ExtendedTreeNode<T>> flattened() {
14+
return Stream.concat(Stream.of(this),
15+
getChildren().stream()
16+
// extend
17+
.map(ExtendedTreeNode<T>::new)
18+
// recurse
19+
.flatMap(ExtendedTreeNode<T>::flattened));
20+
}
21+
22+
}
Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,28 @@
1-
package example.genericJ8;
2-
3-
import static java.util.stream.Collectors.joining;
4-
5-
import java.util.ArrayList;
6-
import java.util.List;
7-
import java.util.function.Function;
8-
9-
import example.TreeNode;
10-
11-
public class TreePathUtil {
12-
13-
public static <T> String getTreePath(TreeNode<T> treeNode, Function<T, String> extractorFct, String separator) {
14-
List<String> path = new ArrayList<>();
15-
getTreePath(path, treeNode, extractorFct);
16-
return path.stream().collect(joining(separator));
17-
}
18-
19-
private static <T, U> void getTreePath(List<U> path, TreeNode<T> node, Function<T, U> extractorFct) {
20-
if (node != null && node.getData() != null) {
21-
path.add(0, extractorFct.apply(node.getData()));
22-
if (node.getParent() != null) {
23-
getTreePath(path, node.getParent(), extractorFct);
24-
}
25-
}
26-
}
27-
28-
}
1+
package example.genericJ8;
2+
3+
import static java.util.stream.Collectors.joining;
4+
5+
import java.util.ArrayList;
6+
import java.util.List;
7+
import java.util.function.Function;
8+
9+
import example.TreeNode;
10+
11+
public class TreePathUtil {
12+
13+
public static <T> String getTreePath(TreeNode<T> treeNode, Function<T, String> extractorFct, String separator) {
14+
List<String> path = new ArrayList<>();
15+
getTreePath(path, treeNode, extractorFct);
16+
return path.stream().collect(joining(separator));
17+
}
18+
19+
private static <T, U> void getTreePath(List<U> path, TreeNode<T> node, Function<T, U> extractorFct) {
20+
if (node != null && node.getData() != null) {
21+
path.add(0, extractorFct.apply(node.getData()));
22+
if (node.getParent() != null) {
23+
getTreePath(path, node.getParent(), extractorFct);
24+
}
25+
}
26+
}
27+
28+
}
Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,26 @@
1-
package example.simple;
2-
import org.apache.commons.lang3.StringUtils;
3-
4-
import example.ExampleData;
5-
import example.TreeNode;
6-
7-
public class TreeUtilSimple {
8-
9-
public static String printTree(TreeNode<ExampleData> treeNode) {
10-
StringBuilder sb = new StringBuilder();
11-
printTree(treeNode, sb, 0);
12-
return sb.toString();
13-
}
14-
15-
private static void printTree(TreeNode<ExampleData> treeNode, StringBuilder sb, int indent) {
16-
if (treeNode != null) {
17-
sb.append(StringUtils.repeat(" ", indent) + treeNode.getData().getName() + "\n");
18-
if (treeNode.getChildren() != null) {
19-
for (TreeNode<ExampleData> data : treeNode.getChildren()) {
20-
printTree(data, sb, indent+1);
21-
}
22-
}
23-
}
24-
}
25-
26-
}
1+
package example.simple;
2+
import org.apache.commons.lang3.StringUtils;
3+
4+
import example.ExampleData;
5+
import example.TreeNode;
6+
7+
public class TreeUtilSimple {
8+
9+
public static String printTree(TreeNode<ExampleData> treeNode) {
10+
StringBuilder sb = new StringBuilder();
11+
printTree(treeNode, sb, 0);
12+
return sb.toString();
13+
}
14+
15+
private static void printTree(TreeNode<ExampleData> treeNode, StringBuilder sb, int indent) {
16+
if (treeNode != null) {
17+
sb.append(StringUtils.repeat(" ", indent) + treeNode.getData().getName() + "\n");
18+
if (treeNode.getChildren() != null) {
19+
for (TreeNode<ExampleData> data : treeNode.getChildren()) {
20+
printTree(data, sb, indent+1);
21+
}
22+
}
23+
}
24+
}
25+
26+
}

src/main/resources/logback.xml

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1-
<?xml version="1.0" encoding="UTF-8"?>
2-
<configuration>
3-
4-
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
5-
<layout class="ch.qos.logback.classic.PatternLayout">
6-
<Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern>
7-
</layout>
8-
</appender>
9-
10-
<logger name="hashtoken" level="TRACE"/>
11-
12-
13-
<root level="debug">
14-
<appender-ref ref="STDOUT" />
15-
</root>
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<configuration>
3+
4+
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
5+
<layout class="ch.qos.logback.classic.PatternLayout">
6+
<Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern>
7+
</layout>
8+
</appender>
9+
10+
<logger name="hashtoken" level="TRACE"/>
11+
12+
13+
<root level="debug">
14+
<appender-ref ref="STDOUT" />
15+
</root>
1616
</configuration>
Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
<?xml version="1.0" encoding="UTF-8"?>
2-
<configuration>
3-
4-
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
5-
<layout class="ch.qos.logback.classic.PatternLayout">
6-
<Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern>
7-
</layout>
8-
</appender>
9-
10-
<root level="debug">
11-
<appender-ref ref="STDOUT" />
12-
</root>
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<configuration>
3+
4+
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
5+
<layout class="ch.qos.logback.classic.PatternLayout">
6+
<Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern>
7+
</layout>
8+
</appender>
9+
10+
<root level="debug">
11+
<appender-ref ref="STDOUT" />
12+
</root>
1313
</configuration>

0 commit comments

Comments
 (0)