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); } }
internal void SetExtensionsAddinId(string addinId) { NodeSet.SetExtensionsAddinId(addinId); foreach (ConditionTypeDescription cond in Conditions) { cond.AddinId = addinId; } Addins.Add(addinId); }
internal void MergeWith(string thisAddinId, ExtensionPoint ep) { NodeSet.MergeWith(thisAddinId, ep.NodeSet); foreach (ConditionTypeDescription cond in ep.Conditions) { if (cond.AddinId != thisAddinId && !Conditions.Contains(cond)) { Conditions.Add(cond); } } foreach (string s in ep.Addins) { if (!Addins.Contains(s)) { Addins.Add(s); } } }
/// <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; }