해당 구조는 크게 역할로 분류한 목록
1차 구조
•
processor 처리 역할
@ExcelModel을 처리하는 역할(이하 marking)
처리 세분화
◦
marking된 class 찾기 (AbstractProcessor상속시 어노테이션은 바로 찾을 수 있음)
◦
class에서 annotation 목록에 따른 메타 정보 추출 → 위임 →Parser
◦
추출된 메타 정보를 바탕으로 새로운 모델 변환 → 위임 →Mapper
◦
변환된 모델을 삽입하는 작업 (processor의 processingEnv에서 작업해야함. 즉, processor의 메서드로 만들어도됨)
•
class에서 annotation목록에 따른 메타 정보 추출 (Parser)
위임 사유
◦
조건과 순서에 의해 제어되는 경우가 존재함. 아래는 처리 순서
1.
class에서 @Column이 붙은 field검색, getter존재 여부 확인 → validate
2.
@Column의 priority에 따라 field배열 생성
3.
다른 어노테이션 작업 가능
주의사항
•
Style 관련 어노테이션은 class로 작업됨.
•
따라서 Style관련 class의 작업은 따로 진행.
4.
파싱된 정보를 바탕으로 Mapper가 처리할 수 있는 형태로 넘김(순서를 가진 형태)
•
추출된 메타 정보를 바탕으로 새로운 모델 변환 → 위임 →Mapper
위임 사유
◦
메타 데이터를 의미있는 객체로 변환.
◦
javapoet 관련한 템플릿 존재
•
변환된 모델을 삽입하는 작업
변환된 모델 write작업