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.Struct toStruct (Object) 050 final public static Method TO_STRUCT = new Method("toStruct", 051 Types.STRUCT, 052 new Type[]{Types.OBJECT}); 053 // railo.runtime.type.dt.TimeSpan toTimespan (Object) 054 final public static Method TO_TIMESPAN = new Method("toTimespan", 055 Types.TIMESPAN, 056 new Type[]{Types.OBJECT}); 057 058 059 public static final Method TO_STRING_BUFFER= 060 new Method("toStringBuffer",Types.STRING_BUFFER,new Type[]{Types.OBJECT}); 061 062 // 063 public static final Method[] TO_DECIMAL=new Method[]{ 064 new Method("toDecimal",Types.STRING,new Type[]{Types.OBJECT}), 065 new Method("toDecimal",Types.STRING,new Type[]{Types.BOOLEAN_VALUE}), 066 new Method("toDecimal",Types.STRING,new Type[]{Types.DOUBLE_VALUE}), 067 new Method("toDecimal",Types.STRING,new Type[]{Types.STRING}) 068 }; 069 070 public static final Method[] TO_DATE=new Method[]{ 071 new Method("toDate",Types.DATE_TIME,new Type[]{Types.OBJECT,Types.TIMEZONE}), 072 new Method("toDate",Types.DATE_TIME,new Type[]{Types.BOOLEAN_VALUE,Types.TIMEZONE}), 073 new Method("toDate",Types.DATE_TIME,new Type[]{Types.DOUBLE_VALUE,Types.TIMEZONE}), 074 new Method("toDate",Types.DATE_TIME,new Type[]{Types.STRING,Types.TIMEZONE}) 075 }; 076 077 public static final Method[] TO_STRING=new Method[]{ 078 new Method("toString",Types.STRING,new Type[]{Types.OBJECT}), 079 new Method("toString",Types.STRING,new Type[]{Types.BOOLEAN_VALUE}), 080 new Method("toString",Types.STRING,new Type[]{Types.DOUBLE_VALUE}), 081 new Method("toString",Types.STRING,new Type[]{Types.STRING}) 082 }; 083 084 public static final Method[] TO_BOOLEAN=new Method[]{ 085 new Method("toBoolean",Types.BOOLEAN,new Type[]{Types.OBJECT}), 086 new Method("toBoolean",Types.BOOLEAN,new Type[]{Types.BOOLEAN_VALUE}), 087 new Method("toBoolean",Types.BOOLEAN,new Type[]{Types.DOUBLE_VALUE}), 088 new Method("toBoolean",Types.BOOLEAN,new Type[]{Types.STRING}) 089 }; 090 091 public static final Method[] TO_BOOLEAN_VALUE=new Method[]{ 092 new Method("toBooleanValue",Types.BOOLEAN_VALUE,new Type[]{Types.OBJECT}), 093 new Method("toBooleanValue",Types.BOOLEAN_VALUE,new Type[]{Types.BOOLEAN_VALUE}), 094 new Method("toBooleanValue",Types.BOOLEAN_VALUE,new Type[]{Types.DOUBLE_VALUE}), 095 new Method("toBooleanValue",Types.BOOLEAN_VALUE,new Type[]{Types.STRING}) 096 }; 097 098 public static final Method[] TO_BYTE=new Method[]{ 099 new Method("toByte",Types.BYTE,new Type[]{Types.OBJECT}), 100 new Method("toByte",Types.BYTE,new Type[]{Types.BOOLEAN_VALUE}), 101 new Method("toByte",Types.BYTE,new Type[]{Types.DOUBLE_VALUE}), 102 new Method("toByte",Types.BYTE,new Type[]{Types.STRING}) 103 }; 104 105 public static final Method[] TO_BYTE_VALUE=new Method[]{ 106 new Method("toByteValue",Types.BYTE_VALUE,new Type[]{Types.OBJECT}), 107 new Method("toByteValue",Types.BYTE_VALUE,new Type[]{Types.BOOLEAN_VALUE}), 108 new Method("toByteValue",Types.BYTE_VALUE,new Type[]{Types.DOUBLE_VALUE}), 109 new Method("toByteValue",Types.BYTE_VALUE,new Type[]{Types.STRING}) 110 }; 111 112 public static final Method[] TO_CHARACTER=new Method[]{ 113 new Method("toCharacter",Types.CHARACTER,new Type[]{Types.OBJECT}), 114 new Method("toCharacter",Types.CHARACTER,new Type[]{Types.BOOLEAN_VALUE}), 115 new Method("toCharacter",Types.CHARACTER,new Type[]{Types.DOUBLE_VALUE}), 116 new Method("toCharacter",Types.CHARACTER,new Type[]{Types.STRING}) 117 }; 118 119 public static final Method[] TO_CHAR_VALUE=new Method[]{ 120 new Method("toCharValue",Types.CHAR,new Type[]{Types.OBJECT}), 121 new Method("toCharValue",Types.CHAR,new Type[]{Types.BOOLEAN_VALUE}), 122 new Method("toCharValue",Types.CHAR,new Type[]{Types.DOUBLE_VALUE}), 123 new Method("toCharValue",Types.CHAR,new Type[]{Types.STRING}) 124 }; 125 126 public static final Method[] TO_SHORT=new Method[]{ 127 new Method("toShort",Types.SHORT,new Type[]{Types.OBJECT}), 128 new Method("toShort",Types.SHORT,new Type[]{Types.BOOLEAN_VALUE}), 129 new Method("toShort",Types.SHORT,new Type[]{Types.DOUBLE_VALUE}), 130 new Method("toShort",Types.SHORT,new Type[]{Types.STRING}) 131 }; 132 133 public static final Method[] TO_SHORT_VALUE=new Method[]{ 134 new Method("toShortValue",Types.SHORT_VALUE,new Type[]{Types.OBJECT}), 135 new Method("toShortValue",Types.SHORT_VALUE,new Type[]{Types.BOOLEAN_VALUE}), 136 new Method("toShortValue",Types.SHORT_VALUE,new Type[]{Types.DOUBLE_VALUE}), 137 new Method("toShortValue",Types.SHORT_VALUE,new Type[]{Types.STRING}) 138 }; 139 140 public static final Method[] TO_INTEGER=new Method[]{ 141 new Method("toInteger",Types.INTEGER,new Type[]{Types.OBJECT}), 142 new Method("toInteger",Types.INTEGER,new Type[]{Types.BOOLEAN_VALUE}), 143 new Method("toInteger",Types.INTEGER,new Type[]{Types.DOUBLE_VALUE}), 144 new Method("toInteger",Types.INTEGER,new Type[]{Types.STRING}) 145 }; 146 147 public static final Method[] TO_INT_VALUE=new Method[]{ 148 new Method("toIntValue",Types.INT_VALUE,new Type[]{Types.OBJECT}), 149 new Method("toIntValue",Types.INT_VALUE,new Type[]{Types.BOOLEAN_VALUE}), 150 new Method("toIntValue",Types.INT_VALUE,new Type[]{Types.DOUBLE_VALUE}), 151 new Method("toIntValue",Types.INT_VALUE,new Type[]{Types.STRING}) 152 }; 153 154 public static final Method[] TO_LONG=new Method[]{ 155 new Method("toLong",Types.LONG,new Type[]{Types.OBJECT}), 156 new Method("toLong",Types.LONG,new Type[]{Types.BOOLEAN_VALUE}), 157 new Method("toLong",Types.LONG,new Type[]{Types.DOUBLE_VALUE}), 158 new Method("toLong",Types.LONG,new Type[]{Types.STRING}) 159 }; 160 161 public static final Method[] TO_LONG_VALUE=new Method[]{ 162 new Method("toLongValue",Types.LONG_VALUE,new Type[]{Types.OBJECT}), 163 new Method("toLongValue",Types.LONG_VALUE,new Type[]{Types.BOOLEAN_VALUE}), 164 new Method("toLongValue",Types.LONG_VALUE,new Type[]{Types.DOUBLE_VALUE}), 165 new Method("toLongValue",Types.LONG_VALUE,new Type[]{Types.STRING}) 166 }; 167 168 public static final Method[] TO_FLOAT=new Method[]{ 169 new Method("toFloat",Types.FLOAT,new Type[]{Types.OBJECT}), 170 new Method("toFloat",Types.FLOAT,new Type[]{Types.BOOLEAN_VALUE}), 171 new Method("toFloat",Types.FLOAT,new Type[]{Types.DOUBLE_VALUE}), 172 new Method("toFloat",Types.FLOAT,new Type[]{Types.STRING}) 173 }; 174 175 public static final Method[] TO_FLOAT_VALUE=new Method[]{ 176 new Method("toFloatValue",Types.FLOAT_VALUE,new Type[]{Types.OBJECT}), 177 new Method("toFloatValue",Types.FLOAT_VALUE,new Type[]{Types.BOOLEAN_VALUE}), 178 new Method("toFloatValue",Types.FLOAT_VALUE,new Type[]{Types.DOUBLE_VALUE}), 179 new Method("toFloatValue",Types.FLOAT_VALUE,new Type[]{Types.STRING}) 180 }; 181 182 public static final Method[] TO_DOUBLE=new Method[]{ 183 new Method("toDouble",Types.DOUBLE,new Type[]{Types.OBJECT}), 184 new Method("toDouble",Types.DOUBLE,new Type[]{Types.BOOLEAN_VALUE}), 185 new Method("toDouble",Types.DOUBLE,new Type[]{Types.DOUBLE_VALUE}), 186 new Method("toDouble",Types.DOUBLE,new Type[]{Types.STRING}) 187 }; 188 189 public static final Method[] TO_DOUBLE_VALUE=new Method[]{ 190 new Method("toDoubleValue",Types.DOUBLE_VALUE,new Type[]{Types.OBJECT}), 191 new Method("toDoubleValue",Types.DOUBLE_VALUE,new Type[]{Types.BOOLEAN_VALUE}), 192 new Method("toDoubleValue",Types.DOUBLE_VALUE,new Type[]{Types.DOUBLE_VALUE}), 193 new Method("toDoubleValue",Types.DOUBLE_VALUE,new Type[]{Types.STRING}) 194 }; 195 196 }