You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2018/04/17 07:25:58 UTC
[isis] 02/11: ISIS-898 refine TreeNode interface
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch dev/2.0.0/ISIS-898-treeview
in repository https://gitbox.apache.org/repos/asf/isis.git
commit a8c547dc2546fb73c2a82bb46e8de28c8473e8b2
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sun Apr 15 19:55:11 2018 +0200
ISIS-898 refine TreeNode interface
---
.../src/main/java/org/apache/isis/applib/tree/TreeNode.java | 10 ++++++----
.../main/java/org/apache/isis/applib/tree/TreeNode_Lazy.java | 4 ++--
.../apache/isis/applib/tree/TreeNode_iteratorHierarchyUp.java | 2 +-
3 files changed, 9 insertions(+), 7 deletions(-)
diff --git a/core/applib/src/main/java/org/apache/isis/applib/tree/TreeNode.java b/core/applib/src/main/java/org/apache/isis/applib/tree/TreeNode.java
index f8f6fc4..6d641a5 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/tree/TreeNode.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/tree/TreeNode.java
@@ -1,12 +1,14 @@
package org.apache.isis.applib.tree;
import java.util.Iterator;
-import java.util.Optional;
import java.util.Spliterator;
import java.util.Spliterators;
import java.util.stream.Stream;
import java.util.stream.StreamSupport;
+import org.apache.isis.applib.annotation.ViewModel;
+
+@ViewModel
public interface TreeNode<T> {
// -- VALUE
@@ -15,7 +17,7 @@ public interface TreeNode<T> {
// -- PARENT
- public Optional<TreeNode<T>> getParent();
+ public TreeNode<T> getParentIfAny();
// -- CHILDREN
@@ -26,7 +28,7 @@ public interface TreeNode<T> {
// -- BASIC PREDICATES
public default boolean isRoot() {
- return !getParent().isPresent();
+ return getParentIfAny() == null;
}
public default boolean isLeaf() {
@@ -36,7 +38,7 @@ public interface TreeNode<T> {
// -- CONSTRUCTION
public static <T> TreeNode<T> of(T node, TreeAdapter<T> treeAdapter) {
- return TreeNode_Lazy.of(node, treeAdapter);
+ return TreeNodeBean.of(node, treeAdapter);
}
// -- PARENT NODE ITERATION
diff --git a/core/applib/src/main/java/org/apache/isis/applib/tree/TreeNode_Lazy.java b/core/applib/src/main/java/org/apache/isis/applib/tree/TreeNode_Lazy.java
index 83cd503..1bc2341 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/tree/TreeNode_Lazy.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/tree/TreeNode_Lazy.java
@@ -1,7 +1,6 @@
package org.apache.isis.applib.tree;
import java.util.Objects;
-import java.util.Optional;
import java.util.stream.Stream;
class TreeNode_Lazy<T> implements TreeNode<T> {
@@ -26,9 +25,10 @@ class TreeNode_Lazy<T> implements TreeNode<T> {
}
@Override
- public Optional<TreeNode<T>> getParent() {
+ public TreeNode<T> getParentIfAny() {
return treeAdapter.parentOf(getValue())
.map(this::toTreeNode)
+ .orElse(null)
;
}
diff --git a/core/applib/src/main/java/org/apache/isis/applib/tree/TreeNode_iteratorHierarchyUp.java b/core/applib/src/main/java/org/apache/isis/applib/tree/TreeNode_iteratorHierarchyUp.java
index 62813b2..9b29e2b 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/tree/TreeNode_iteratorHierarchyUp.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/tree/TreeNode_iteratorHierarchyUp.java
@@ -29,7 +29,7 @@ class TreeNode_iteratorHierarchyUp<T> implements Iterator<TreeNode<T>> {
// -- HELPER
private TreeNode<T> fetchNext(TreeNode<T> current) {
- return current.getParent().orElse(null);
+ return current.getParentIfAny();
}
}
--
To stop receiving notification emails like this one, please contact
ahuber@apache.org.