001 package railo.commons.lang; 002 003 004 005 public final class CFTypes { 006 // FUTURE sollten auch pattern wie zip unterstuetzt sein 007 008 /** 009 * Field <code>TYPE_ANY</code> 010 */ 011 public static final short TYPE_ANY=0; 012 /** 013 * Field <code>TYPE_ARRAY</code> 014 */ 015 public static final short TYPE_ARRAY=1; 016 /** 017 * Field <code>TYPE_BOOLEAN</code> 018 */ 019 public static final short TYPE_BASE64=20; 020 /** 021 * Field <code>TYPE_BOOLEAN</code> 022 */ 023 public static final short TYPE_BOOLEAN=2; 024 /** 025 * Field <code>TYPE_BINARY</code> 026 */ 027 public static final short TYPE_BINARY=3; 028 /** 029 * Field <code>TYPE_DATETIME</code> 030 */ 031 public static final short TYPE_DATETIME=4; 032 /** 033 * Field <code>TYPE_NUMERIC</code> 034 */ 035 public static final short TYPE_NUMERIC=5; 036 /** 037 * Field <code>TYPE_QUERY</code> 038 */ 039 public static final short TYPE_QUERY=6; 040 /** 041 * Field <code>TYPE_STRING</code> 042 */ 043 public static final short TYPE_STRING=7; 044 /** 045 * Field <code>TYPE_STRUCT</code> 046 */ 047 public static final short TYPE_STRUCT=8; 048 /** 049 * Field <code>TYPE_TIMESPAN</code> 050 */ 051 public static final short TYPE_TIMESPAN=9; 052 /** 053 * Field <code>TYPE_UUID</code> 054 */ 055 public static final short TYPE_UUID=10; 056 /** 057 * Field <code>TYPE_VARIABLE_NAME</code> 058 */ 059 public static final short TYPE_VARIABLE_NAME=11; 060 /** 061 * Field <code>TYPE_VARIABLE_STRING</code> 062 */ 063 public static final short TYPE_VARIABLE_STRING=12; 064 /** 065 * Field <code>TYPE_UNKNOW</code> 066 */ 067 public static final short TYPE_UNKNOW=-1; 068 /** 069 * Field <code>TYPE_UNKNOW</code> 070 */ 071 public static final short TYPE_UNDEFINED=14; 072 /** 073 * Field <code>TYPE_VOID</code> 074 */ 075 public static final short TYPE_VOID=15; 076 077 /** 078 * Field <code>TYPE_XML</code> 079 */ 080 public static final short TYPE_XML = 16; 081 082 /** 083 * Field <code>TYPE_SIZE</code> 084 */ 085 public static final short TYPE_SIZE = 21; 086 087 public static final short TYPE_GUID = 22; 088 089 /** 090 * Wandelt einen String Datentypen in ein CFML short Typ um. 091 * @param type 092 * @param defaultValue 093 * @return short Data Type 094 */ 095 public static String toString(int type,String defaultValue) { 096 switch(type){ 097 case TYPE_ANY:return "any"; 098 case TYPE_ARRAY:return "array"; 099 case TYPE_BASE64:return "base64"; 100 case TYPE_BINARY:return "binary"; 101 case TYPE_BOOLEAN:return "boolean"; 102 case TYPE_DATETIME:return "datetime"; 103 case TYPE_GUID:return "guid"; 104 case TYPE_NUMERIC:return "numeric"; 105 case TYPE_QUERY:return "query"; 106 case TYPE_STRING:return "string"; 107 case TYPE_STRUCT:return "struct"; 108 case TYPE_TIMESPAN:return "timespan"; 109 case TYPE_UNDEFINED:return "any"; 110 case TYPE_UNKNOW:return "any"; 111 case TYPE_UUID:return "uuid"; 112 case TYPE_VARIABLE_NAME:return "variablename"; 113 case TYPE_VARIABLE_STRING:return "variablestring"; 114 case TYPE_VOID:return "void"; 115 case TYPE_XML:return "xml"; 116 } 117 return defaultValue; 118 119 } 120 121 public static short toShortStrict(String type, short defaultValue) { 122 type=type.toLowerCase().trim(); 123 if(type.length()>2) { 124 char first=type.charAt(0); 125 switch(first) { 126 case 'a': 127 if(type.equals("any")) return TYPE_ANY; 128 if(type.equals("array")) return TYPE_ARRAY; 129 break; 130 case 'b': 131 if(type.equals("boolean") || type.equals("bool")) return TYPE_BOOLEAN; 132 if(type.equals("binary")) return TYPE_BINARY; 133 134 break; 135 case 'd': 136 if(type.equals("date") || type.equals("datetime")) return TYPE_DATETIME; 137 break; 138 case 'g': 139 if("guid".equals(type)) return TYPE_GUID; 140 break; 141 case 'n': 142 if(type.equals("numeric")) return TYPE_NUMERIC; 143 else if(type.equals("number")) return TYPE_NUMERIC; 144 break; 145 case 'o': 146 if(type.equals("object")) return TYPE_ANY; 147 break; 148 case 'q': 149 if(type.equals("query")) return TYPE_QUERY; 150 break; 151 case 's': 152 if(type.equals("string")) return TYPE_STRING; 153 else if(type.equals("struct")) return TYPE_STRUCT; 154 break; 155 case 't': 156 if(type.equals("timespan")) return TYPE_TIMESPAN; 157 if(type.equals("time")) return TYPE_DATETIME; 158 if(type.equals("timestamp")) return TYPE_DATETIME; 159 break; 160 case 'u': 161 if(type.equals("uuid")) return TYPE_UUID; 162 break; 163 case 'v': 164 if(type.equals("variablename")) return TYPE_VARIABLE_NAME; 165 if(type.equals("variable_name")) return TYPE_VARIABLE_NAME; 166 if(type.equals("variablestring")) return TYPE_VARIABLE_STRING; 167 if(type.equals("variable_string")) return TYPE_VARIABLE_STRING; 168 if(type.equals("void")) return TYPE_VOID; 169 break; 170 case 'x': 171 if(type.equals("xml")) return TYPE_XML; 172 break; 173 } 174 } 175 return defaultValue; 176 } 177 178 public static short toShort(String type, short defaultValue) { 179 type=type.toLowerCase().trim(); 180 if(type.length()>2) { 181 char first=type.charAt(0); 182 switch(first) { 183 case 'a': 184 if(type.equals("any")) return TYPE_ANY; 185 if(type.equals("array")) return TYPE_ARRAY; 186 break; 187 case 'b': 188 if(type.equals("boolean") || type.equals("bool")) return TYPE_BOOLEAN; 189 if(type.equals("binary")) return TYPE_BINARY; 190 if(type.equals("bigint")) return TYPE_NUMERIC; 191 if("base64".equals(type))return TYPE_STRING; 192 193 break; 194 case 'c': 195 if("char".equals(type))return TYPE_STRING; 196 197 break; 198 case 'd': 199 if("double".equals(type)) return TYPE_NUMERIC; 200 if("decimal".equals(type)) return TYPE_STRING; 201 if(type.equals("date") || type.equals("datetime")) return TYPE_DATETIME; 202 break; 203 204 case 'e': 205 if("eurodate".equals(type)) return TYPE_DATETIME; 206 break; 207 case 'f': 208 if("float".equals(type)) return TYPE_NUMERIC; 209 break; 210 case 'g': 211 if("guid".equals(type)) return TYPE_GUID; 212 break; 213 214 case 'i': 215 if("int".equals(type)) return TYPE_NUMERIC; 216 if("integer".equals(type)) return TYPE_NUMERIC; 217 break; 218 219 case 'l': 220 if("long".equals(type)) return TYPE_NUMERIC; 221 break; 222 223 case 'm': 224 if("memory".equals(type)) return TYPE_STRING; 225 break; 226 227 case 'n': 228 if(type.equals("numeric")) return TYPE_NUMERIC; 229 else if(type.equals("number")) return TYPE_NUMERIC; 230 else if(type.equals("node")) return TYPE_XML; 231 else if(type.equals("nvarchar")) return TYPE_STRING; 232 else if(type.equals("nchar")) return TYPE_STRING; 233 break; 234 case 'o': 235 if(type.equals("object")) return TYPE_ANY; 236 if(type.equals("other")) return TYPE_ANY; 237 break; 238 case 'q': 239 if(type.equals("query")) return TYPE_QUERY; 240 break; 241 case 's': 242 if(type.equals("string")) return TYPE_STRING; 243 else if(type.equals("struct")) return TYPE_STRUCT; 244 if("short".equals(type))return TYPE_NUMERIC; 245 break; 246 case 't': 247 if(type.equals("timespan")) return TYPE_TIMESPAN; 248 if(type.equals("time")) return TYPE_DATETIME; 249 if(type.equals("timestamp")) return TYPE_DATETIME; 250 if(type.equals("text")) return TYPE_STRING; 251 break; 252 case 'u': 253 if(type.equals("uuid")) return TYPE_UUID; 254 if("usdate".equals(type))return TYPE_DATETIME; 255 break; 256 case 'v': 257 if(type.equals("variablename")) return TYPE_VARIABLE_NAME; 258 if(type.equals("variable_name")) return TYPE_VARIABLE_NAME; 259 if(type.equals("variablestring")) return TYPE_VARIABLE_STRING; 260 if(type.equals("variable_string")) return TYPE_VARIABLE_STRING; 261 if(type.equals("void")) return TYPE_VOID; 262 if(type.equals("varchar")) return TYPE_STRING; 263 break; 264 case 'x': 265 if(type.equals("xml")) return TYPE_XML; 266 break; 267 } 268 } 269 return defaultValue; 270 } 271 }