public AdjRateDatum CalculateAssetWeight(OperationSet opSet, DateTime targetDate, MarketDataSet data) { OperationRow opData = opSet.GetData(_key); Boolean on = opData.On; AdjRateDatum others = _nextAdjustment.CalculateAssetWeight(opSet, targetDate, data); if (on) { AdjRateDatum mine = new AdjRateDatum(_kospiAdjustment, _bondAdjustment, _dollarAdjustment); Operation op = opData.Op; if (op == Operation.Multiply) { AdjRateDatum ret = AdjUtil.Multiply(mine, others); return ret; } else { logger.Warn("Multiply 이외의 기능은 아직 제공하고 있지 않음"); return others; } } else { return others; } }
public static AdjRateDatum Calculate( int key, AdjRateDatum mine, IAdjustment next, OperationSet opSet, DateTime targetDate, MarketDataSet data) { if (next == null) { return mine; } OperationRow opData = opSet.GetData(key); Boolean on = opData.On; AdjRateDatum others = next.CalculateAssetWeight(opSet, targetDate, data); if (on) { Operation op = opData.Op; if (op == Operation.Multiply) { AdjRateDatum ret = AdjUtil.Multiply(mine, others); return ret; } else { Trace.Assert(false); return others; } } else { return others; } }