/// <summary> /// Initializes a new instance of the <see cref="QuantityOperations" /> class. /// </summary> /// <param name="unitFactory">The unit factory.</param> /// <param name="expressionReducer">The expression reducer.</param> /// <param name="valueFromBaseVisitor">From base visitor.</param> /// <param name="valueToBaseVisitor">To base visitor.</param> public QuantityOperations( IUnitFactory unitFactory, IExpressionReducer expressionReducer, ValueFromBaseVisitor valueFromBaseVisitor, ValueToBaseVisitor valueToBaseVisitor) { this.Addition = new AdditionOperation(valueFromBaseVisitor, valueToBaseVisitor); this.Subtraction = new SubtractionOperation(valueFromBaseVisitor, valueToBaseVisitor); this.Multiplication = new ReducingOperation( unitFactory, new UnitMultiplicationOperation(expressionReducer), new MultiplicationOperation()); this.Division = new ReducingOperation( unitFactory, new UnitDivisionOperation(expressionReducer), new DivisionOperation()); this.Exponentiation = new ExponentiationOperation(unitFactory, expressionReducer); this.NthRoot = new NthRootOperation(unitFactory, expressionReducer); this.ConvertToUnit = new ConvertToUnitOperation(); }
/// <summary> /// Initializes a new instance of the <see cref="QuantityOperations"/> class. /// </summary> /// <param name="unitFactory">The unit factory.</param> /// <param name="expressionReducer">The expression reducer.</param> /// <param name="valueFromBaseVisitor">From base visitor.</param> /// <param name="valueToBaseVisitor">To base visitor.</param> public QuantityOperations( IUnitFactory unitFactory, IExpressionReducer expressionReducer, ValueFromBaseVisitor valueFromBaseVisitor, ValueToBaseVisitor valueToBaseVisitor) { this.Addition = new AdditionOperation(valueFromBaseVisitor, valueToBaseVisitor); this.Subtraction = new SubtractionOperation(valueFromBaseVisitor, valueToBaseVisitor); this.Multiplication = new ReducingOperation( unitFactory, new UnitMultiplicationOperation(expressionReducer), new MultiplicationOperation()); this.Division = new ReducingOperation( unitFactory, new UnitDivisionOperation(expressionReducer), new DivisionOperation()); this.Exponentiation = new ExponentiationOperation(unitFactory, expressionReducer); this.NthRoot = new NthRootOperation(unitFactory, expressionReducer); this.ConvertToUnit = new ConvertToUnitOperation(); }
/// <summary> /// Initializes a new instance of the <see cref="AdditionOperation" /> class. /// </summary> /// <param name="valueFromBaseVisitor">From base visitor.</param> /// <param name="valueToBaseVisitor">To base visitor.</param> public AdditionOperation(ValueFromBaseVisitor valueFromBaseVisitor, ValueToBaseVisitor valueToBaseVisitor) { this.valueFromBaseVisitor = valueFromBaseVisitor; this.valueToBaseVisitor = valueToBaseVisitor; }