protected override IList <Microsoft.VisualStudio.Modeling.ModelElement> BuildElementList(object component) { Microsoft.VisualStudio.Modeling.DomainClassInfo domainClassInfo = DomainRoleInfo.RolePlayer; if (domainClassInfo == null || component == null) { return(new System.Collections.Generic.List <Microsoft.VisualStudio.Modeling.ModelElement>()); } Microsoft.VisualStudio.Modeling.Store store = this.GetStore(component); System.Collections.Generic.IList <Microsoft.VisualStudio.Modeling.ModelElement> ilist; if (component is ReferenceRelationship) { ilist = store.ElementDirectory.FindElements(ReferenceRelationship.DomainClassId); } else { ilist = store.ElementDirectory.FindElements(EmbeddingRelationship.DomainClassId); } System.Collections.Generic.List <Microsoft.VisualStudio.Modeling.ModelElement> list = new System.Collections.Generic.List <Microsoft.VisualStudio.Modeling.ModelElement>(); DomainRelationship domainClass1 = component as DomainRelationship; foreach (Microsoft.VisualStudio.Modeling.ModelElement modelElement in ilist) { DomainRelationship domainClass2 = modelElement as DomainRelationship; if ((domainClass2 != null) && ShouldIncludeCandidate(domainClass1, domainClass2)) { list.Add(modelElement); } } return(list); }
public override void ElementPropertyChanged(ElementPropertyChangedEventArgs e) { if (e.ModelElement != null) { if (e.ModelElement.Store.TransactionManager.CurrentTransaction != null) { if (e.ModelElement.Store.TransactionManager.CurrentTransaction.IsSerializing) { return; } } } if (e.ModelElement == null) { return; } if (ImmutabilityExtensionMethods.GetLocks(e.ModelElement) != Locks.None) { return; } DomainRelationship domainRelationship = e.ModelElement as DomainRelationship; if (domainRelationship != null) { if (e.DomainProperty.Id == DomainRelationship.NameDomainPropertyId) { if (domainRelationship.IsNameTracking == TrackingEnum.True) { domainRelationship.IsNameTracking = TrackingEnum.False; } else if (domainRelationship.IsNameTracking == TrackingEnum.IgnoreOnce) { domainRelationship.IsNameTracking = TrackingEnum.True; } foreach (DomainRole role in domainRelationship.RolesPlayed) { if (role.IsNameTracking == TrackingEnum.True) { if (role.Name != domainRelationship.Name) { role.Name = domainRelationship.Name; role.IsNameTracking = TrackingEnum.IgnoreOnce; } } } } else if (e.DomainProperty.Id == DomainRelationship.InheritanceModifierDomainPropertyId) { if (((InheritanceModifier)e.NewValue) == InheritanceModifier.Abstract || ((InheritanceModifier)e.OldValue) == InheritanceModifier.Abstract) { SerializationHelper.UpdateDerivedElementsSerializationDomainRoles(domainRelationship.Source.RolePlayer); } } } }
/// <summary> /// True if this DomainRelationship is derived from the given class /// </summary> public bool IsDerivedFrom(DomainRelationship candidateBase) { for (DomainRelationship domainClass = this; domainClass != null; domainClass = domainClass.BaseRelationship) { if (domainClass.Equals(candidateBase)) return true; } return false; }
/// <summary> /// True if this DomainRelationship is derived from the given class /// </summary> public bool IsDerivedFrom(DomainRelationship candidateBase) { for (DomainRelationship domainClass = this; domainClass != null; domainClass = domainClass.BaseRelationship) { if (domainClass.Equals(candidateBase)) { return(true); } } return(false); }
internal virtual bool ShouldIncludeCandidate(DomainRelationship currentRoleplayer, DomainRelationship eachCandidate) { if (currentRoleplayer.Source.RolePlayer is DomainClass && currentRoleplayer.Target.RolePlayer is DomainClass && eachCandidate.Source.RolePlayer is DomainClass && eachCandidate.Target.RolePlayer is DomainClass) { if ((currentRoleplayer.Source.RolePlayer as DomainClass).IsDerivedFrom(eachCandidate.Source.RolePlayer as DomainClass) && (currentRoleplayer.Target.RolePlayer as DomainClass).IsDerivedFrom(eachCandidate.Target.RolePlayer as DomainClass)) if (eachCandidate != currentRoleplayer) return !eachCandidate.IsDerivedFrom(currentRoleplayer); } return false; }
internal virtual bool ShouldIncludeCandidate(DomainRelationship currentRoleplayer, DomainRelationship eachCandidate) { if (currentRoleplayer.Source.RolePlayer is DomainClass && currentRoleplayer.Target.RolePlayer is DomainClass && eachCandidate.Source.RolePlayer is DomainClass && eachCandidate.Target.RolePlayer is DomainClass) { if ((currentRoleplayer.Source.RolePlayer as DomainClass).IsDerivedFrom(eachCandidate.Source.RolePlayer as DomainClass) && (currentRoleplayer.Target.RolePlayer as DomainClass).IsDerivedFrom(eachCandidate.Target.RolePlayer as DomainClass)) { if (eachCandidate != currentRoleplayer) { return(!eachCandidate.IsDerivedFrom(currentRoleplayer)); } } } return(false); }
private static void FixUpDerivedRelationships(DomainRelationship domainClass, MetaModel model) { if (domainClass.ModelContext.MetaModel == model) { if (domainClass is EmbeddingRelationship) { EmbeddingRelationship con = domainClass as EmbeddingRelationship; SerializationHelper.UpdateSerializationDomainProperties(domainClass.Store, con.SerializedEmbeddingRelationship, domainClass); } if (domainClass is ReferenceRelationship) { ReferenceRelationship con = domainClass as ReferenceRelationship; SerializationHelper.UpdateSerializationDomainProperties(domainClass.Store, con.SerializedReferenceRelationship, domainClass); } } foreach (DomainRelationship derivedClass in domainClass.DerivedRelationships) { FixUpDerivedRelationships(derivedClass, model); } }
/// <summary> /// Generates the name of the given relationship based on the names of the embedded domain roles. /// </summary> /// <param name="rel">Relationship to generate the name for.</param> /// <returns>Name of the relationship as string.</returns> public static string GenerateDomainRelationshipName(DomainRelationship rel) { return rel.Source.Name + "Has" + rel.Target.Name; }
/// <summary> /// Updates the domain roles of the given element. (Roles from derived elements are included here). /// </summary> /// <param name="store">Store containing the domain model.</param> /// <param name="serializationElement"></param> /// <param name="domainClass"></param> public static void UpdateSerializationDomainRoles(Store store, SerializedDomainClass serializationElement, DomainClass domainClass) { if (serializationElement == null || domainClass == null) { return; } //if (!serializationElement.DomainClass.ParentModelContext.MetaModel.IsTopMost) // return; List <SerializationElement> handledRS = new List <SerializationElement>(); // get roles DomainClass temp = domainClass; SerializedDomainClass tempElement = serializationElement; while (temp != null && tempElement != null) { foreach (SerializationElement sP in tempElement.Children) { if (sP is SerializedReferenceRelationship || sP is SerializedEmbeddingRelationship) { // see whether the relationship is abstract or not. If it is abstract, than we dont // need to add its role players DomainRelationship relationship = null; SerializedReferenceRelationship s = sP as SerializedReferenceRelationship; if (s != null) { relationship = s.ReferenceRelationship; if (s.ReferenceRelationship.InheritanceModifier == InheritanceModifier.Abstract && s.ReferenceRelationship.Source.RolePlayer != domainClass) { continue; } } SerializedEmbeddingRelationship sE = sP as SerializedEmbeddingRelationship; if (sE != null) { relationship = sE.EmbeddingRelationship; if (sE.EmbeddingRelationship.InheritanceModifier == InheritanceModifier.Abstract && sE.EmbeddingRelationship.Source.RolePlayer != domainClass) { continue; } } // see if the current element is still active bool bActive = false; foreach (DomainRole role in temp.RolesPlayed) { if (role.Relationship.Source == role && role.Relationship == relationship) { bActive = true; continue; } } if (!bActive) { continue; } handledRS.Add(sP); if (tempElement != serializationElement) { // see if we already have this element embedded bool bAdd = true; foreach (SerializationElement elem in serializationElement.Children) { if (elem == sP) { bAdd = false; break; } } if (bAdd) { serializationElement.Children.Add(sP); } } } } temp = temp.BaseClass; if (temp != null) { tempElement = temp.SerializedDomainClass; } else { tempElement = null; } } // remove unneded rs List <SerializationElement> toRemove = new List <SerializationElement>(); foreach (SerializationElement sP in serializationElement.Children) { if (sP is SerializedReferenceRelationship || sP is SerializedEmbeddingRelationship) { if (!handledRS.Contains(sP)) { toRemove.Add(sP); } } } foreach (SerializationElement sP in toRemove) { serializationElement.Children.Remove(sP); } }
/// <summary> /// Generates the name of the given relationship based on the names of the embedded domain roles. /// </summary> /// <param name="rel">Relationship to generate the name for.</param> /// <returns>Name of the relationship as string.</returns> public static string GenerateDomainRelationshipName(DomainRelationship rel) { return(rel.Source.Name + "References" + rel.Target.Name); }
private static void FixUpDerivedRelationships(DomainRelationship domainClass, MetaModel model) { if (domainClass.ModelContext.MetaModel == model) { if (domainClass is EmbeddingRelationship) { EmbeddingRelationship con = domainClass as EmbeddingRelationship; SerializationHelper.UpdateSerializationDomainProperties(domainClass.Store, con.SerializedEmbeddingRelationship, domainClass); } if (domainClass is ReferenceRelationship) { ReferenceRelationship con = domainClass as ReferenceRelationship; SerializationHelper.UpdateSerializationDomainProperties(domainClass.Store, con.SerializedReferenceRelationship, domainClass); } } foreach (DomainRelationship derivedClass in domainClass.DerivedRelationships) FixUpDerivedRelationships(derivedClass, model); }
/// <summary> /// Generate the constructors for a DomainRelationship /// </summary> /// <param name="domainRelationship">the domain relationship to generate constructors for</param> /// <param name="generatedClass">Whether this is the class carrying the generated code or the derived class in a double-derived pair</param> private void GenerateDomainRelationshipConstructors(DomainRelationship domainRelationship, bool generatedClass) { if(domainRelationship.HasCustomConstructor) { #line default #line hidden #line 455 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("// Constructors were not generated for this relationship because it had HasCustom" + "Constructor\r\n// set to true. Please provide the constructors below in a partial " + "class.\r\n"); #line default #line hidden #line 458 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" // We comment out the constructors if HasCustomConstructor is set to true PushIndent("//"); } string ctorName; if ( generatedClass ) { ctorName = CodeGenerationUtilities.GetGenerationClassName(domainRelationship); } else { ctorName = domainRelationship.Name; } if(domainRelationship.InheritanceModifier == InheritanceModifier.Abstract || (generatedClass && domainRelationship.GeneratesDoubleDerived )) { #line default #line hidden #line 473 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(@"/// <summary> /// Constructor. /// </summary> /// <param name=""partition"">The Partition instance containing this ElementLink</param> /// <param name=""roleAssignments"">A set of role assignments for roleplayer initialization</param> /// <param name=""propertyAssignments"">A set of attribute assignments for attribute initialization</param> protected "); #line default #line hidden #line 480 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(ctorName)); #line default #line hidden #line 480 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("(DslModeling::Partition partition, DslModeling::RoleAssignment[] roleAssignments," + " DslModeling::PropertyAssignment[] propertyAssignments)\r\n\t: base(partition, role" + "Assignments, propertyAssignments)\r\n{\r\n}\r\n"); #line default #line hidden #line 484 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" } else { string sourceType = domainRelationship.Source.RolePlayer.GetRelativeName(domainRelationship.Namespace, true); string targetType = domainRelationship.Target.RolePlayer.GetRelativeName(domainRelationship.Namespace, true); string sourceName = "source"; string targetName = "target"; // calc access modifier for the ctor. It has to be the minimum among source and target. string ctorAccessModifier = "public"; if ( domainRelationship.Source.RolePlayer.AccessModifier == AccessModifier.Assembly || domainRelationship.Target.RolePlayer.AccessModifier == AccessModifier.Assembly) { ctorAccessModifier = "internal"; } #line default #line hidden #line 502 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("\t\t\r\n/// <summary>\r\n/// Constructor\r\n/// Creates a "); #line default #line hidden #line 505 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(domainRelationship.Name)); #line default #line hidden #line 505 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(" link in the same Partition as the given "); #line default #line hidden #line 505 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(domainRelationship.Source.RolePlayer.Name)); #line default #line hidden #line 505 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("\r\n/// </summary>\r\n/// <param name=\""); #line default #line hidden #line 507 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(sourceName)); #line default #line hidden #line 507 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("\">"); #line default #line hidden #line 507 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(domainRelationship.Source.RolePlayer.Name)); #line default #line hidden #line 507 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(" to use as the source of the relationship.</param>\r\n/// <param name=\""); #line default #line hidden #line 508 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(targetName)); #line default #line hidden #line 508 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("\">"); #line default #line hidden #line 508 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(domainRelationship.Target.RolePlayer.Name)); #line default #line hidden #line 508 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(" to use as the target of the relationship.</param>\r\n"); #line default #line hidden #line 509 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(ctorAccessModifier)); #line default #line hidden #line 509 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(" "); #line default #line hidden #line 509 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(ctorName)); #line default #line hidden #line 509 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("("); #line default #line hidden #line 509 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(sourceType)); #line default #line hidden #line 509 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(" "); #line default #line hidden #line 509 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(sourceName)); #line default #line hidden #line 509 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(", "); #line default #line hidden #line 509 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(targetType)); #line default #line hidden #line 509 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(" "); #line default #line hidden #line 509 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(targetName)); #line default #line hidden #line 509 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(")\r\n\t: base(("); #line default #line hidden #line 510 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(sourceName)); #line default #line hidden #line 510 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(" != null ? "); #line default #line hidden #line 510 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(sourceName)); #line default #line hidden #line 510 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(".Partition : null), new DslModeling::RoleAssignment[]{new DslModeling::RoleAssign" + "ment("); #line default #line hidden #line 510 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(domainRelationship.Name)); #line default #line hidden #line 510 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("."); #line default #line hidden #line 510 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(domainRelationship.Source.Name)); #line default #line hidden #line 510 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("DomainRoleId, "); #line default #line hidden #line 510 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(sourceName)); #line default #line hidden #line 510 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("), new DslModeling::RoleAssignment("); #line default #line hidden #line 510 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(domainRelationship.Name)); #line default #line hidden #line 510 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("."); #line default #line hidden #line 510 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(domainRelationship.Target.Name)); #line default #line hidden #line 510 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("DomainRoleId, "); #line default #line hidden #line 510 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(targetName)); #line default #line hidden #line 510 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(")}, "); #line default #line hidden #line 510 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.MetaModel.Namespace)); #line default #line hidden #line 510 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("."); #line default #line hidden #line 510 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.MetaModel.Name)); #line default #line hidden #line 510 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(@"DomainModelIdProvider.Instance.CreateId()) { } /// <summary> /// Constructor /// </summary> /// <param name=""store"">Store where new link is to be created.</param> /// <param name=""roleAssignments"">List of relationship role assignments.</param> public "); #line default #line hidden #line 519 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(ctorName)); #line default #line hidden #line 519 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("(DslModeling::Store store, params DslModeling::RoleAssignment[] roleAssignments)\r" + "\n\t: base(store != null ? store.DefaultPartitionForClass(DomainClassId) : null, r" + "oleAssignments, "); #line default #line hidden #line 520 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.MetaModel.Namespace)); #line default #line hidden #line 520 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("."); #line default #line hidden #line 520 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.MetaModel.Name)); #line default #line hidden #line 520 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(@"DomainModelIdProvider.Instance.CreateId()) { } /// <summary> /// Constructor /// </summary> /// <param name=""store"">Store where new link is to be created.</param> /// <param name=""roleAssignments"">List of relationship role assignments.</param> /// <param name=""propertyAssignments"">List of properties assignments to set on the new link.</param> public "); #line default #line hidden #line 530 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(ctorName)); #line default #line hidden #line 530 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("(DslModeling::Store store, DslModeling::RoleAssignment[] roleAssignments, DslMode" + "ling::PropertyAssignment[] propertyAssignments)\r\n\t: base(store != null ? store.D" + "efaultPartitionForClass(DomainClassId) : null, roleAssignments, "); #line default #line hidden #line 531 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.MetaModel.Namespace)); #line default #line hidden #line 531 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("."); #line default #line hidden #line 531 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.MetaModel.Name)); #line default #line hidden #line 531 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(@"DomainModelIdProvider.Instance.AssignId(propertyAssignments)) { } /// <summary> /// Constructor /// </summary> /// <param name=""partition"">Partition where new link is to be created.</param> /// <param name=""roleAssignments"">List of relationship role assignments.</param> public "); #line default #line hidden #line 540 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(ctorName)); #line default #line hidden #line 540 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("(DslModeling::Partition partition, params DslModeling::RoleAssignment[] roleAssig" + "nments)\r\n\t: base(partition, roleAssignments, "); #line default #line hidden #line 541 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.MetaModel.Namespace)); #line default #line hidden #line 541 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("."); #line default #line hidden #line 541 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.MetaModel.Name)); #line default #line hidden #line 541 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(@"DomainModelIdProvider.Instance.CreateId()) { } /// <summary> /// Constructor /// </summary> /// <param name=""partition"">Partition where new link is to be created.</param> /// <param name=""roleAssignments"">List of relationship role assignments.</param> /// <param name=""propertyAssignments"">List of properties assignments to set on the new link.</param> public "); #line default #line hidden #line 551 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(ctorName)); #line default #line hidden #line 551 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("(DslModeling::Partition partition, DslModeling::RoleAssignment[] roleAssignments," + " DslModeling::PropertyAssignment[] propertyAssignments)\r\n\t: base(partition, role" + "Assignments, "); #line default #line hidden #line 552 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.MetaModel.Namespace)); #line default #line hidden #line 552 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("."); #line default #line hidden #line 552 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.MetaModel.Name)); #line default #line hidden #line 552 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("DomainModelIdProvider.Instance.AssignId(propertyAssignments))\r\n{\r\n}\r\n"); #line default #line hidden #line 555 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" } if(domainRelationship.HasCustomConstructor) { PopIndent(); } }
// Generate a strongly-typed static accessor placed on a REL for getting REL instances that connect two MELs private void GenerateLinkAccessor(DomainRelationship rel) { bool getLinksRequiresNew = false; bool getLinkRequiresNew = false; for (DomainRelationship baseRel = rel.BaseRelationship as DomainRelationship; baseRel != null; baseRel = baseRel.BaseRelationship as DomainRelationship) { // If the roleplayer types in any of the base relationships is the same, we need a 'new' // keyword for this method. if (rel.Source.RolePlayer.GetFullName(true) == baseRel.Source.RolePlayer.GetFullName(true) && rel.Target.RolePlayer.GetFullName(true) == baseRel.Target.RolePlayer.GetFullName(true)) { getLinksRequiresNew = true; if(!baseRel.AllowsDuplicates) { getLinkRequiresNew = true; break; } } } #line default #line hidden #line 395 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("#region "); #line default #line hidden #line 396 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(rel.Name)); #line default #line hidden #line 396 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(" instance accessors\r\n\r\n/// <summary>\r\n/// Get any "); #line default #line hidden #line 399 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(rel.Name)); #line default #line hidden #line 399 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(" links between a given "); #line default #line hidden #line 399 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(rel.Source.RolePlayer.Name)); #line default #line hidden #line 399 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(" and a "); #line default #line hidden #line 399 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(rel.Target.RolePlayer.Name)); #line default #line hidden #line 399 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(".\r\n/// </summary>\r\n[global::System.Diagnostics.DebuggerStepThrough]\r\n[global::Sys" + "tem.Diagnostics.CodeAnalysis.SuppressMessage(\"Microsoft.Design\", \"CA1011\")]\r\n"); #line default #line hidden #line 403 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetGeneratedLinkAccessModifier(rel))); #line default #line hidden #line 403 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(" static "); #line default #line hidden #line 403 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(getLinksRequiresNew ? "new " : "")); #line default #line hidden #line 403 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("global::System.Collections.ObjectModel.ReadOnlyCollection<"); #line default #line hidden #line 403 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(rel.GetFullName(true))); #line default #line hidden #line 403 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("> GetLinks( "); #line default #line hidden #line 403 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(rel.Source.RolePlayer.GetFullName(true))); #line default #line hidden #line 403 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(" source, "); #line default #line hidden #line 403 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(rel.Target.RolePlayer.GetFullName(true))); #line default #line hidden #line 403 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(" target )\r\n{\r\n\tglobal::System.Collections.Generic.List<"); #line default #line hidden #line 405 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(rel.GetFullName(true))); #line default #line hidden #line 405 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("> outLinks = new global::System.Collections.Generic.List<"); #line default #line hidden #line 405 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(rel.GetFullName(true))); #line default #line hidden #line 405 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(">();\r\n\tglobal::System.Collections.Generic.IList<"); #line default #line hidden #line 406 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(rel.GetFullName(true))); #line default #line hidden #line 406 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("> links = DslModeling::DomainRoleInfo.GetElementLinks<"); #line default #line hidden #line 406 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(rel.GetFullName(true))); #line default #line hidden #line 406 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(">(source, "); #line default #line hidden #line 406 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(rel.GetFullName(true))); #line default #line hidden #line 406 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("."); #line default #line hidden #line 406 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(rel.Source.Name)); #line default #line hidden #line 406 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("DomainRoleId);\r\n\tforeach ( "); #line default #line hidden #line 407 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(rel.GetFullName(true))); #line default #line hidden #line 407 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(" link in links )\r\n\t{\r\n\t\tif ( target.Equals(link."); #line default #line hidden #line 409 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(rel.Target.Name)); #line default #line hidden #line 409 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(") )\r\n\t\t{\r\n\t\t\toutLinks.Add(link);\r\n\t\t}\r\n\t}\r\n\treturn outLinks.AsReadOnly();\r\n}\r\n"); #line default #line hidden #line 416 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" // If AllowsDuplicates is false, only one link is allowed between any two role players if(!rel.AllowsDuplicates) { #line default #line hidden #line 420 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("/// <summary>\r\n/// Get the one "); #line default #line hidden #line 422 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(rel.Name)); #line default #line hidden #line 422 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(" link between a given "); #line default #line hidden #line 422 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(rel.Source.RolePlayer.Name)); #line default #line hidden #line 422 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("and a "); #line default #line hidden #line 422 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(rel.Target.RolePlayer.Name)); #line default #line hidden #line 422 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(".\r\n/// </summary>\r\n[global::System.Diagnostics.DebuggerStepThrough]\r\n[global::Sys" + "tem.Diagnostics.CodeAnalysis.SuppressMessage(\"Microsoft.Design\", \"CA1011\")]\r\n"); #line default #line hidden #line 426 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetGeneratedLinkAccessModifier(rel))); #line default #line hidden #line 426 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(" static "); #line default #line hidden #line 426 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(getLinkRequiresNew ? "new " : "")); #line default #line hidden #line 426 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(rel.GetFullName(true))); #line default #line hidden #line 426 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(" GetLink( "); #line default #line hidden #line 426 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(rel.Source.RolePlayer.GetFullName(true))); #line default #line hidden #line 426 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(" source, "); #line default #line hidden #line 426 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(rel.Target.RolePlayer.GetFullName(true))); #line default #line hidden #line 426 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(" target )\r\n{\r\n\tglobal::System.Collections.Generic.IList<"); #line default #line hidden #line 428 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(rel.GetFullName(true))); #line default #line hidden #line 428 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("> links = DslModeling::DomainRoleInfo.GetElementLinks<"); #line default #line hidden #line 428 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(rel.GetFullName(true))); #line default #line hidden #line 428 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(">(source, "); #line default #line hidden #line 428 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(rel.GetFullName(true))); #line default #line hidden #line 428 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("."); #line default #line hidden #line 428 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(rel.Source.Name)); #line default #line hidden #line 428 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("DomainRoleId);\r\n\tforeach ( "); #line default #line hidden #line 429 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(rel.GetFullName(true))); #line default #line hidden #line 429 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(" link in links )\r\n\t{\r\n\t\tif ( target.Equals(link."); #line default #line hidden #line 431 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(rel.Target.Name)); #line default #line hidden #line 431 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(") )\r\n\t\t{\r\n\t\t\treturn link;\r\n\t\t}\r\n\t}\r\n\treturn null;\r\n}\r\n\r\n"); #line default #line hidden #line 439 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" } #line default #line hidden #line 441 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("#endregion\r\n"); #line default #line hidden #line 443 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" }
public void GenerateDomainRelationship(DomainRelationship domainRelationship) { //IDable, IDomainModelOwnable string baseClass = "DslEditorModeling::DomainModelLink"; baseClass = CodeGenerationUtilities.GetBaseRelationship(domainRelationship, baseClass); string namespaceString = domainRelationship.Namespace; if(!string.IsNullOrEmpty(namespaceString)) { #line default #line hidden #line 27 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("namespace "); #line default #line hidden #line 28 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(namespaceString)); #line default #line hidden #line 28 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("\r\n{\r\n"); #line default #line hidden #line 30 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" } PushIndent("\t"); this.Write(Utilities.Instance.GenerateSummary("DomainRelationship", domainRelationship, true)); //GenerateClrAttributes(domainRelationship.Attributes); this.Write(Utilities.Instance.GenerateResourceAttributes(domainRelationship, GeneratedResourceName)); //GenerateClsCompliantAttribute(domainRelationship.AccessModifier); this.Write(Utilities.Instance.GenerateDebuggerDisplayAttribute(domainRelationship)); PopIndent(); #line default #line hidden #line 39 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("\t[DslModeling::DomainRelationship("); #line default #line hidden #line 40 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" if(domainRelationship.AllowsDuplicates) { #line default #line hidden #line 40 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("AllowsDuplicates = true"); #line default #line hidden #line 40 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" } #line default #line hidden #line 40 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(")]\r\n\t[DslModeling::DomainObjectId(\""); #line default #line hidden #line 41 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(domainRelationship.Id.ToString("D"))); #line default #line hidden #line 41 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("\")]\r\n\t"); #line default #line hidden #line 42 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetAccessModifier(domainRelationship.AccessModifier))); #line default #line hidden #line 42 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetGenerationInheritanceModifier(domainRelationship))); #line default #line hidden #line 42 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(" partial class "); #line default #line hidden #line 42 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetGenerationClassName(domainRelationship))); #line default #line hidden #line 42 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(" : "); #line default #line hidden #line 42 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(baseClass)); #line default #line hidden #line 42 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("\r\n\t{\r\n\t\t#region Constructors, domain class Id\r\n\t\r\n\t\t/// <summary>\r\n\t\t/// "); #line default #line hidden #line 47 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(domainRelationship.Name)); #line default #line hidden #line 47 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(" domain class Id.\r\n\t\t/// </summary>\r\n\t\tpublic static readonly new global::System." + "Guid DomainClassId = new System.Guid(\""); #line default #line hidden #line 49 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(domainRelationship.Id.ToString("D"))); #line default #line hidden #line 49 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("\");\r\n\r\n"); #line default #line hidden #line 51 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" PushIndent("\t"); PushIndent("\t"); GenerateDomainRelationshipConstructors(domainRelationship, true); PopIndent(); PopIndent(); #line default #line hidden #line 57 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("\t\t#endregion\r\n"); #line default #line hidden #line 59 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" PushIndent("\t"); PushIndent("\t"); // Generate properties to access the roles of this link, and static // methods to access the opposite roleplayers given a roleplayer. foreach(DomainRole role in domainRelationship.Roles) { this.Write(DomainRoleGenerator.Instance.GenerateDomainRole(role)); this.Write(DomainRoleGenerator.Instance.GenerateStaticRoleAccessorOnRelationship(role.Opposite, domainRelationship)); this.Write(DomainRoleGenerator.Instance.GenerateDomainRoleOverride(role)); } // Generate properties for domain properties on this relationship DomainProperty nameProperty = null; foreach(DomainProperty property in domainRelationship.Properties) { this.Write(DomainPropertyGenerator.Instance.GenerateDomainProperty(property)); if( property.IsElementName ) nameProperty = property; } // Add accessors for roles that this REL plays in some other REL. /* if ( domainRelationship.RolesPlayed.Count > 0 ) { #line default #line hidden #line 85 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("#region Accessors for roles that this REL plays in other RELs\r\n"); #line default #line hidden #line 87 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" } foreach(DomainRole role in domainRelationship.RolesPlayed) { GenerateOppositeRoleAccessor(role); } if ( domainRelationship.RolesPlayed.Count > 0 ) { #line default #line hidden #line 95 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("#endregion\r\n"); #line default #line hidden #line 97 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" } */ // Add static accessors for link instances this.Write(DomainRoleGenerator.Instance.GenerateRoleLinkAccessor(domainRelationship.Source)); this.Write(DomainRoleGenerator.Instance.GenerateRoleLinkAccessor(domainRelationship.Target)); GenerateLinkAccessor(domainRelationship); this.PopIndent(); string domainModelType = domainRelationship.GetMetaModel().GetFullName(true)+"DomainModel"; string modifier = "override "; #line default #line hidden #line 110 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("\t\t\r\n /// <summary>\r\n /// Gets the domain class Id of this element.\r\n ///" + " </summary>\r\n /// <returns>DomainClass Id.</returns>\r\n public override Sys" + "tem.Guid GetDomainClassId()\r\n\t{\t\t\r\n\t\treturn "); #line default #line hidden #line 118 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(domainRelationship.GetFullName(true))); #line default #line hidden #line 118 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(".DomainClassId;\t\t\r\n\t}\r\n\r\n /// <summary>\r\n /// Gets whether this is an embed" + "ding relationship or not.\r\n /// </summary>\r\n public override bool IsEmbedd" + "ing\r\n {\r\n get\r\n\t\t{\r\n"); #line default #line hidden #line 128 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" if( domainRelationship is EmbeddingRelationship ) { #line default #line hidden #line 131 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("\t\t\treturn true;\r\n"); #line default #line hidden #line 133 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" } else { #line default #line hidden #line 137 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("\t\t\treturn false;\r\n"); #line default #line hidden #line 139 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" } #line default #line hidden #line 141 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("\t\t}\r\n }\r\n\r\n\t#region IDomainModelOwnable\r\n\t/*\r\n\t/// <summary>\r\n /// Gets the" + " document data\r\n /// </summary>\r\n public "); #line default #line hidden #line 150 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(modifier)); #line default #line hidden #line 150 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("DslEditorModeling::ModelData DocumentData\r\n {\r\n get\r\n\t\t{\r\n"); #line default #line hidden #line 154 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" if( this.EditorType == GenerationEditorType.VSPlugin ) { #line default #line hidden #line 157 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("\t\t\t// Null because in the visual studio plugin environment there can be multiple " + "model datas present at once. Therefore there\r\n\t\t\t// is no singleton accessor for" + " the model data.\r\n\t\t\treturn null;\r\n"); #line default #line hidden #line 161 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" } else { #line default #line hidden #line 165 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("\t\t\treturn "); #line default #line hidden #line 166 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(domainRelationship.GetMetaModel().GetFullName(true))); #line default #line hidden #line 166 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("DocumentData.Instance;\r\n"); #line default #line hidden #line 167 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" } #line default #line hidden #line 169 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("\t\t}\r\n }\r\n\t*/\r\n\t\r\n\t/// <summary>\r\n /// Gets the domain model type.\r\n /// " + "</summary>\r\n /// <returns></returns>\r\n public "); #line default #line hidden #line 178 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(modifier)); #line default #line hidden #line 178 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("System.Type GetDomainModelType()\r\n\t{\r\n\t\treturn typeof("); #line default #line hidden #line 180 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(domainModelType)); #line default #line hidden #line 180 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(");\r\n\t}\r\n\r\n /// <summary>\r\n /// Gets the domain model services.\r\n /// </s" + "ummary>\r\n /// <returns></returns>\r\n public "); #line default #line hidden #line 187 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(modifier)); #line default #line hidden #line 187 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("DslEditorModeling::IDomainModelServices GetDomainModelServices()\r\n\t{\r\n\t\treturn "); #line default #line hidden #line 189 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(this.MetaModel.GetFullName(true))); #line default #line hidden #line 189 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("DomainModelServices.Instance;\r\n\t}\r\n\t\r\n /// <summary>\r\n /// Gets the domain " + "model DomainClassId.\r\n /// </summary>\r\n /// <returns></returns>\r\n publi" + "c "); #line default #line hidden #line 196 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(modifier)); #line default #line hidden #line 196 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("System.Guid GetDomainModelTypeId()\r\n\t{\r\n\t\treturn "); #line default #line hidden #line 198 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(domainModelType)); #line default #line hidden #line 198 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(".DomainModelId;\r\n\t}\t\t\r\n\t\r\n /// <summary>\r\n /// Gets or sets the value of th" + "e property (which is marked as element name)\r\n /// </summary>\r\n public "); #line default #line hidden #line 204 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(modifier)); #line default #line hidden #line 204 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("string DomainElementName\r\n\t{\r\n\t\tget\r\n\t\t{\r\n"); #line default #line hidden #line 208 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" if( nameProperty != null ) { #line default #line hidden #line 211 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("\t\t\treturn this."); #line default #line hidden #line 212 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(nameProperty.Name)); #line default #line hidden #line 212 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(";\r\n"); #line default #line hidden #line 213 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" } else { if( domainRelationship.BaseRelationship != null ) { #line default #line hidden #line 219 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("\t\t\treturn base.DomainElementName;\r\n"); #line default #line hidden #line 221 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" } else { #line default #line hidden #line 225 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("\t\t\treturn null;\r\n"); #line default #line hidden #line 227 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" } } #line default #line hidden #line 230 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("\t\t}\r\n\t\tset\r\n\t\t{\r\n"); #line default #line hidden #line 234 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" if( nameProperty != null ) { #line default #line hidden #line 237 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("\t\t\tthis."); #line default #line hidden #line 238 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(nameProperty.Name)); #line default #line hidden #line 238 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(" = value;\r\n"); #line default #line hidden #line 239 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" } else { if( domainRelationship.BaseRelationship != null ) { #line default #line hidden #line 245 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("\t\t\tbase.DomainElementName = value;\r\n"); #line default #line hidden #line 247 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" } } #line default #line hidden #line 250 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("\t\t}\r\n\t}\r\n\t\r\n /// <summary>\r\n /// Gets whether the domain element has a prop" + "erty marked as element name.\r\n /// </summary>\r\n public "); #line default #line hidden #line 257 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(modifier)); #line default #line hidden #line 257 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("bool DomainElementHasName \r\n {\r\n\t\tget\r\n\t\t{\r\n"); #line default #line hidden #line 261 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" if( nameProperty != null ) { #line default #line hidden #line 264 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("\t\t\treturn true;\r\n"); #line default #line hidden #line 266 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" } else { if( domainRelationship.BaseRelationship != null ) { #line default #line hidden #line 272 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("\t\t\treturn base.DomainElementHasName;\r\n"); #line default #line hidden #line 274 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" } else { #line default #line hidden #line 278 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("\t\t\treturn false;\r\n"); #line default #line hidden #line 280 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" } } #line default #line hidden #line 283 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("\t\t}\r\n }\r\n\t\r\n\t/// <summary>\r\n /// Gets the domain element name info if there" + " is one; Null otherwise.\r\n /// </summary>\r\n public "); #line default #line hidden #line 290 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(modifier)); #line default #line hidden #line 290 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("DslModeling::DomainPropertyInfo DomainElementNameInfo\r\n {\r\n\t\tget\r\n\t\t{\r\n"); #line default #line hidden #line 294 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" if( nameProperty != null ) { #line default #line hidden #line 297 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("\t\t\treturn this.Store.DomainDataDirectory.GetDomainProperty("); #line default #line hidden #line 298 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(domainRelationship.GetFullName(true))); #line default #line hidden #line 298 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("."); #line default #line hidden #line 298 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(nameProperty.Name)); #line default #line hidden #line 298 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("DomainPropertyId);\r\n"); #line default #line hidden #line 299 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" } else { if( domainRelationship.BaseRelationship != null ) { #line default #line hidden #line 305 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("\t\t\treturn base.DomainElementNameInfo;\r\n"); #line default #line hidden #line 307 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" } else { #line default #line hidden #line 311 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("\t\t\treturn null;\r\n"); #line default #line hidden #line 313 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" } } #line default #line hidden #line 317 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("\t\t}\r\n }\r\n\t\r\n\t/// <summary>\r\n /// Gets the type of the ModelElement as strin" + "g.\r\n /// </summary>\r\n public "); #line default #line hidden #line 324 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(modifier)); #line default #line hidden #line 324 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("string DomainElementType\r\n {\r\n get\r\n {\r\n return \""); #line default #line hidden #line 328 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(domainRelationship.Name)); #line default #line hidden #line 328 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("\";\r\n }\r\n }\r\n\r\n /// <summary>\r\n /// Gets the display name of the t" + "ype of the ModelElement.\r\n /// </summary>\r\n public "); #line default #line hidden #line 335 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(modifier)); #line default #line hidden #line 335 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("string DomainElementTypeDisplayName\r\n {\r\n get\r\n {\r\n r" + "eturn \""); #line default #line hidden #line 339 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(domainRelationship.DisplayName)); #line default #line hidden #line 339 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("\";\r\n }\r\n }\t\r\n\t#endregion\r\n}\r\n"); #line default #line hidden #line 344 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" // If this link is double-derived, generate the skeleton derived class (with just the // constructors) if ( domainRelationship.GeneratesDoubleDerived ) { this.Write(Utilities.Instance.GenerateSummary("DomainRelationship", domainRelationship, false)); //GenerateClsCompliantAttribute(domainRelationship.AccessModifier); #line default #line hidden #line 351 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("\t"); #line default #line hidden #line 352 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetAccessModifier(domainRelationship.AccessModifier))); #line default #line hidden #line 352 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetInheritanceModifier(domainRelationship.InheritanceModifier))); #line default #line hidden #line 352 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(" partial class "); #line default #line hidden #line 352 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(domainRelationship.Name)); #line default #line hidden #line 352 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(" : "); #line default #line hidden #line 352 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetGenerationClassName(domainRelationship))); #line default #line hidden #line 352 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("\r\n\t{\r\n\t\t#region Constructors\r\n"); #line default #line hidden #line 355 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" PushIndent("\t"); PushIndent("\t"); GenerateDomainRelationshipConstructors(domainRelationship, false); PopIndent(); PopIndent(); #line default #line hidden #line 361 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("\t\t#endregion\r\n\t}\r\n"); #line default #line hidden #line 364 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" } if(!string.IsNullOrEmpty(namespaceString)) { PopIndent(); #line default #line hidden #line 369 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" this.Write("}\r\n"); #line default #line hidden #line 371 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRelationshipGenerator.tt" } }
// Generate static methods on the relationship to access the opposite role players of a given role player. private void GenerateStaticRoleAccessorOnRelationshipInternal(DomainRole role, DomainRelationship relationship) { DomainRole opposite = role.Opposite; // Camel case the role player name to use as the parameter name string roleParameterName = "element"; string oppositeRoleParameterName = "new"+opposite.Name.TrimStart('@'); #line default #line hidden #line 391 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write("#region Static methods to access "); #line default #line hidden #line 392 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(role.PropertyName)); #line default #line hidden #line 392 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(" of a "); #line default #line hidden #line 392 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(role.RolePlayer.Name)); #line default #line hidden #line 392 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write("\r\n"); #line default #line hidden #line 393 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" bool getRequiresNew = false; bool setRequiresNew = false; string roleType = role.RolePlayer.GetRelativeName(relationship.Namespace, true); string oppositeRoleType = opposite.RolePlayer.GetRelativeName(relationship.Namespace, true); // Figure out if the get or set requires a 'new' keyword (if it's already declared in a base relationship). for (DomainRelationship baseRel = role.Relationship.BaseRelationship as DomainRelationship; baseRel != null; baseRel = baseRel.BaseRelationship as DomainRelationship) { foreach (DomainRole baseRole in baseRel.Roles) { if (baseRole.PropertyName == role.PropertyName && // UNDONE: GeMathew - should we be using relationship.Namespace instead in the line below? baseRole.RolePlayer.GetRelativeName(baseRel.Namespace, true) == roleType) { getRequiresNew = true; if (baseRole.Opposite.RolePlayer.GetRelativeName(baseRel.Namespace, true) == oppositeRoleType) { setRequiresNew = true; } } } } if(role.Multiplicity == Tum.PDE.LanguageDSL.Multiplicity.One || role.Multiplicity == Tum.PDE.LanguageDSL.Multiplicity.ZeroOne) { #line default #line hidden #line 421 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write("/// <summary>\r\n/// Gets "); #line default #line hidden #line 423 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(role.PropertyName)); #line default #line hidden #line 423 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(".\r\n/// </summary>\r\n[global::System.Diagnostics.DebuggerStepThrough]\r\n[global::Sys" + "tem.Diagnostics.CodeAnalysis.SuppressMessage(\"Microsoft.Design\", \"CA1011\")]\r\n"); #line default #line hidden #line 427 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetGeneratedPropertyGetterAccessModifier(role))); #line default #line hidden #line 427 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(" static "); #line default #line hidden #line 427 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(getRequiresNew ? "new " : "")); #line default #line hidden #line 427 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(oppositeRoleType)); #line default #line hidden #line 427 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(" Get"); #line default #line hidden #line 427 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(role.PropertyName.TrimStart('@'))); #line default #line hidden #line 427 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write("("); #line default #line hidden #line 427 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(roleType)); #line default #line hidden #line 427 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(" "); #line default #line hidden #line 427 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(roleParameterName)); #line default #line hidden #line 427 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(")\r\n{\r\n\treturn DslModeling::DomainRoleInfo.GetLinkedElement("); #line default #line hidden #line 429 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(roleParameterName)); #line default #line hidden #line 429 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(", "); #line default #line hidden #line 429 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(role.Name)); #line default #line hidden #line 429 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write("DomainRoleId) as "); #line default #line hidden #line 429 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(opposite.RolePlayer.GetRelativeName(relationship.Namespace, true))); #line default #line hidden #line 429 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(";\r\n}\r\n\r\n/// <summary>\r\n/// Sets "); #line default #line hidden #line 433 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(role.PropertyName)); #line default #line hidden #line 433 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(".\r\n/// </summary>\r\n[global::System.Diagnostics.DebuggerStepThrough]\r\n[global::Sys" + "tem.Diagnostics.CodeAnalysis.SuppressMessage(\"Microsoft.Design\", \"CA1011\")]\r\n"); #line default #line hidden #line 437 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetGeneratedPropertySetterAccessModifier(role))); #line default #line hidden #line 437 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(" static "); #line default #line hidden #line 437 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(setRequiresNew ? "new " : "")); #line default #line hidden #line 437 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write("void Set"); #line default #line hidden #line 437 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(role.PropertyName.TrimStart('@'))); #line default #line hidden #line 437 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write("("); #line default #line hidden #line 437 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(roleType)); #line default #line hidden #line 437 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(" "); #line default #line hidden #line 437 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(roleParameterName)); #line default #line hidden #line 437 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(", "); #line default #line hidden #line 437 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(oppositeRoleType)); #line default #line hidden #line 437 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(" "); #line default #line hidden #line 437 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(oppositeRoleParameterName)); #line default #line hidden #line 437 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(")\r\n{\r\n\tDslModeling::DomainRoleInfo.SetLinkedElement("); #line default #line hidden #line 439 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(roleParameterName)); #line default #line hidden #line 439 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(", "); #line default #line hidden #line 439 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(role.Name)); #line default #line hidden #line 439 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write("DomainRoleId, "); #line default #line hidden #line 439 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(oppositeRoleParameterName)); #line default #line hidden #line 439 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(");\r\n}\r\n"); #line default #line hidden #line 441 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" } else { // If the multiplicity of the role is *, figure out what type of // collection type to use. If the user specified a custom collection // type, use that. string linkedElementCollectionType; if (role.Relationship.InheritanceModifier == InheritanceModifier.Abstract) { linkedElementCollectionType = "DslModeling::ReadOnlyLinkedElementCollection"; } else { linkedElementCollectionType = "DslModeling::LinkedElementCollection"; } #line default #line hidden #line 458 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write("/// <summary>\r\n/// Gets a list of "); #line default #line hidden #line 460 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(role.PropertyName)); #line default #line hidden #line 460 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(".\r\n/// </summary>\r\n[global::System.Diagnostics.DebuggerStepThrough]\r\n[global::Sys" + "tem.Diagnostics.CodeAnalysis.SuppressMessage(\"Microsoft.Design\", \"CA1011\")]\r\n"); #line default #line hidden #line 464 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetGeneratedPropertyGetterAccessModifier(role))); #line default #line hidden #line 464 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(" static "); #line default #line hidden #line 464 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(getRequiresNew ? "new " : "")); #line default #line hidden #line 464 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(linkedElementCollectionType)); #line default #line hidden #line 464 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write("<"); #line default #line hidden #line 464 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(oppositeRoleType)); #line default #line hidden #line 464 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write("> Get"); #line default #line hidden #line 464 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(role.PropertyName.TrimStart('@'))); #line default #line hidden #line 464 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write("("); #line default #line hidden #line 464 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(roleType)); #line default #line hidden #line 464 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(" "); #line default #line hidden #line 464 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(roleParameterName)); #line default #line hidden #line 464 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(")\r\n{\r\n\treturn GetRoleCollection<"); #line default #line hidden #line 466 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(linkedElementCollectionType)); #line default #line hidden #line 466 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write("<"); #line default #line hidden #line 466 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(oppositeRoleType)); #line default #line hidden #line 466 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(">, "); #line default #line hidden #line 466 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(oppositeRoleType)); #line default #line hidden #line 466 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(">("); #line default #line hidden #line 466 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(roleParameterName)); #line default #line hidden #line 466 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(", "); #line default #line hidden #line 466 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write(this.ToStringHelper.ToStringWithCulture(role.Name)); #line default #line hidden #line 466 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write("DomainRoleId);\r\n}\r\n"); #line default #line hidden #line 468 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" } #line default #line hidden #line 470 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" this.Write("#endregion\r\n"); #line default #line hidden #line 472 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainRoleGenerator.tt" }
public string GenerateStaticRoleAccessorOnRelationship(DomainRole role, DomainRelationship relationship) { this.GenerationEnvironment = null; this.GenerateStaticRoleAccessorOnRelationshipInternal(role, relationship); return this.GenerationEnvironment.ToString(); }