internal void UnmergeExternalData(string thisAddinId, Hashtable addinsToUnmerge) { NodeSet.UnmergeExternalData(thisAddinId, addinsToUnmerge); var todel = new List <ConditionTypeDescription> (); foreach (ConditionTypeDescription cond in Conditions) { if (cond.AddinId != thisAddinId && (addinsToUnmerge == null || addinsToUnmerge.Contains(cond.AddinId))) { todel.Add(cond); } } foreach (ConditionTypeDescription cond in todel) { Conditions.Remove(cond); } if (addinsToUnmerge == null) { Addins.Clear(); } else { foreach (string s in addinsToUnmerge.Keys) { Addins.Remove(s); } } if (thisAddinId != null && !Addins.Contains(thisAddinId)) { Addins.Add(thisAddinId); } }
/// <summary> /// Copies another extension point. /// </summary> /// <param name='ep'> /// Extension point from which to copy. /// </param> public void CopyFrom(ExtensionPoint ep) { path = ep.path; name = ep.name; description = ep.description; NodeSet.CopyFrom(ep.NodeSet); Conditions.Clear(); foreach (ConditionTypeDescription cond in ep.Conditions) { ConditionTypeDescription cc = new ConditionTypeDescription(); cc.CopyFrom(cond); Conditions.Add(cc); } Addins.Clear(); foreach (string s in ep.Addins) { Addins.Add(s); } rootAddin = ep.rootAddin; }
internal void Clear() { NodeSet.Clear(); Conditions.Clear(); Addins.Clear(); }