protected Instance doMath( final Object val1, final Object val2 )
throws VirtualMachineException
{
if( val1 instanceof FixedPoint )
{
final Instance instance =
getVirtualMachine().newInstance( "double" );
instance.set(
"value",
((FixedPoint) val1).add( (FixedPoint) val2 )
);
return instance;
}
else if( val1 instanceof Long )
{
final Instance instance =
getVirtualMachine().newInstance( "long" );
instance.set(
"value",
new Long(
((Long) val1).longValue() +
( (Long) val2 ).longValue()
)
);
return instance;
}
else if( val1 instanceof Integer )
{
final Instance instance =
getVirtualMachine().newInstance( "int" );
instance.set(
"value",
new Integer(
((Integer) val1).intValue() +
( (Integer) val2 ).intValue()
)
);
return instance;
}
else if( val1 instanceof Short )
{
final Instance instance =
getVirtualMachine().newInstance( "short" );
instance.set(
"value",
new Short( (short)
(((Short) val1).shortValue() +
( (Short) val2 ).shortValue() )
)
);
return instance;
}
else
{
final Instance instance =
getVirtualMachine().newInstance( "byte" );
instance.set(
"value",
new Byte( (byte)
(((Byte) val1).byteValue() +
( (Byte) val2 ).byteValue() )
)