+public void generateBoxingConversion(int unboxedTypeID) {
+ switch (unboxedTypeID) {
+ case T_byte :
+ // invokestatic: Byte.valueOf(byte)
+ this.invoke(
+ OPC_invokestatic,
+ 1, // argCount
+ 1, // return type size
+ ConstantPool.JavaLangByteConstantPoolName,
+ ConstantPool.ValueOf,
+ ConstantPool.byteByteSignature); //$NON-NLS-1$
+ break;
+ case T_short :
+ // invokestatic: Short.valueOf(short)
+ this.invoke(
+ OPC_invokestatic,
+ 1, // argCount
+ 1, // return type size
+ ConstantPool.JavaLangShortConstantPoolName,
+ ConstantPool.ValueOf,
+ ConstantPool.shortShortSignature); //$NON-NLS-1$
+ break;
+ case T_char :
+ // invokestatic: Character.valueOf(char)
+ this.invoke(
+ OPC_invokestatic,
+ 1, // argCount
+ 1, // return type size
+ ConstantPool.JavaLangCharacterConstantPoolName,
+ ConstantPool.ValueOf,
+ ConstantPool.charCharacterSignature); //$NON-NLS-1$
+ break;
+ case T_int :
+ // invokestatic: Integer.valueOf(int)
+ this.invoke(
+ OPC_invokestatic,
+ 1, // argCount
+ 1, // return type size
+ ConstantPool.JavaLangIntegerConstantPoolName,
+ ConstantPool.ValueOf,
+ ConstantPool.IntIntegerSignature); //$NON-NLS-1$
+ break;
+ case T_long :
+ // invokestatic: Long.valueOf(long)
+ this.invoke(
+ OPC_invokestatic,
+ 2, // argCount
+ 1, // return type size
+ ConstantPool.JavaLangLongConstantPoolName,
+ ConstantPool.ValueOf,
+ ConstantPool.longLongSignature); //$NON-NLS-1$
+ break;
+ case T_float :
+ // invokestatic: Float.valueOf(float)
+ this.invoke(
+ OPC_invokestatic,
+ 1, // argCount
+ 1, // return type size
+ ConstantPool.JavaLangFloatConstantPoolName,
+ ConstantPool.ValueOf,
+ ConstantPool.floatFloatSignature); //$NON-NLS-1$
+ break;
+ case T_double :
+ // invokestatic: Double.valueOf(double)
+ this.invoke(
+ OPC_invokestatic,
+ 2, // argCount
+ 1, // return type size
+ ConstantPool.JavaLangDoubleConstantPoolName,
+ ConstantPool.ValueOf,
+ ConstantPool.doubleDoubleSignature); //$NON-NLS-1$
+ break;
+ case T_boolean :
+ // invokestatic: Boolean.valueOf(boolean)
+ this.invoke(
+ OPC_invokestatic,
+ 1, // argCount
+ 1, // return type size
+ ConstantPool.JavaLangBooleanConstantPoolName,
+ ConstantPool.ValueOf,
+ ConstantPool.booleanBooleanSignature); //$NON-NLS-1$
+ }
+}
+public void generateUnboxingConversion(int unboxedTypeID) {
+ switch (unboxedTypeID) {
+ case T_byte :
+ // invokevirtual: byteValue()
+ this.invoke(
+ OPC_invokevirtual,
+ 0, // argCount
+ 1, // return type size
+ ConstantPool.JavaLangByteConstantPoolName,
+ ConstantPool.BYTEVALUE_BYTE_METHOD_NAME,
+ ConstantPool.BYTEVALUE_BYTE_METHOD_SIGNATURE);
+ break;
+ case T_short :
+ // invokevirtual: shortValue()
+ this.invoke(
+ OPC_invokevirtual,
+ 0, // argCount
+ 1, // return type size
+ ConstantPool.JavaLangShortConstantPoolName,
+ ConstantPool.SHORTVALUE_SHORT_METHOD_NAME,
+ ConstantPool.SHORTVALUE_SHORT_METHOD_SIGNATURE);
+ break;
+ case T_char :
+ // invokevirtual: charValue()
+ this.invoke(
+ OPC_invokevirtual,
+ 0, // argCount
+ 1, // return type size
+ ConstantPool.JavaLangCharacterConstantPoolName,
+ ConstantPool.CHARVALUE_CHARACTER_METHOD_NAME,
+ ConstantPool.CHARVALUE_CHARACTER_METHOD_SIGNATURE);
+ break;
+ case T_int :
+ // invokevirtual: intValue()
+ this.invoke(
+ OPC_invokevirtual,
+ 0, // argCount
+ 1, // return type size
+ ConstantPool.JavaLangIntegerConstantPoolName,
+ ConstantPool.INTVALUE_INTEGER_METHOD_NAME,
+ ConstantPool.INTVALUE_INTEGER_METHOD_SIGNATURE);
+ break;
+ case T_long :
+ // invokevirtual: longValue()
+ this.invoke(
+ OPC_invokevirtual,
+ 0, // argCount
+ 2, // return type size
+ ConstantPool.JavaLangLongConstantPoolName,
+ ConstantPool.LONGVALUE_LONG_METHOD_NAME,
+ ConstantPool.LONGVALUE_LONG_METHOD_SIGNATURE);
+ break;
+ case T_float :
+ // invokevirtual: floatValue()
+ this.invoke(
+ OPC_invokevirtual,
+ 0, // argCount
+ 1, // return type size
+ ConstantPool.JavaLangFloatConstantPoolName,
+ ConstantPool.FLOATVALUE_FLOAT_METHOD_NAME,
+ ConstantPool.FLOATVALUE_FLOAT_METHOD_SIGNATURE);
+ break;
+ case T_double :
+ // invokevirtual: doubleValue()
+ this.invoke(
+ OPC_invokevirtual,
+ 0, // argCount
+ 2, // return type size
+ ConstantPool.JavaLangDoubleConstantPoolName,
+ ConstantPool.DOUBLEVALUE_DOUBLE_METHOD_NAME,
+ ConstantPool.DOUBLEVALUE_DOUBLE_METHOD_SIGNATURE);
+ break;
+ case T_boolean :
+ // invokevirtual: booleanValue()
+ this.invoke(
+ OPC_invokevirtual,
+ 0, // argCount
+ 1, // return type size
+ ConstantPool.JavaLangBooleanConstantPoolName,
+ ConstantPool.BOOLEANVALUE_BOOLEAN_METHOD_NAME,
+ ConstantPool.BOOLEANVALUE_BOOLEAN_METHOD_SIGNATURE);
+ }
+}