package jef.database.meta;
import java.lang.annotation.Annotation;
import java.lang.reflect.Field;
import java.lang.reflect.Type;
/**
* 得到一个实体的配置信息
*
* @author jiyi
*
*/
public interface AnnotationProvider {
/**
* 得到在类上的注解
*
* @param type
* @return
*/
<T extends Annotation> T getAnnotation(Class<T> type);
/**
* 得到对象的名称
*
* @return
*/
String getName();
public interface ClassAnnotationProvider extends AnnotationProvider {
/**
* 得到在属性上的注解
*
* @param field
* @param type
* @return
*/
FieldAnnotationProvider forField(Field field);
}
public interface FieldAnnotationProvider extends AnnotationProvider{
Class<?> getDeclaringClass();
Type getGenericType();
Class<?> getType();
}
}