/// <summary> /// Delete dependencies of element within the ReqIF Packages /// </summary> /// <param name="el"></param> /// <param name="packageGuidList"></param> private void DeleteDependencies(EA.Element el, List <ReqIfModuleAssign> packageGuidList) { for (int i = el.Connectors.Count - 1; i >= 0; i--) { var elConnector = (EA.Connector)el.Connectors.GetAt((short)i); var elTarget = _rep.GetElementByID(elConnector.SupplierID); string pkgTargetGuid = _rep.GetPackageByID(elTarget.PackageID).PackageGUID; // Check if guid exists if (packageGuidList.Exists(y => y.Guid == pkgTargetGuid)) { el.Connectors.DeleteAt((short)i, true); } } el.Refresh(); el.Update(); }
private EnAr.Element ConstructClassifier(Ecore.IEClassifier eClassifier) { if (eclassifier2Class.ContainsKey(eClassifier)) { return(eclassifier2Class[eClassifier]); } EnAr.Element result; if (eClassifier is Ecore.IEClass) { result = ConstructClass((Ecore.IEClass)eClassifier); } else if (eClassifier is Ecore.IEEnum) { result = ConstructEnumeration((Ecore.IEEnum)eClassifier); } else { result = ConstructPrimitiveType((Ecore.IEDataType)eClassifier); } EA.Element clazzEa = explorer.GetEaObject(result); // Manage type parameters (eg. T in MyClass<T>) foreach (Ecore.IETypeParameter eTypeParameter in eClassifier.ETypeParameters) { dynamic eaTemplateParameter = clazzEa.TemplateParameters.AddNew(eTypeParameter.Name, ""); eaTemplateParameter.Constraint = ""; List <string> guids = new List <string>(); foreach (Ecore.IEGenericType eGenericType in eTypeParameter.EBounds) { EnAr.Element constraintClass = ConstructClassifier(eGenericType.EClassifier); guids.Add(constraintClass.ElementGUID); } eaTemplateParameter.Constraint = string.Join(",", guids); eaTemplateParameter.Update(); } clazzEa.TemplateParameters.Refresh(); clazzEa.Refresh(); clazzEa.Update(); return(result); }
/// <summary> /// Set attributes and tags of supplier port when port is created or connected. /// </summary> /// <param name="connectorId">The created item flow connector.</param> /// <param name="portStereotype">The stereotype of the port.</param> /// <param name="connectorStereotype">The stereotype of the port connectiong flow connector.</param> /// <param name="supplierName">The EA default name for the new created supplier port.</param> public void SetPropertyTypeAndDirectionOnFlowPortCreation(int connectorId, string portStereotype, string connectorStereotype, string supplierName) { EAShared.Connector connector = Rep.GetConnectorByID(connectorId); EAShared.Element client = Rep.GetElementByID(connector.ClientID); EAShared.Element supplier = Rep.GetElementByID(connector.SupplierID); if ((supplier.Stereotype == portStereotype) && (connector.Stereotype == connectorStereotype)) { CopyTaggedValuesFromClientToSupplierPort(client, supplier); if (supplier.PropertyType == 0) { supplier.PropertyType = client.PropertyType; if (supplier.Alias == "") { supplier.Alias = client.Alias; } if (supplier.Multiplicity == "") { supplier.Multiplicity = client.Multiplicity; } // Copy notes text from client to supplier if (supplier.Notes == "") { supplier.Notes = client.Notes; } } else if (supplier.PropertyType == client.PropertyType) { if (supplier.Alias == "") { supplier.Alias = client.Alias; } if (supplier.Multiplicity == "") { supplier.Multiplicity = client.Multiplicity; } // Copy notes text from client to supplier if (supplier.Notes == "") { supplier.Notes = client.Notes; } } if (supplier.Name.StartsWith(supplierName) || supplier.Name == "") { supplier.Name = client.Name; } supplier.Update(); supplier.Refresh(); } // if }