/// <summary> /// Find matching tagged values for element /// </summary> /// <param name="rep"></param> /// <param name="pkg"></param> /// <param name="fr"></param> private static void FindMatchingPackageTaggedValue(EA.Repository rep, EA.Package pkg, FindAndReplace fr) { EA.Element el = rep.GetElementByGuid(pkg.PackageGUID); foreach (EA.TaggedValue tag in el.TaggedValues) { if ((fr.TagValueNames.Length == 0) || (fr.TagValueNames.Contains(tag.Name))) { int count = FindAndReplaceItem.FindCountForType(fr.RegexPattern, Utils.TaggedValue.GetTaggedValue(el, tag.Name)); if (count > 0) { // Create the searchers FindAndReplaceItem frItem = fr.LastItem(); if ((frItem == null) || (frItem.Guid != el.ElementGUID)) { frItem = FindAndReplaceItem.Factory(rep, EA.ObjectType.otPackage, el.ElementGUID); fr.LItems.Add(frItem); } // Search var frItemPkg = (FindAndReplaceItemPackage)frItem; frItemPkg.LItemTag.Add(new FindAndReplaceItemTagPackage(tag)); frItemPkg.CountChanges = frItemPkg.CountChanges + count; } } } }
/// <summary> /// Find matching tagged values for element /// </summary> /// <param name="rep"></param> /// <param name="method"></param> /// <param name="fr"></param> private static void FindMatchingMethodTaggedValue(EA.Repository rep, EA.Method method, FindAndReplace fr) { foreach (EA.MethodTag tag in method.TaggedValues) { if ((fr.TagValueNames.Length == 0) || (fr.TagValueNames.Contains(tag.Name))) { int count = FindAndReplaceItem.FindCountForType(fr.RegexPattern, Utils.TaggedValue.GetTaggedValue(method, tag.Name)); if (count > 0) { FindAndReplaceItem frItem = fr.LastItem(); if ((frItem == null) || (frItem.Guid != method.MethodGUID)) { frItem = FindAndReplaceItem.Factory(rep, EA.ObjectType.otMethod, method.MethodGUID); fr.LItems.Add(frItem); } var frItemMeth = (FindAndReplaceItemMethod)frItem; frItemMeth.LItemTag.Add(new FindAndReplaceItemTagMethod(tag)); frItemMeth.CountChanges = frItemMeth.CountChanges + count; } } } }
/// <summary> /// Find matching tagged values for element /// </summary> /// <param name="rep"></param> /// <param name="attr"></param> /// <param name="fr"></param> private static void FindMatchingAttributeTaggedValue(EA.Repository rep, EA.Attribute attr, FindAndReplace fr) { foreach (EA.AttributeTag tag in attr.TaggedValues) { if ((fr.TagValueNames.Length == 0) || (fr.TagValueNames.Contains(tag.Name))) { int count = FindAndReplaceItem.FindCountForType(fr.RegexPattern, Utils.TaggedValue.GetTaggedValue(attr, tag.Name)); if (count > 0) { FindAndReplaceItem frItem = fr.LastItem(); if ((frItem == null) || (frItem.Guid != attr.AttributeGUID)) { frItem = FindAndReplaceItem.Factory(rep, EA.ObjectType.otAttribute, attr.AttributeGUID); fr.LItems.Add(frItem); } // find tagged value var frItemAttr = (FindAndReplaceItemAttribute)frItem; frItemAttr.LItemTag.Add(new FindAndReplaceItemTagAttribute(tag)); frItemAttr.CountChanges = frItemAttr.CountChanges + count; } } } }
/// <summary> /// Find matching tagged values for element /// </summary> /// <param name="rep"></param> /// <param name="el"></param> /// <param name="fr"></param> private static void FindMatchingElementTaggedValue(EA.Repository rep, EA.Element el, FindAndReplace fr) { foreach (EA.TaggedValue tag in el.TaggedValues) { if ((fr.TagValueNames.Length == 0) || (fr.TagValueNames.Contains(tag.Name))) { int count = FindAndReplaceItem.FindCountForType(fr.RegexPattern, Utils.TaggedValue.GetTaggedValue(el, tag.Name)); if (count > 0) { FindAndReplaceItem frItem = fr.LastItem(); if ((frItem == null) || (frItem.Guid != el.ElementGUID)) { frItem = FindAndReplaceItem.Factory(rep, EA.ObjectType.otElement, el.ElementGUID); fr.LItems.Add(frItem); } // find tagged value var frItemEl = (FindAndReplaceItemElement)frItem; frItemEl.LItemTag.Add(new FindAndReplaceItemTagElement(tag)); frItemEl.CountChanges = frItemEl.CountChanges + count; } } } }