super(descriptor);
this.value = value;
}
public void load(BytecodeContextMethod context) {
TypeDescriptor top = this.value.getType();
if (top.isPrimitive() && descriptor.compareTo( TypeDescriptor.getFor(Object.class) ) == 0) {
context.invoke(context.getResolutionPool().resolve(top.getBoxedType().getClassName()), "valueOf", this.value);
} else if (descriptor.isPrimitive() && !top.isPrimitive()) {
String methodName = null;
if (descriptor == TypeDescriptor.INTEGER) { methodName = "intValue"; }
else if (descriptor == TypeDescriptor.LONG) { methodName = "longValue"; }
else if (descriptor == TypeDescriptor.SHORT) { methodName = "shortValue"; }
else if (descriptor == TypeDescriptor.CHAR) { methodName = "charValue"; }
else if (descriptor == TypeDescriptor.DOUBLE) { methodName = "doubleValue"; }
else if (descriptor == TypeDescriptor.FLOAT) { methodName = "floatValue"; }
else if (descriptor == TypeDescriptor.BOOLEAN) { methodName = "booleanValue"; }
else if (descriptor == TypeDescriptor.BYTE) { methodName = "byteValue"; }
context.invoke(context.createCast(descriptor.getBoxedType(), value), methodName);
} else if (top.isPrimitive() && descriptor.isPrimitive()) {
if (top != descriptor) {
} else {
value.load(context);