package org.cryptocoinpartners.util;
import java.math.BigDecimal;
import java.math.MathContext;
import java.math.RoundingMode;
import org.cryptocoinpartners.schema.Amount;
/**
* This is a delegate interface which is called when there are remainders or errors in a calcualation.
*/
public abstract class RemainderHandler {
/**
* @param result is the final Amount produced by the operation
* @param remainder is a leftover amount x where |x| < basis for discrete amounts and |x| ~ double roundoff error for doubles
*/
public void handleRemainder(Amount result, BigDecimal remainder) {
}
public RoundingMode getRoundingMode() {
return RoundingMode.HALF_EVEN;
}
public MathContext getMathContext() {
return new MathContext(Amount.mc.getPrecision(), getRoundingMode());
}
}