package com.alibaba.fastjson.serializer;
import java.lang.annotation.Annotation;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Type;
import com.alibaba.fastjson.util.FieldInfo;
/**
* @since 1.2.9
*
*/
public final class BeanContext {
private final Class<?> beanClass;
private final FieldInfo fieldInfo;
private final String format;
public BeanContext(Class<?> beanClass, FieldInfo fieldInfo){
this.beanClass = beanClass;
this.fieldInfo = fieldInfo;
this.format = fieldInfo.getFormat();
}
public Class<?> getBeanClass() {
return beanClass;
}
public Method getMethod() {
return fieldInfo.method;
}
public Field getField() {
return fieldInfo.field;
}
public String getName() {
return fieldInfo.name;
}
public String getLabel() {
return fieldInfo.label;
}
public Class<?> getFieldClass() {
return fieldInfo.fieldClass;
}
public Type getFieldType() {
return fieldInfo.fieldType;
}
public int getFeatures() {
return fieldInfo.serialzeFeatures;
}
public boolean isJsonDirect() {
return this.fieldInfo.jsonDirect;
}
public <T extends Annotation> T getAnnation(Class<T> annotationClass) {
return fieldInfo.getAnnation(annotationClass);
}
public String getFormat() {
return format;
}
}