TaskEvent

TaskEvent (컴파일 작업 이벤트)

javac가 수행한 작업에 대한 세부 정보를 담는 불변 클래스입니다. 컴파일 과정에서 일어난 일(파싱, 분석, 생성 같은 단계)을 TaskListener에게 알릴 때 사용되는 이벤트 객체예요.

출처: Java API Reference

본문

TaskEvent는 어떤 작업이 일어났는지를 나타내는 TaskEvent.Kind와, 그 작업과 연결된 소스 파일·컴파일 단위·타입 요소 정보를 함께 담습니다. javac 플러그인이나 애노테이션 처리기에서 컴파일 진행 상황을 감시할 때 TaskListener와 짝을 이루어 사용돼요.

이벤트 종류를 나타내는 TaskEvent.Kind 열거형은 중첩 클래스로 정의되어 있습니다.

생성자

  • TaskEvent(TaskEvent.Kind kind) — 종류만 지정한 이벤트입니다. 소스 파일, 컴파일 단위, 타입 요소는 모두 null로 설정돼요.

  • TaskEvent(TaskEvent.Kind kind, JavaFileObject sourceFile) — 종류와 소스 파일을 지정합니다. 컴파일 단위와 타입 요소는 null이에요.

  • TaskEvent(TaskEvent.Kind kind, CompilationUnitTree unit) — 종류와 컴파일 단위를 지정합니다. 소스 파일은 컴파일 단위에서 얻고, 타입 요소는 null이에요.

  • TaskEvent(TaskEvent.Kind kind, CompilationUnitTree unit, TypeElement clazz) — 종류, 컴파일 단위, 타입 요소를 모두 지정합니다. 소스 파일은 컴파일 단위에서 얻어요.

메서드

  • getKind() — 이 이벤트의 종류를 반환합니다.

  • getSourceFile() — 이벤트와 연결된 소스 파일을 반환하고, 없으면 null이에요.

  • getCompilationUnit() — 이벤트와 연결된 컴파일 단위를 반환하고, 없으면 null입니다.

  • getTypeElement() — 이벤트와 연결된 타입 요소를 반환하고, 없으면 null이에요.

생성자가 null로 남겨둔 항목은 그 getternull을 돌려주므로, 사용 시점에 확인이 필요해요. 예를 들어 종류만 있는 이벤트라면 컴파일 단위나 타입 요소가 null일 수 있으니, 접근하기 전에 널 여부를 검사하는 편이 안전합니다. 이벤트는 컴파일 전반의 흐름을 추적하는 데 아주 유용하게 쓰여요.

더 알아보기

Java 공식 API