package cn.org.rapid_framework.generator.provider.java.model;
import java.lang.annotation.Annotation;
import java.lang.reflect.Field;
import cn.org.rapid_framework.generator.util.typemapping.ActionScriptDataTypesUtils;
public class JavaField {
private Field field;
private JavaClass clazz; //与field相关联的class
public JavaField(Field field, JavaClass clazz) {
super();
this.field = field;
this.clazz = clazz;
}
public String getFieldName() {
return field.getName();
}
public JavaClass getClazz() {
return clazz;
}
public String getJavaType() {
return field.getType().getName();
}
public String getAsType() {
return ActionScriptDataTypesUtils.getPreferredAsType(getJavaType());
}
public Annotation[] getAnnotations() {
return field.getAnnotations();
}
public boolean getIsDateTimeField() {
return getJavaType().equalsIgnoreCase("java.util.Date")
|| getJavaType().equalsIgnoreCase("java.sql.Date")
|| getJavaType().equalsIgnoreCase("java.sql.Timestamp")
|| getJavaType().equalsIgnoreCase("java.sql.Time");
}
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((field == null) ? 0 : field.hashCode());
return result;
}
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
JavaField other = (JavaField) obj;
if (field == null) {
if (other.field != null)
return false;
} else if (!field.equals(other.field))
return false;
return true;
}
public String toString() {
return "JavaClass:"+clazz+" JavaField:"+getFieldName();
}
}