public void AddActiveActor(Actor actor) { ActiveActor aactor = new ActiveActor(); aactor.ActorUniqueID = actor.UniqueID; aactor.IsPrimary = false; this.ActiveActors.Add(aactor); }
public void RemoveActiveActor(Actor actor) { ActiveActor aactor = (ActiveActor)this.ActiveActors.FindByUniqueID(actor.UniqueID); if (aactor != null) { this.ActiveActors.Remove(aactor); } }
public object FindByUniqueID(String uniqueID) { ActiveActor aactor = null; foreach (ActiveActor tmpAActor in this.items) { if (tmpAActor.ActorUniqueID == uniqueID) { aactor = tmpAActor; } } return(aactor); }
internal void PurgeReferences( object element, Package targetPackage, String oldNameStartTag, String oldNameEndTag, String newNameStartTag, String newNameEndTag, Boolean dontMark) { Package currentPackage = this; if (targetPackage == null) { while (currentPackage.Owner != null) { currentPackage = currentPackage.Owner; } } if (element.GetType() == typeof(Package)) { foreach (Actor actor in ((Package)element).Actors) { currentPackage.PurgeReferences( actor, null, oldNameStartTag, oldNameEndTag, newNameStartTag, newNameEndTag, dontMark); } foreach (UseCase useCase in ((Package)element).UseCases) { currentPackage.PurgeReferences( useCase, null, oldNameStartTag, oldNameEndTag, newNameStartTag, newNameEndTag, dontMark); } foreach (Package package in ((Package)element).Packages) { currentPackage.PurgeReferences( package, null, oldNameStartTag, oldNameEndTag, newNameStartTag, newNameEndTag, dontMark); } if (!dontMark) { this.ChangeReferences( ((Package)element).Name, oldNameStartTag, oldNameEndTag, ((Package)element).Name, newNameStartTag, newNameEndTag, false); this.ChangeReferences( ((Package)element).Path, oldNameStartTag, oldNameEndTag, ((Package)element).Path, newNameStartTag, newNameEndTag, false); } } if (element.GetType() == typeof(UseCase)) { foreach (Package package in this.Packages) { package.PurgeReferences( element, null, oldNameStartTag, oldNameEndTag, newNameStartTag, newNameEndTag, dontMark); } if (!dontMark) { this.ChangeReferences( ((UseCase)element).Name, oldNameStartTag, oldNameEndTag, ((UseCase)element).Name, newNameStartTag, newNameEndTag, false); this.ChangeReferences( ((UseCase)element).Path, oldNameStartTag, oldNameEndTag, ((UseCase)element).Path, newNameStartTag, newNameEndTag, false); } // remove use case references in use case's steps foreach (UseCase useCase in this.UseCases) { foreach (Step step in useCase.Steps) { if (step.Dependency.PartnerUniqueID == ((UseCase)element).UniqueID) { step.Dependency.Type = DependencyItem.ReferenceType.None; step.Dependency.PartnerUniqueID = ""; step.Dependency.Stereotype = ""; } } } } if (element.GetType() == typeof(Actor)) { foreach (UseCase useCase in this.UseCases) { ActiveActor tmpAActor = null; foreach (ActiveActor aactor in useCase.ActiveActors) { if (aactor.ActorUniqueID == ((Actor)element).UniqueID) { tmpAActor = aactor; } } if (tmpAActor != null) { useCase.ActiveActors.Remove(tmpAActor); } } foreach (Package package in this.Packages) { package.PurgeReferences( element, null, oldNameStartTag, oldNameEndTag, newNameStartTag, newNameEndTag, dontMark); } if (!dontMark) { this.ChangeReferences( ((Actor)element).Name, oldNameStartTag, oldNameEndTag, ((Actor)element).Name, newNameStartTag, newNameEndTag, false); this.ChangeReferences( ((Actor)element).Path, oldNameStartTag, oldNameEndTag, ((Actor)element).Path, newNameStartTag, newNameEndTag, false); } } }
internal void PurgeReferences( object element, Package targetPackage, String oldNameStartTag, String oldNameEndTag, String newNameStartTag, String newNameEndTag, Boolean dontMark) { Package currentPackage = this; if (element.GetType() == typeof(Stakeholder)) { foreach (Package package in this.Packages) { package.PurgeReferences( (Stakeholder)element, null, oldNameStartTag, oldNameEndTag, newNameStartTag, newNameEndTag, dontMark); } if (!dontMark) { this.ChangeReferences( ((Stakeholder)element).Name, oldNameStartTag, oldNameEndTag, ((Stakeholder)element).Name, newNameStartTag, newNameEndTag, false); this.ChangeReferences( ((Stakeholder)element).Path, oldNameStartTag, oldNameEndTag, ((Stakeholder)element).Path, newNameStartTag, newNameEndTag, false); } foreach (Requirement requirement in this.Requirements) { foreach (ReferencedObject refobj in requirement.Proponents) { if (refobj.UniqueID == ((Stakeholder)element).UniqueID) { requirement.RemoveProponent((Stakeholder)element); break; } } foreach (ReferencedObject refobj in requirement.Beneficiaries) { if (refobj.UniqueID == ((Stakeholder)element).UniqueID) { requirement.RemoveBeneficiary((Stakeholder)element); break; } } } } if (element.GetType() == typeof(Package)) { foreach (Actor actor in ((Package)element).Actors) { currentPackage.PurgeReferences( actor, null, oldNameStartTag, oldNameEndTag, newNameStartTag, newNameEndTag, dontMark); } foreach (UseCase useCase in ((Package)element).UseCases) { currentPackage.PurgeReferences( useCase, null, oldNameStartTag, oldNameEndTag, newNameStartTag, newNameEndTag, dontMark); } foreach (Package package in ((Package)element).Packages) { currentPackage.PurgeReferences( package, null, oldNameStartTag, oldNameEndTag, newNameStartTag, newNameEndTag, dontMark); } if (!dontMark) { this.ChangeReferences( ((Package)element).Name, oldNameStartTag, oldNameEndTag, ((Package)element).Name, newNameStartTag, newNameEndTag, false); this.ChangeReferences( ((Package)element).Path, oldNameStartTag, oldNameEndTag, ((Package)element).Path, newNameStartTag, newNameEndTag, false); } } if (element.GetType() == typeof(UseCase)) { foreach (Package package in this.Packages) { package.PurgeReferences( element, null, oldNameStartTag, oldNameEndTag, newNameStartTag, newNameEndTag, dontMark); } if (!dontMark) { this.ChangeReferences( ((UseCase)element).Name, oldNameStartTag, oldNameEndTag, ((UseCase)element).Name, newNameStartTag, newNameEndTag, false); this.ChangeReferences( ((UseCase)element).Path, oldNameStartTag, oldNameEndTag, ((UseCase)element).Path, newNameStartTag, newNameEndTag, false); } // remove use case references in use case's steps foreach (UseCase useCase in this.UseCases) { foreach (Step step in useCase.Steps) { if (step.Dependency.PartnerUniqueID == ((UseCase)element).UniqueID) { step.Dependency.Type = DependencyItem.ReferenceType.None; step.Dependency.PartnerUniqueID = ""; step.Dependency.Stereotype = ""; } } } // remove use case references in use case's requirements foreach (Requirement requirement in this.Requirements) { foreach (ReferencedObject refobj in requirement.MappedUseCases) { if (refobj.UniqueID == ((UseCase)element).UniqueID) { requirement.RemoveMappedUseCase((UseCase)element); break; } } } } if (element.GetType() == typeof(Actor)) { foreach (UseCase useCase in this.UseCases) { ActiveActor tmpAActor = null; foreach (ActiveActor aactor in useCase.ActiveActors) { if (aactor.ActorUniqueID == ((Actor)element).UniqueID) { tmpAActor = aactor; } } if (tmpAActor != null) { useCase.ActiveActors.Remove(tmpAActor); } } foreach (Package package in this.Packages) { package.PurgeReferences( element, null, oldNameStartTag, oldNameEndTag, newNameStartTag, newNameEndTag, dontMark); } if (!dontMark) { this.ChangeReferences( ((Actor)element).Name, oldNameStartTag, oldNameEndTag, ((Actor)element).Name, newNameStartTag, newNameEndTag, false); this.ChangeReferences( ((Actor)element).Path, oldNameStartTag, oldNameEndTag, ((Actor)element).Path, newNameStartTag, newNameEndTag, false); } } }