//Methods #region Methods public void Merge(PreRET ret) { List <UMLClass> tclasses = new List <UMLClass>(); bool found; tclasses.AddRange(classes); foreach (UMLClass c in ret.Classes) { foreach (UMLClass d in classes) { found = false; if (d.Guid.Equals(c.Guid)) { found = true; break; } if (!found) { tclasses.Add(c); } } } this.classes = tclasses; }
//Methods #region Methods public void Merge(PreRET ret) { List<UMLClass> tclasses = new List<UMLClass>(); bool found; tclasses.AddRange(classes); foreach (UMLClass c in ret.Classes) { foreach (UMLClass d in classes) { found = false; if (d.Guid.Equals(c.Guid)) { found = true; break; } if (!found) { tclasses.Add(c); } } } this.classes = tclasses; }
public override void Execute(UMLRelationship r, ActionMap map, List<PreFile> prefiles) { UMLClass a = null; UMLClass b = null; UMLClass ac = null; int defaultDetsA = 0; int defaultDetsB = 0; PreFile prefA; PreFile prefB; PreRET temp; RelationshipHelper.GetClasses(r, ref a, ref b, this.IsAlternate, ref defaultDetsA, ref defaultDetsB); if (r is UMLAssociation) { ac = ((UMLAssociation)r).AssociationClass; } prefA = PreFileHelper.GetPreFileWithClass(a, prefiles); prefB = PreFileHelper.GetPreFileWithClass(b, prefiles); if (prefA == null) { if (prefB == null) { prefA = new PreFile(); prefA.Rets.Add(new PreRET()); prefA.Rets.Add(new PreRET()); prefA.Rets[0].Classes.Add(a); prefA.Rets[1].Classes.Add(b); prefiles.Add(prefA); if (ac != null) { prefA.Rets.Add(new PreRET()); prefA.Rets[2].Classes.Add(ac); } } else { temp = new PreRET(); temp.Classes.Add(a); prefB.Rets.Add(temp); } } else { if (prefB == null) { temp = new PreRET(); temp.Classes.Add(b); prefA.Rets.Add(temp); } } }
public override void Execute(UMLRelationship r, ActionMap map, List<PreFile> prefiles) { UMLClass a = null; UMLClass b = null; int defaultDetsA = 0; int defaultDetsB = 0; PreFile prefA; PreFile prefB; PreRET temp; RelationshipHelper.GetClasses(r, ref a, ref b, this.IsAlternate, ref defaultDetsA, ref defaultDetsB); prefA = PreFileHelper.GetPreFileWithClass(a, prefiles); prefB = PreFileHelper.GetPreFileWithClass(b, prefiles); if (prefA == null) { if (prefB == null) { prefA = new PreFile(); prefA.Rets.Add(new PreRET()); prefA.Rets.Add(new PreRET()); prefA.Rets[0].Classes.Add(a); prefA.Rets[1].Classes.Add(b); prefA.Rets[1].Parents.Add(prefA.Rets[0]); prefiles.Add(prefA); } else { temp = new PreRET(); temp.Classes.Add(a); prefB.Rets.Add(temp); foreach (PreRET ret in PreFileHelper.GetPreRETsWithClass(b, prefB)) { ret.Parents.Add(temp); } } } else { if (prefB == null) { temp = new PreRET(); temp.Classes.Add(b); prefA.Rets.Add(temp); foreach (PreRET ret in PreFileHelper.GetPreRETsWithClass(a, prefA)) { temp.Parents.Add(ret); } } else { foreach (PreRET retparent in PreFileHelper.GetPreRETsWithClass(a, prefA)) { foreach (PreRET retchild in PreFileHelper.GetPreRETsWithClass(b, prefB)) { retchild.Parents.Add(retparent); //Merging to form the Real RET is done in the FileProcessing } } prefA.Merge(prefB); prefiles.Remove(prefB); } } }
public override void Execute(UMLRelationship r, ActionMap map, List<PreFile> prefiles) { UMLClass a=null; UMLClass b=null; int defaultDetsA = 0; int defaultDetsB = 0; PreFile temp, tempA, tempB; RelationshipHelper.GetClasses(r, ref a, ref b, this.IsAlternate, ref defaultDetsA, ref defaultDetsB); //1st File if ((tempA = PreFileHelper.GetPreFileWithClass(a, prefiles)) == null) { tempA = new PreFile(); tempA.Rets.Add(new PreRET()); tempA.Rets[0].Classes.Add(a); prefiles.Add(tempA); } tempA.DefaultDets += defaultDetsA; //2nd File if ((tempB = PreFileHelper.GetPreFileWithClass(b, prefiles)) == null) { tempB = new PreFile(); tempB.Rets.Add(new PreRET()); tempB.Rets[0].Classes.Add(b); prefiles.Add(tempB); } tempB.DefaultDets += defaultDetsB; //3rd File (only if there is an Association-Class) if (r is UMLAssociation) { if (((UMLAssociation)r).AssociationClass != null) { UMLClass dependencyClass = null; UMLClass associationClass = ((UMLAssociation)r).AssociationClass; UMLDependencyCollection dependencies = associationClass.GetDependencies(); foreach (UMLDependency d in dependencies) { d.Client = Helper.GetDependencyClient<UMLClass>(d.Guid); d.Supplier = Helper.GetDependencySupplier<UMLClass>(d.Guid); if ((d.Client.Guid == associationClass.Guid && d.Supplier.Guid == a.Guid) || (d.Supplier.Guid == associationClass.Guid && d.Client.Guid == a.Guid)) dependencyClass = a; else if ((d.Client.Guid == associationClass.Guid && d.Supplier.Guid == b.Guid) || (d.Supplier.Guid == associationClass.Guid && d.Client.Guid == b.Guid)) dependencyClass = b; } if (dependencyClass == null) { //temp = PreFileHelper.GetPreFileWithClass(a, prefiles); //if (temp == null) temp = new PreFile(); temp.Rets.Add(new PreRET()); temp.Rets[0].Classes.Add(((UMLAssociation)r).AssociationClass); prefiles.Add(temp); } else if (dependencyClass == a) { PreRET pret = new PreRET(); pret.Classes.Add(associationClass); tempA.Rets.Add(pret); } else if (dependencyClass == b) { PreRET pret = new PreRET(); pret.Classes.Add(associationClass); tempB.Rets.Add(pret); } } } }