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