public object Clone()
        {
            AdaptationProfile ap = (AdaptationProfile)this.MemberwiseClone();

            ap.flags = new List <string>();
            foreach (string s in flags)
            {
                ap.flags.Add((s != null ? s : null));
            }
            ap.initialState = (AdaptedState)initialState.Clone();
            ap.name         = (name != null ? name : null);
            ap.rules        = new List <AdaptationRule>();
            foreach (AdaptationRule ar in rules)
            {
                ap.rules.Add((AdaptationRule)ar.Clone());
            }
            ap.vars = new List <string>();
            foreach (string s in vars)
            {
                ap.vars.Add((s != null ? s : null));
            }
            ap.scorm12   = scorm12;
            ap.scorm2004 = scorm2004;
            return(ap);
        }
        public object Clone()
        {
            AdaptationRule ar = (AdaptationRule)this.MemberwiseClone();

            ar.description = (description != null ? description : null);
            ar.gameState   = (AdaptedState)gameState.Clone();
            ar.id          = (id != null ? id : null);
            ar.uolState    = new List <UOLProperty>();
            foreach (UOLProperty uolp in uolState)
            {
                ar.uolState.Add((UOLProperty)uolp.Clone());
            }
            return(ar);
        }