001 package railo.transformer.bytecode.util; 002 003 import org.objectweb.asm.Type; 004 import org.objectweb.asm.commons.Method; 005 006 public final class Methods_Caster { 007 008 public static final int OBJECT=0; 009 public static final int BOOLEAN=1; 010 public static final int DOUBLE=2; 011 public static final int STRING=3; 012 013 // railo.runtime.type.Array toArray (Object) 014 final public static Method TO_ARRAY = new Method("toArray", 015 Types.ARRAY, 016 new Type[]{Types.OBJECT}); 017 // String toBase64 (Object) 018 final public static Method TO_BASE64 = new Method("toBase64", 019 Types.STRING, 020 new Type[]{Types.OBJECT}); 021 // byte[] toBinary(Object) 022 final public static Method TO_BINARY = new Method("toBinary", 023 Types.BYTE_VALUE_ARRAY, 024 new Type[]{Types.OBJECT}); 025 // railo.runtime.type.Collection toCollection (Object) 026 final public static Method TO_COLLECTION = new Method("toCollection", 027 Types.COLLECTION, 028 new Type[]{Types.OBJECT}); 029 // railo.runtime.Component toComponent (Object) 030 final public static Method TO_COMPONENT = new Method("toComponent", 031 Types.COMPONENT, 032 new Type[]{Types.OBJECT}); 033 //java.io.File toFile (Object) 034 final public static Method TO_FILE = new Method("toFile", 035 Types.FILE, 036 new Type[]{Types.OBJECT}); 037 // org.w3c.dom.Node toNode (Object) 038 final public static Method TO_NODE = new Method("toNode", 039 Types.NODE, 040 new Type[]{Types.OBJECT}); 041 // Object toNull (Object) 042 final public static Method TO_NULL = new Method("toNull", 043 Types.OBJECT, 044 new Type[]{Types.OBJECT}); 045 // railo.runtime.type.Query toQuery (Object) 046 final public static Method TO_QUERY = new Method("toQuery", 047 Types.QUERY, 048 new Type[]{Types.OBJECT}); 049 // railo.runtime.type.Query toQueryColumn (Object) 050 final public static Method TO_QUERY_COLUMN = new Method("toQueryColumn", 051 Types.QUERY_COLUMN, 052 new Type[]{Types.OBJECT,Types.PAGE_CONTEXT}); 053 // railo.runtime.type.Struct toStruct (Object) 054 final public static Method TO_STRUCT = new Method("toStruct", 055 Types.STRUCT, 056 new Type[]{Types.OBJECT}); 057 // railo.runtime.type.dt.TimeSpan toTimespan (Object) 058 final public static Method TO_TIMESPAN = new Method("toTimespan", 059 Types.TIMESPAN, 060 new Type[]{Types.OBJECT}); 061 062 063 public static final Method TO_STRING_BUFFER= 064 new Method("toStringBuffer",Types.STRING_BUFFER,new Type[]{Types.OBJECT}); 065 066 // 067 public static final Method[] TO_DECIMAL=new Method[]{ 068 new Method("toDecimal",Types.STRING,new Type[]{Types.OBJECT}), 069 new Method("toDecimal",Types.STRING,new Type[]{Types.BOOLEAN_VALUE}), 070 new Method("toDecimal",Types.STRING,new Type[]{Types.DOUBLE_VALUE}), 071 new Method("toDecimal",Types.STRING,new Type[]{Types.STRING}) 072 }; 073 074 public static final Method[] TO_DATE=new Method[]{ 075 new Method("toDate",Types.DATE_TIME,new Type[]{Types.OBJECT,Types.TIMEZONE}), 076 new Method("toDate",Types.DATE_TIME,new Type[]{Types.BOOLEAN_VALUE,Types.TIMEZONE}), 077 new Method("toDate",Types.DATE_TIME,new Type[]{Types.DOUBLE_VALUE,Types.TIMEZONE}), 078 new Method("toDate",Types.DATE_TIME,new Type[]{Types.STRING,Types.TIMEZONE}) 079 }; 080 081 public static final Method[] TO_STRING=new Method[]{ 082 new Method("toString",Types.STRING,new Type[]{Types.OBJECT}), 083 new Method("toString",Types.STRING,new Type[]{Types.BOOLEAN_VALUE}), 084 new Method("toString",Types.STRING,new Type[]{Types.DOUBLE_VALUE}), 085 new Method("toString",Types.STRING,new Type[]{Types.STRING}) 086 }; 087 088 public static final Method[] TO_BOOLEAN=new Method[]{ 089 new Method("toBoolean",Types.BOOLEAN,new Type[]{Types.OBJECT}), 090 new Method("toBoolean",Types.BOOLEAN,new Type[]{Types.BOOLEAN_VALUE}), 091 new Method("toBoolean",Types.BOOLEAN,new Type[]{Types.DOUBLE_VALUE}), 092 new Method("toBoolean",Types.BOOLEAN,new Type[]{Types.STRING}) 093 }; 094 095 public static final Method[] TO_BOOLEAN_VALUE=new Method[]{ 096 new Method("toBooleanValue",Types.BOOLEAN_VALUE,new Type[]{Types.OBJECT}), 097 new Method("toBooleanValue",Types.BOOLEAN_VALUE,new Type[]{Types.BOOLEAN_VALUE}), 098 new Method("toBooleanValue",Types.BOOLEAN_VALUE,new Type[]{Types.DOUBLE_VALUE}), 099 new Method("toBooleanValue",Types.BOOLEAN_VALUE,new Type[]{Types.STRING}) 100 }; 101 102 public static final Method[] TO_BYTE=new Method[]{ 103 new Method("toByte",Types.BYTE,new Type[]{Types.OBJECT}), 104 new Method("toByte",Types.BYTE,new Type[]{Types.BOOLEAN_VALUE}), 105 new Method("toByte",Types.BYTE,new Type[]{Types.DOUBLE_VALUE}), 106 new Method("toByte",Types.BYTE,new Type[]{Types.STRING}) 107 }; 108 109 public static final Method[] TO_BYTE_VALUE=new Method[]{ 110 new Method("toByteValue",Types.BYTE_VALUE,new Type[]{Types.OBJECT}), 111 new Method("toByteValue",Types.BYTE_VALUE,new Type[]{Types.BOOLEAN_VALUE}), 112 new Method("toByteValue",Types.BYTE_VALUE,new Type[]{Types.DOUBLE_VALUE}), 113 new Method("toByteValue",Types.BYTE_VALUE,new Type[]{Types.STRING}) 114 }; 115 116 public static final Method[] TO_CHARACTER=new Method[]{ 117 new Method("toCharacter",Types.CHARACTER,new Type[]{Types.OBJECT}), 118 new Method("toCharacter",Types.CHARACTER,new Type[]{Types.BOOLEAN_VALUE}), 119 new Method("toCharacter",Types.CHARACTER,new Type[]{Types.DOUBLE_VALUE}), 120 new Method("toCharacter",Types.CHARACTER,new Type[]{Types.STRING}) 121 }; 122 123 public static final Method[] TO_CHAR_VALUE=new Method[]{ 124 new Method("toCharValue",Types.CHAR,new Type[]{Types.OBJECT}), 125 new Method("toCharValue",Types.CHAR,new Type[]{Types.BOOLEAN_VALUE}), 126 new Method("toCharValue",Types.CHAR,new Type[]{Types.DOUBLE_VALUE}), 127 new Method("toCharValue",Types.CHAR,new Type[]{Types.STRING}) 128 }; 129 130 public static final Method[] TO_SHORT=new Method[]{ 131 new Method("toShort",Types.SHORT,new Type[]{Types.OBJECT}), 132 new Method("toShort",Types.SHORT,new Type[]{Types.BOOLEAN_VALUE}), 133 new Method("toShort",Types.SHORT,new Type[]{Types.DOUBLE_VALUE}), 134 new Method("toShort",Types.SHORT,new Type[]{Types.STRING}) 135 }; 136 137 public static final Method[] TO_SHORT_VALUE=new Method[]{ 138 new Method("toShortValue",Types.SHORT_VALUE,new Type[]{Types.OBJECT}), 139 new Method("toShortValue",Types.SHORT_VALUE,new Type[]{Types.BOOLEAN_VALUE}), 140 new Method("toShortValue",Types.SHORT_VALUE,new Type[]{Types.DOUBLE_VALUE}), 141 new Method("toShortValue",Types.SHORT_VALUE,new Type[]{Types.STRING}) 142 }; 143 144 public static final Method[] TO_INTEGER=new Method[]{ 145 new Method("toInteger",Types.INTEGER,new Type[]{Types.OBJECT}), 146 new Method("toInteger",Types.INTEGER,new Type[]{Types.BOOLEAN_VALUE}), 147 new Method("toInteger",Types.INTEGER,new Type[]{Types.DOUBLE_VALUE}), 148 new Method("toInteger",Types.INTEGER,new Type[]{Types.STRING}) 149 }; 150 151 public static final Method[] TO_INT_VALUE=new Method[]{ 152 new Method("toIntValue",Types.INT_VALUE,new Type[]{Types.OBJECT}), 153 new Method("toIntValue",Types.INT_VALUE,new Type[]{Types.BOOLEAN_VALUE}), 154 new Method("toIntValue",Types.INT_VALUE,new Type[]{Types.DOUBLE_VALUE}), 155 new Method("toIntValue",Types.INT_VALUE,new Type[]{Types.STRING}) 156 }; 157 158 public static final Method[] TO_LONG=new Method[]{ 159 new Method("toLong",Types.LONG,new Type[]{Types.OBJECT}), 160 new Method("toLong",Types.LONG,new Type[]{Types.BOOLEAN_VALUE}), 161 new Method("toLong",Types.LONG,new Type[]{Types.DOUBLE_VALUE}), 162 new Method("toLong",Types.LONG,new Type[]{Types.STRING}) 163 }; 164 165 public static final Method[] TO_LONG_VALUE=new Method[]{ 166 new Method("toLongValue",Types.LONG_VALUE,new Type[]{Types.OBJECT}), 167 new Method("toLongValue",Types.LONG_VALUE,new Type[]{Types.BOOLEAN_VALUE}), 168 new Method("toLongValue",Types.LONG_VALUE,new Type[]{Types.DOUBLE_VALUE}), 169 new Method("toLongValue",Types.LONG_VALUE,new Type[]{Types.STRING}) 170 }; 171 172 public static final Method[] TO_FLOAT=new Method[]{ 173 new Method("toFloat",Types.FLOAT,new Type[]{Types.OBJECT}), 174 new Method("toFloat",Types.FLOAT,new Type[]{Types.BOOLEAN_VALUE}), 175 new Method("toFloat",Types.FLOAT,new Type[]{Types.DOUBLE_VALUE}), 176 new Method("toFloat",Types.FLOAT,new Type[]{Types.STRING}) 177 }; 178 179 public static final Method[] TO_FLOAT_VALUE=new Method[]{ 180 new Method("toFloatValue",Types.FLOAT_VALUE,new Type[]{Types.OBJECT}), 181 new Method("toFloatValue",Types.FLOAT_VALUE,new Type[]{Types.BOOLEAN_VALUE}), 182 new Method("toFloatValue",Types.FLOAT_VALUE,new Type[]{Types.DOUBLE_VALUE}), 183 new Method("toFloatValue",Types.FLOAT_VALUE,new Type[]{Types.STRING}) 184 }; 185 186 public static final Method[] TO_DOUBLE=new Method[]{ 187 new Method("toDouble",Types.DOUBLE,new Type[]{Types.OBJECT}), 188 new Method("toDouble",Types.DOUBLE,new Type[]{Types.BOOLEAN_VALUE}), 189 new Method("toDouble",Types.DOUBLE,new Type[]{Types.DOUBLE_VALUE}), 190 new Method("toDouble",Types.DOUBLE,new Type[]{Types.STRING}) 191 }; 192 193 public static final Method[] TO_DOUBLE_VALUE=new Method[]{ 194 new Method("toDoubleValue",Types.DOUBLE_VALUE,new Type[]{Types.OBJECT}), 195 new Method("toDoubleValue",Types.DOUBLE_VALUE,new Type[]{Types.BOOLEAN_VALUE}), 196 new Method("toDoubleValue",Types.DOUBLE_VALUE,new Type[]{Types.DOUBLE_VALUE}), 197 new Method("toDoubleValue",Types.DOUBLE_VALUE,new Type[]{Types.STRING}) 198 }; 199 200 }