/// <summary> /// The clone with object typing returns shallow clones but with deep cloned child rules for /// stream and market closure. /// </summary> /// <returns> /// The <see cref="object"/>. /// </returns> public object Clone() { var cloneRule = new FixedIncomeHighProfitsRule( this.fixedIncomeParameters, (IFixedIncomeHighProfitsStreamRule)this.streamRule.Clone(), (IFixedIncomeHighProfitsMarketClosureRule)this.marketClosureRule.Clone(), this.logger); return(cloneRule); }
/// <summary> /// The cloning support for factor values. /// </summary> /// <param name="factor"> /// The factor. /// </param> /// <returns> /// The <see cref="IUniverseCloneableRule"/>. /// </returns> public IUniverseCloneableRule Clone(IFactorValue factor) { var cloneRule = new FixedIncomeHighProfitsRule( this.fixedIncomeParameters, this.streamRule.Clone(factor) as IFixedIncomeHighProfitsStreamRule, this.marketClosureRule.Clone(factor) as IFixedIncomeHighProfitsMarketClosureRule, this.logger); cloneRule.OrganisationFactorValue = factor; return(cloneRule); }