ProcessingEnvironment — 어노테이션 처리 환경 인터페이스

ProcessingEnvironment — 어노테이션 처리 환경 인터페이스

어노테이션 처리 도구 프레임워크는 어노테이션 프로세서에게 이 인터페이스를 구현한 객체를 제공해요. 프로세서는 이 객체를 통해 프레임워크가 제공하는 시설(facility)을 사용해 새 파일을 작성하고, 오류 메시지를 보고하며, 기타 유틸리티를 찾을 수 있어요.

제3자는 이 인터페이스의 시설 객체를 감싸는 가치 추가 래퍼(예: 여러 프로세서가 단일 소스 파일 작성을 조율하게 해 주는 Filer 확장)를 만들고 싶어할 수 있어요. 이를 지원하려면, API를 통한 부수 효과가 서로에게 보일 수 있는 환경에서 실행되는 프로세서에게 도구 인프라는 서로 .equals한 대응 시설 객체와 .equalsFiler 등을 제공해야 해요. 또한 실행되는 어노테이션 프로세서 관점에서 적어도 선택된 헬퍼 클래스 부분집합이 같은 클래스 로더에 의해 로드된 것으로 보이도록 도구 호출을 구성할 수 있어야 해요.

출처: Java API Reference

본문

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

public interface ProcessingEnvironment

프로세서는 다음 메서드로 프레임워크의 각종 시설에 접근해요.

Modifier and Type Method 설명
Elements getElementUtils() 요소(element)를 다루는 유틸리티 메서드 구현을 반환해요.
Filer getFiler() 새 소스·클래스·보조 파일을 만드는 데 쓰는 필러(filer)를 반환해요.
Locale getLocale() 현재 로케일을 반환하고, 적용 중인 로케일이 없으면 null을 반환해요.
Messager getMessager() 오류·경고·기타 알림을 보고하는 데 쓰는 메시저(messager)를 반환해요.
Map<String,String> getOptions() 어노테이션 처리 도구에 전달된 프로세서별 옵션을 반환해요.
SourceVersion getSourceVersion() 생성된 소스·클래스 파일이 맞춰야 하는 소스 버전을 반환해요.
Types getTypeUtils() 타입(type)을 다루는 유틸리티 메서드 구현을 반환해요.
default boolean isPreviewEnabled() 프리뷰 기능이 활성화되어 있으면 true, 그렇지 않으면 false를 반환해요.

도구 인프라는 같은 베이스 시설 객체가 이미 래핑됐는지 여부를 래퍼 클래스의 구현이 알아야 하므로, 시설 객체들은 공유 상태를 관리해요. Since: 1.6.

더 알아보기 (Learn more)

Java 공식 API