TreePath

TreePath (소스 트리 경로)

트리 노드들의 경로를 나타내는 클래스로, 한 Tree 노드에서 최상위 CompilationUnitTree 노드까지 이르는 조상 노드들의 연속을 표현합니다. 소스 코드 추상 구문 트리에서 특정 노드의 중첩 위치를 다룰 때 사용해요.

출처: Java API Reference

본문

TreePathIterable<Tree>를 구현하므로 경로에 포함된 노드들을 순회할 수 있어요. 이 경로 개념은 com.sun.source의 트리 API 전반에서 조상-자손 관계를 나타내는 기본 단위로 쓰입니다. 예를 들어 어떤 트리 노드가 어느 클래스 안에 들어 있는지, 어느 메서드 안에 위치하는지 등을 경로를 통해 파악할 수 있어요.

생성자

  • TreePath(CompilationUnitTree node) — 루트 노드를 위한 경로를 만듭니다. 컴파일 단위 자체가 루트가 돼요.

  • TreePath(TreePath path, Tree tree) — 자식 노드를 위한 경로를 만듭니다. 부모 경로 path와 자식 노드 tree를 받아 확장합니다.

주요 메서드

  • getPath(CompilationUnitTree unit, Tree target) — 컴파일 단위 안에서 타깃 노드의 경로를 찾아 반환하고, 못 찾으면 null이에요.

  • getPath(TreePath path, Tree target)TreePath로 식별되는 하위 트리 안에서 타깃 노드의 경로를 찾습니다.

  • getCompilationUnit() — 이 경로와 연결된 컴파일 단위를 반환해요.

  • getLeaf() — 이 경로의 잎 노드(리프)를 반환합니다. 경로가 가리키는 대상 노드라고 보면 돼요.

  • getParentPath() — 이 노드를 감싸는 부모 노드의 경로를 반환하고, 부모가 없으면 null입니다.

  • iterator() — 잎 노드에서 루트 방향으로 순회하는 Iterator를 반환해요.

더 알아보기

Java 공식 API