RoundEnvironment — 어노테이션 처리 라운드 환경 인터페이스
RoundEnvironment — 어노테이션 처리 라운드 환경 인터페이스
어노테이션 처리 도구 프레임워크는 어노테이션 프로세서에게 이 인터페이스를 구현한 객체를 제공해요. 프로세서는 이 객체를 통해 어노테이션 처리 한 라운드(round)에 대한 정보를 질의할 수 있어요.
한 라운드란 처리 과정에서 프로세서가 이전 라운드가 생성한 소스·클래스 파일의 어노테이션을 처리하도록 요청받는 단위예요. RoundEnvironment는 그 라운드의 루트 요소, 오류 발생 여부, 처리 종료 여부 등을 알려줘요.
본문
이 인터페이스의 선언은 다음과 같아요.
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()는 라운드 상태를 판단할 때 사용해요.