TreePath
TreePath (소스 트리 경로)
트리 노드들의 경로를 나타내는 클래스로, 한 Tree 노드에서 최상위 CompilationUnitTree 노드까지 이르는 조상 노드들의 연속을 표현합니다. 소스 코드 추상 구문 트리에서 특정 노드의 중첩 위치를 다룰 때 사용해요.
본문
TreePath는 Iterable<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를 반환해요.