package com.taobao.easyweb.core.groovy.annotation; import com.taobao.easyweb.core.app.App; import groovy.lang.GroovyObject; import java.io.File; import java.lang.annotation.Annotation; /** * Annotation���� * * @author jimmey */ public abstract class AnnotationParser { private ParsePhase[] parsePhases; public AnnotationParser() { this(new ParsePhase[]{ParsePhase.Init}); } public AnnotationParser(ParsePhase[] parsePhases) { this.parsePhases = parsePhases; AnnotationParserFactory.regist(this); } public ParsePhase[] getParsePhases() { return parsePhases; } public void setParsePhases(ParsePhase[] parsePhases) { this.parsePhases = parsePhases; } /** * �Ƿ��DZ�parser֧�ֵ�annotation * * @param annotation * @return */ public abstract boolean isParse(Annotation annotation); /** * ����ǣ�������Ӧ�Ĵ��� * * @param annotation * @param file �ļ���ַ * @param target ע���Ӧ�Ķ���Class��Method * @param groovyObject groovy���� */ public abstract void parse(App app, Annotation annotation, File file, Object target, GroovyObject groovyObject); public enum ParsePhase { Init,//groovyObject��ʼ���׶� Ioc//groovy����ע��׶� } }