RoundEnvironment — 어노테이션 처리 라운드 환경 인터페이스

RoundEnvironment — 어노테이션 처리 라운드 환경 인터페이스

어노테이션 처리 도구 프레임워크는 어노테이션 프로세서에게 이 인터페이스를 구현한 객체를 제공해요. 프로세서는 이 객체를 통해 어노테이션 처리 한 라운드(round)에 대한 정보를 질의할 수 있어요.

한 라운드란 처리 과정에서 프로세서가 이전 라운드가 생성한 소스·클래스 파일의 어노테이션을 처리하도록 요청받는 단위예요. RoundEnvironment는 그 라운드의 루트 요소, 오류 발생 여부, 처리 종료 여부 등을 알려줘요.

출처: Java API Reference

본문

이 인터페이스의 선언은 다음과 같아요.

public interface RoundEnvironment

주요 메서드는 다음과 같아요.

Modifier and Type Method 설명
boolean errorRaised() 이전 처리 라운드에서 오류가 발생했으면 true, 그렇지 않으면 false를 반환해요.
Set<? extends Element> getElementsAnnotatedWith(Class<? extends Annotation> a) 주어진 어노테이션 인터페이스로 어노테이션된 요소를 반환해요.
Set<? extends Element> getElementsAnnotatedWith(TypeElement a) 주어진 어노테이션 인터페이스로 어노테이션된 요소를 반환해요.
default Set<? extends Element> getElementsAnnotatedWithAny(Set<Class<? extends Annotation>> annotations) 주어진 어노테이션 인터페이스 중 하나 이상으로 어노테이션된 요소를 반환해요.
default Set<? extends Element> getElementsAnnotatedWithAny(TypeElement... annotations) 주어진 어노테이션 인터페이스 중 하나 이상으로 어노테이션된 요소를 반환해요.
Set<? extends Element> getRootElements() 이전 라운드가 생성한 어노테이션 처리를 위한 루트 요소를 반환해요.
boolean processingOver() 이 라운드가 생성한 타입이 이후 어노테이션 처리 라운드의 대상이 되지 않으면 true, 그렇지 않으면 false를 반환해요.

getElementsAnnotatedWith 계열은 특정 어노테이션으로 어노테이션된 요소를 찾을 때 쓰고, getRootElements()는 현재 라운드의 처리 대상을 얻을 때, errorRaised()processingOver()는 라운드 상태를 판단할 때 사용해요.

더 알아보기 (Learn more)

Java 공식 API