Interface Treeable<T extends Treeable<T>>

Type Parameters:
T - 구체적인 OM 클래스 타입 (Self-Reference)

public interface Treeable<T extends Treeable<T>>
트리/계층 구조를 가지는 OM 객체들의 공통 인터페이스
  • Method Summary

    Modifier and Type
    Method
    Description
    각 OM 클래스에서 필수 구현
    default int
    현재 노드 깊이(Depth) 계산 (루트가 0)
    각 OM 클래스에서 필수 구현
    default List<T>
    루트 노드까지 올려다보며 탐색 (Self -> Root)
    default boolean
    리프(최하위) 노드 여부
    default boolean
    공통 재귀 및 순회 로직 (Default Methods) 루트 노드 여부 ( 자신이 부모와 같으면 Root 로 판정한다.)
    default Stream<T>
    모든 하위 노드(자손들)를 평탄화(Flatten)하여 Stream으로 반환
    default void
    전위 순회 (Pre-order Traversal) - Depth First Search
  • Method Details

    • getParent

      T getParent()
      각 OM 클래스에서 필수 구현
      Returns:
    • getChildren

      List<T> getChildren()
      각 OM 클래스에서 필수 구현
      Returns:
    • isRoot

      default boolean isRoot()
      공통 재귀 및 순회 로직 (Default Methods) 루트 노드 여부 ( 자신이 부모와 같으면 Root 로 판정한다.)
      Returns:
    • isLeaf

      default boolean isLeaf()
      리프(최하위) 노드 여부
      Returns:
    • getPathToRoot

      default List<T> getPathToRoot()
      루트 노드까지 올려다보며 탐색 (Self -> Root)
      Returns:
    • getDepth

      default int getDepth()
      현재 노드 깊이(Depth) 계산 (루트가 0)
      Returns:
    • traversePreOrder

      default void traversePreOrder(Consumer<T> action)
      전위 순회 (Pre-order Traversal) - Depth First Search
      Parameters:
      action -
    • streamDescendants

      default Stream<T> streamDescendants()
      모든 하위 노드(자손들)를 평탄화(Flatten)하여 Stream으로 반환
      Returns: