public MetaHashComponent Clone() { MetaHashComponent c = new MetaHashComponent(); this.Clone(c); return(c); }
protected void Clone(MetaHashComponent c) { //Console.WriteLine ("[MetaHashComponent.Clone] Base MetaHashComponent..."); base.Clone((MetaHashEntity)c); c.Package = package; c.Kind = kind; if (usingList != null) { c.UsingList = new List <string> (); foreach (string u in usingList) { c.UsingList.Add(u); } } if (parameters != null) { c.Parameters = new List <MetaParameter> (); //Para os nossos propósitos, não se deve clonar os parameters. foreach (MetaParameter p in parameters) { c.Parameters.Add(p); } } if (innerComponents != null) { c.InnerComponents = new List <MetaInnerComponent> (); MetaInnerComponent clone; foreach (MetaInnerComponent mic in innerComponents) { clone = mic.Clone(); clone.Father = c; c.InnerComponents.Add(clone); } } if (superComponent != null) { c.SuperComponent = superComponent.Clone(); c.SuperComponent.Father = c; } if (units != null) { MetaUnit clone; c.Units = new Dictionary <string, MetaUnit>(); foreach (string key in units.Keys) { clone = units[key].Clone(); clone.Father = c; c.Units.Add(key, clone); } } c.LastIdCode = lastIdCode; }