package expression;

import java.math.BigDecimal;
import java.math.BigInteger;

/**
 * @author Doschennikov Nikita (me@fymio.us)
 */
public class Multiply extends AbstractBinaryOperation {

    public Multiply(AbstractExpression l, AbstractExpression r) {
        super(l, r);
    }

    @Override
    protected String getOperator() {
        return "*";
    }

    @Override
    protected int getPriority() {
        return 2;
    }

    @Override
    protected boolean isRightAssoc() {
        return false;
    }

    @Override
    protected int applyInt(int a, int b) {
        return a * b;
    }

    @Override
    protected BigInteger applyBi(BigInteger a, BigInteger b) {
        return a.multiply(b);
    }

    @Override
    protected BigDecimal applyBd(BigDecimal a, BigDecimal b) {
        return a.multiply(b);
    }
}
