package railo.commons.lang; public final class CFTypes { /** * Field <code>TYPE_ANY</code> */ public static final short TYPE_ANY=0; /** * Field <code>TYPE_ARRAY</code> */ public static final short TYPE_ARRAY=1; /** * Field <code>TYPE_BOOLEAN</code> */ public static final short TYPE_BASE64=20; /** * Field <code>TYPE_BOOLEAN</code> */ public static final short TYPE_BOOLEAN=2; /** * Field <code>TYPE_BINARY</code> */ public static final short TYPE_BINARY=3; /** * Field <code>TYPE_DATETIME</code> */ public static final short TYPE_DATETIME=4; /** * Field <code>TYPE_NUMERIC</code> */ public static final short TYPE_NUMERIC=5; /** * Field <code>TYPE_QUERY</code> */ public static final short TYPE_QUERY=6; /** * Field <code>TYPE_STRING</code> */ public static final short TYPE_STRING=7; /** * Field <code>TYPE_STRUCT</code> */ public static final short TYPE_STRUCT=8; /** * Field <code>TYPE_TIMESPAN</code> */ public static final short TYPE_TIMESPAN=9; /** * Field <code>TYPE_UUID</code> */ public static final short TYPE_UUID=10; /** * Field <code>TYPE_VARIABLE_NAME</code> */ public static final short TYPE_VARIABLE_NAME=11; /** * Field <code>TYPE_VARIABLE_STRING</code> */ public static final short TYPE_VARIABLE_STRING=12; /** * Field <code>TYPE_UNKNOW</code> */ public static final short TYPE_UNKNOW=-1; /** * Field <code>TYPE_UNKNOW</code> */ public static final short TYPE_UNDEFINED=14; /** * Field <code>TYPE_VOID</code> */ public static final short TYPE_VOID=15; /** * Field <code>TYPE_XML</code> */ public static final short TYPE_XML = 16; /** * Field <code>TYPE_SIZE</code> */ public static final short TYPE_SIZE = 21; public static final short TYPE_GUID = 22; public static final short TYPE_FUNCTION = 23; public static final short TYPE_QUERY_COLUMN=24; /** * Wandelt einen String Datentypen in ein CFML short Typ um. * @param type * @param defaultValue * @return short Data Type */ public static String toString(int type,String defaultValue) { switch(type){ case TYPE_ANY:return "any"; case TYPE_ARRAY:return "array"; case TYPE_BASE64:return "base64"; case TYPE_BINARY:return "binary"; case TYPE_BOOLEAN:return "boolean"; case TYPE_DATETIME:return "datetime"; case TYPE_GUID:return "guid"; case TYPE_NUMERIC:return "numeric"; case TYPE_QUERY:return "query"; case TYPE_QUERY_COLUMN:return "querycolumn"; case TYPE_STRING:return "string"; case TYPE_STRUCT:return "struct"; case TYPE_TIMESPAN:return "timespan"; case TYPE_UNDEFINED:return "any"; case TYPE_UNKNOW:return "any"; case TYPE_UUID:return "uuid"; case TYPE_VARIABLE_NAME:return "variablename"; case TYPE_VARIABLE_STRING:return "variablestring"; case TYPE_VOID:return "void"; case TYPE_XML:return "xml"; case TYPE_FUNCTION:return "function"; } return defaultValue; } public static short toShortStrict(String type, short defaultValue) { type=type.toLowerCase().trim(); if(type.length()>2) { char first=type.charAt(0); switch(first) { case 'a': if(type.equals("any")) return TYPE_ANY; if(type.equals("array")) return TYPE_ARRAY; break; case 'b': if(type.equals("boolean") || type.equals("bool")) return TYPE_BOOLEAN; if(type.equals("binary")) return TYPE_BINARY; break; case 'd': if(type.equals("date") || type.equals("datetime")) return TYPE_DATETIME; case 'f': if(type.equals("function")) return TYPE_FUNCTION; break; case 'g': if("guid".equals(type)) return TYPE_GUID; break; case 'n': if(type.equals("numeric")) return TYPE_NUMERIC; else if(type.equals("number")) return TYPE_NUMERIC; break; case 'o': if(type.equals("object")) return TYPE_ANY; break; case 'q': if(type.equals("query")) return TYPE_QUERY; if(type.equals("querycolumn")) return TYPE_QUERY_COLUMN; break; case 's': if(type.equals("string")) return TYPE_STRING; else if(type.equals("struct")) return TYPE_STRUCT; break; case 't': if(type.equals("timespan")) return TYPE_TIMESPAN; if(type.equals("time")) return TYPE_DATETIME; if(type.equals("timestamp")) return TYPE_DATETIME; break; case 'u': if(type.equals("uuid")) return TYPE_UUID; break; case 'v': if(type.equals("variablename")) return TYPE_VARIABLE_NAME; if(type.equals("variable_name")) return TYPE_VARIABLE_NAME; if(type.equals("variablestring")) return TYPE_VARIABLE_STRING; if(type.equals("variable_string")) return TYPE_VARIABLE_STRING; if(type.equals("void")) return TYPE_VOID; break; case 'x': if(type.equals("xml")) return TYPE_XML; break; } } return defaultValue; } public static short toShort(String type, boolean alsoAlias, short defaultValue) { type=type.toLowerCase().trim(); if(type.length()>2) { char first=type.charAt(0); switch(first) { case 'a': if(type.equals("any")) return TYPE_ANY; if(type.equals("array")) return TYPE_ARRAY; break; case 'b': if(type.equals("boolean") || (alsoAlias && type.equals("bool"))) return TYPE_BOOLEAN; if(type.equals("binary")) return TYPE_BINARY; if(alsoAlias && type.equals("bigint")) return TYPE_NUMERIC; if("base64".equals(type))return TYPE_STRING; break; case 'c': if(alsoAlias && "char".equals(type))return TYPE_STRING; break; case 'd': if(alsoAlias && "double".equals(type)) return TYPE_NUMERIC; if(alsoAlias && "decimal".equals(type)) return TYPE_STRING; if(type.equals("date") || type.equals("datetime")) return TYPE_DATETIME; break; case 'e': if("eurodate".equals(type)) return TYPE_DATETIME; break; case 'f': if(alsoAlias && "float".equals(type)) return TYPE_NUMERIC; if("function".equals(type)) return TYPE_FUNCTION; break; case 'g': if("guid".equals(type)) return TYPE_GUID; break; case 'i': if(alsoAlias && ("int".equals(type) || "integer".equals(type))) return TYPE_NUMERIC; break; case 'l': if(alsoAlias && "long".equals(type)) return TYPE_NUMERIC; break; case 'n': if(type.equals("numeric")) return TYPE_NUMERIC; else if(type.equals("number")) return TYPE_NUMERIC; if(alsoAlias) { if(type.equals("node")) return TYPE_XML; else if(type.equals("nvarchar")) return TYPE_STRING; else if(type.equals("nchar")) return TYPE_STRING; } break; case 'o': if(type.equals("object")) return TYPE_ANY; if(alsoAlias && type.equals("other")) return TYPE_ANY; break; case 'q': if(type.equals("query")) return TYPE_QUERY; if(type.equals("querycolumn")) return TYPE_QUERY_COLUMN; break; case 's': if(type.equals("string")) return TYPE_STRING; else if(type.equals("struct")) return TYPE_STRUCT; if(alsoAlias && "short".equals(type))return TYPE_NUMERIC; break; case 't': if(type.equals("timespan")) return TYPE_TIMESPAN; if(type.equals("time")) return TYPE_DATETIME; if(alsoAlias && type.equals("timestamp")) return TYPE_DATETIME; if(alsoAlias && type.equals("text")) return TYPE_STRING; break; case 'u': if(type.equals("uuid")) return TYPE_UUID; if(alsoAlias && "usdate".equals(type))return TYPE_DATETIME; if(alsoAlias && "udf".equals(type))return TYPE_FUNCTION; break; case 'v': if(type.equals("variablename")) return TYPE_VARIABLE_NAME; if(alsoAlias && type.equals("variable_name")) return TYPE_VARIABLE_NAME; if(type.equals("variablestring")) return TYPE_VARIABLE_STRING; if(alsoAlias && type.equals("variable_string")) return TYPE_VARIABLE_STRING; if(type.equals("void")) return TYPE_VOID; if(alsoAlias && type.equals("varchar")) return TYPE_STRING; break; case 'x': if(type.equals("xml")) return TYPE_XML; break; } } return defaultValue; } public static boolean isSimpleType(short type) { return type==TYPE_BOOLEAN || type==TYPE_DATETIME || type==TYPE_NUMERIC || type==TYPE_STRING; } }