Ejemplo n.º 1
0
        /// <summary>
        /// Clones the instance using special context and returns cloned instance.
        /// </summary>
        /// <param name="context">Special context for providing references continuity.</param>
        /// <returns>Cloned instance.</returns>
        public LinguisticVariable Clone(Dictionary <object, object> context)
        {
            if (context.ContainsKey(this))
            {
                return((LinguisticVariable)context[this]);
            }

            var result = new LinguisticVariable();

            context[this] = result;

            result.Name       = Name.Clone(context);
            result.Range      = Range?.Clone(context);
            result.Constraint = Constraint?.Clone(context);
            result.Values     = Values?.Select(p => p.Clone(context)).ToList();
            result.Operators  = Operators?.Select(p => p.Clone(context)).ToList();

            result.CodeEntity = CodeEntity.Clone(context);

            result.AppendAnnotations(this, context);

            return(result);
        }