package com.processpuzzle.fitnesse.fundamental_types;
import fit.ColumnFixture;
import com.processpuzzle.fundamental_types.domain.ProcessPuzzleParseException;
import com.processpuzzle.fundamental_types.quantity.domain.Quantity;
import com.processpuzzle.fundamental_types.quantity.domain.QuantityHelper;
import com.processpuzzle.fundamental_types.quantity.money.domain.Money;
public class CalculateMoneyMultiply extends ColumnFixture {
public String quantity1, quantity2, currency;
public double multiply() throws ProcessPuzzleParseException{
try{
Double d1=new Double(quantity1);
Double d2=new Double(quantity2);
Money money1=new Money(d1,QuantityHelper.unitFinder(currency));
Money money2=new Money(d2,QuantityHelper.unitFinder(currency));
Quantity q2=money1.multiply(money2);
// Formatted return
java.text.DecimalFormat df=new java.text.DecimalFormat("###.##");
try{
return df.parse(df.format(q2.getAmount())).doubleValue();
}catch(java.text.ParseException e ){
throw new ProcessPuzzleParseException(q2.toString(),"Round doubles",e);
}
}catch(NumberFormatException e){
throw new ProcessPuzzleParseException(quantity1+" or "+quantity2,"Conversion to Double",e);
}
}
}