package com.jqmobile.core.server.db.orm2;
import java.util.UUID;
public enum DefaultTypeRelation{
// <tr><td>UUID</td><td>binary(16)</td></tr>
// * <tr><td>boolean</td><td>boolean</td></tr>
// * <tr><td>byte</td><td>binary</td></tr>
// * <tr><td>short</td><td>smallint</td></tr>
// * <tr><td>int</td><td>int</td></tr>
// * <tr><td>float</td><td>float</td></tr>
// * <tr><td>double</td><td>decimal(17,5)</td></tr>
// * <tr><td>String</td><td>nvarchar</td></tr>
// * <tr><td>long</td><td>bigint(20)</td></tr>
// * <tr><td>Date</td><td>datetime</td></tr>
Boolean("boolean",false,boolean.class,Boolean.class),
Int("int",false,int.class,Integer.class),
Float("float",false,float.class,Float.class),
Short("smallint",false,short.class,Short.class),
Byte("binary",false,byte.class,Byte.class),
Bytes("binary",true,DefaultTypeRelation.DefaultLength,byte[].class,Byte[].class),
Double("decimal(17,5)",false,double.class,Double.class),
Long("bigint(20)",false,long.class,Long.class),
String("nvarchar",true,DefaultTypeRelation.DefaultLength,String.class),
UUID("binary(16)",false,UUID.class);
private final static int DefaultLength=100;
private Class<?>[] javaClass;
private String dbType;
private boolean havLength;
private int defaultLength;
private DefaultTypeRelation(String dbType,boolean havLength,Class<?>...classes){
this.dbType=dbType;
this.havLength = havLength;
this.javaClass = classes;
}
private DefaultTypeRelation(String dbType,boolean havLength,int defaultLength,Class<?>...classes){
this.dbType=dbType;
this.havLength = havLength;
this.defaultLength = defaultLength;
this.javaClass = classes;
}
public boolean isHavLength() {
return havLength;
}
public Class<?>[] getJavaClass() {
return javaClass;
}
public void setJavaClass(Class<?>[] javaClass) {
this.javaClass = javaClass;
}
public String getDbType() {
return dbType;
}
public void setDbType(String dbType) {
this.dbType = dbType;
}
public int getDefaultLength() {
return defaultLength;
}
public void setDefaultLength(int defaultLength) {
this.defaultLength = defaultLength;
}
public void setHavLength(boolean havLength) {
this.havLength = havLength;
}
public static DefaultTypeRelation getByClass(String className){
for(DefaultTypeRelation dtr : DefaultTypeRelation.values()){
Class<?>[] cs = dtr.getJavaClass();
if(null == cs){
return null;
}
for(Class<?> c : cs){
if(c.getName().equals(className)) return dtr;
}
}
return null;
}
public static DefaultTypeRelation getByColumnType(String type){
for(DefaultTypeRelation dtr : DefaultTypeRelation.values()){
if(dtr.getDbType().equals(type)){
return dtr;
}
}
return null;
}
}