Package com.easydesk.om
Interface Treeable<T extends Treeable<T>>
- Type Parameters:
T- 구체적인 OM 클래스 타입 (Self-Reference)
public interface Treeable<T extends Treeable<T>>
트리/계층 구조를 가지는 OM 객체들의 공통 인터페이스
-
Method Summary
Modifier and TypeMethodDescription각 OM 클래스에서 필수 구현default intgetDepth()현재 노드 깊이(Depth) 계산 (루트가 0)각 OM 클래스에서 필수 구현루트 노드까지 올려다보며 탐색 (Self -> Root)default booleanisLeaf()리프(최하위) 노드 여부default booleanisRoot()공통 재귀 및 순회 로직 (Default Methods) 루트 노드 여부 ( 자신이 부모와 같으면 Root 로 판정한다.)모든 하위 노드(자손들)를 평탄화(Flatten)하여 Stream으로 반환default voidtraversePreOrder(Consumer<T> action) 전위 순회 (Pre-order Traversal) - Depth First Search
-
Method Details
-
getParent
T getParent()각 OM 클래스에서 필수 구현- Returns:
-
getChildren
각 OM 클래스에서 필수 구현- Returns:
-
isRoot
default boolean isRoot()공통 재귀 및 순회 로직 (Default Methods) 루트 노드 여부 ( 자신이 부모와 같으면 Root 로 판정한다.)- Returns:
-
isLeaf
default boolean isLeaf()리프(최하위) 노드 여부- Returns:
-
getPathToRoot
루트 노드까지 올려다보며 탐색 (Self -> Root)- Returns:
-
getDepth
default int getDepth()현재 노드 깊이(Depth) 계산 (루트가 0)- Returns:
-
traversePreOrder
전위 순회 (Pre-order Traversal) - Depth First Search- Parameters:
action-
-
streamDescendants
모든 하위 노드(자손들)를 평탄화(Flatten)하여 Stream으로 반환- Returns:
-