示例#1
0
        public override void ElementAdded(ElementAddedEventArgs 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;
            }

            DomainProperty domainProperty = e.ModelElement as DomainProperty;

            if (domainProperty != null)
            {
                DomainProperty          p       = domainProperty;
                AttributedDomainElement element = p.Element;

                if (element is DomainRelationship)
                {
                    // we have to set serialized in full form, unless it is embedded somewhere in the model
                    bool bIsEmbedded = false;
                    foreach (DomainRole role in element.RolesPlayed)
                    {
                        if (role.Relationship.Target == role && role.Relationship.InheritanceModifier != InheritanceModifier.Abstract && role.Relationship is EmbeddingRelationship)
                        {
                            bIsEmbedded = true;
                            continue;
                        }
                    }

                    if (!bIsEmbedded)
                    {
                        // we have to set is serialized in full form to true
                        if (element is EmbeddingRelationship)
                        {
                            (element as EmbeddingRelationship).SerializedEmbeddingRelationship.IsInFullSerialization = true;
                        }
                        else if (element is ReferenceRelationship)
                        {
                            (element as ReferenceRelationship).SerializedReferenceRelationship.IsInFullSerialization = true;
                        }
                    }
                }

                SerializationHelper.UpdateDerivedElementsSerializationProperties(element);
            }
        }
        public static string GetEditorTypeName(DomainProperty p)
        {
            string n = p.Type.PropertyGridEditor.Namespace;
            n += "." + p.Type.PropertyGridEditor.Name;

            return n;
        }
示例#3
0
        public override void ElementDeleting(ElementDeletingEventArgs 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;
            }

            DomainProperty domainProperty = e.ModelElement as DomainProperty;

            if (domainProperty != null)
            {
                AttributedDomainElement element = domainProperty.Element;
                domainProperty.Element = null;

                // update properties
                SerializationHelper.UpdateDerivedElementsSerializationProperties(element);
            }
        }
        public static bool HasEditor(DomainProperty p )
        {
            if (p.Type == null)
                return false;

            if (p.Type.PropertyGridEditor == null)
                return false;

            return true;
        }
示例#5
0
            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.List <Microsoft.VisualStudio.Modeling.ModelElement> list = new System.Collections.Generic.List <Microsoft.VisualStudio.Modeling.ModelElement>();
                DomainProperty domainProperty = component as DomainProperty;

                if (domainProperty == null)
                {
                    if (component is IList)
                    {
                        if ((component as IList).Count > 0)
                        {
                            domainProperty = (component as IList)[0] as DomainProperty;
                        }
                    }
                }

                if (domainProperty != null)
                {
                    list.AddRange(domainProperty.Element.ParentModelContext.MetaModel.DomainTypes);

                    System.Collections.Generic.IList <Microsoft.VisualStudio.Modeling.ModelElement> ilist = store.ElementDirectory.FindElements(domainClassInfo, true);
                    foreach (Microsoft.VisualStudio.Modeling.ModelElement modelElement in ilist)
                    {
                        DomainType p      = modelElement as DomainType;
                        bool       bFound = false;
                        foreach (DomainType e in list)
                        {
                            if (e.Name == p.Name &&
                                e.Namespace == p.Namespace)
                            {
                                bFound = true;
                                break;
                            }
                        }

                        if (!bFound)
                        {
                            list.Add(p);
                        }
                    }
                }
                return(list);
            }
        private static SerializedDomainProperty CreateSerializedDomainProperty(DomainProperty domainProperty)
        {
            SerializedDomainProperty serializedDomainProperty = new SerializedDomainProperty(domainProperty.Store);
            serializedDomainProperty.DomainProperty = domainProperty;
            if (serializedDomainProperty.SerializationName != domainProperty.SerializationName)
            {
                serializedDomainProperty.SerializationName = domainProperty.SerializationName;
                serializedDomainProperty.SerializationRepresentationType = domainProperty.SerializationRepresentationType;
                if (domainProperty.IsSerializationNameTracking == TrackingEnum.True)
                    serializedDomainProperty.IsSerializationNameTracking = TrackingEnum.IgnoreOnce;
            }

            serializedDomainProperty.SerializationRepresentationType = serializedDomainProperty.SerializationRepresentationType;

            return serializedDomainProperty;
        }
示例#7
0
        public override void ElementAdded(ElementAddedEventArgs 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;
            }

            DomainProperty domainProperty = e.ModelElement as DomainProperty;

            if (domainProperty != null)
            {
                if (domainProperty.Type == null)
                {
                    foreach (DomainType type in domainProperty.Element.ParentModelContext.MetaModel.DomainTypes)
                    {
                        if (type.Name == "String")
                        {
                            domainProperty.Type = type;
                            break;
                        }
                    }
                }

                if (domainProperty.SerializationName == "")
                {
                    domainProperty.SerializationName           = domainProperty.Name;
                    domainProperty.IsSerializationNameTracking = TrackingEnum.IgnoreOnce;
                }
            }
        }
        private static SerializedDomainProperty CreateSerializedDomainProperty(DomainProperty domainProperty)
        {
            SerializedDomainProperty serializedDomainProperty = new SerializedDomainProperty(domainProperty.Store);

            serializedDomainProperty.DomainProperty = domainProperty;
            if (serializedDomainProperty.SerializationName != domainProperty.SerializationName)
            {
                serializedDomainProperty.SerializationName = domainProperty.SerializationName;
                serializedDomainProperty.SerializationRepresentationType = domainProperty.SerializationRepresentationType;
                if (domainProperty.IsSerializationNameTracking == TrackingEnum.True)
                {
                    serializedDomainProperty.IsSerializationNameTracking = TrackingEnum.IgnoreOnce;
                }
            }

            serializedDomainProperty.SerializationRepresentationType = serializedDomainProperty.SerializationRepresentationType;

            return(serializedDomainProperty);
        }
示例#9
0
        private DomainEnumPropertyDescriptor CreateDomainEnumPropertyDescriptor(Microsoft.VisualStudio.Modeling.ModelElement requestor, Microsoft.VisualStudio.Modeling.DomainPropertyInfo domainPropertyInfo, System.Attribute[] attributes)
        {
            DomainProperty domainProperty = requestor as DomainProperty;

            if (domainProperty == null)
            {
                return(null);
            }
            if (domainPropertyInfo.Id != DomainProperty.DefaultValueDomainPropertyId)
            {
                return(null);
            }
            DomainEnumeration domainEnumeration = domainProperty.Type as DomainEnumeration;

            if (domainEnumeration == null)
            {
                return(null);
            }
            return(new DomainEnumPropertyDescriptor(this, requestor, domainPropertyInfo, domainEnumeration, attributes));
        }
示例#10
0
        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;
            }

            DomainProperty domainProperty = e.ModelElement as DomainProperty;

            if (domainProperty != null)
            {
                if (e.DomainProperty.Id == DomainProperty.NameDomainPropertyId)
                {
                    if (domainProperty.IsDisplayNameTracking == TrackingEnum.True)
                    {
                        if (domainProperty.DisplayName != StringHelper.BreakUpper(domainProperty.Name))
                        {
                            domainProperty.DisplayName           = StringHelper.BreakUpper(domainProperty.Name);
                            domainProperty.IsDisplayNameTracking = TrackingEnum.IgnoreOnce;
                        }
                    }

                    if (domainProperty.IsSerializationNameTracking == TrackingEnum.True)
                    {
                        domainProperty.SerializationName           = domainProperty.Name;
                        domainProperty.IsSerializationNameTracking = TrackingEnum.IgnoreOnce;
                    }
                }
                else if (e.DomainProperty.Id == DomainProperty.DisplayNameDomainPropertyId)
                {
                    if (domainProperty.IsDisplayNameTracking == TrackingEnum.True)
                    {
                        domainProperty.IsDisplayNameTracking = TrackingEnum.False;
                    }
                    else if (domainProperty.IsDisplayNameTracking == TrackingEnum.IgnoreOnce)
                    {
                        domainProperty.IsDisplayNameTracking = TrackingEnum.True;
                    }
                }
                else if (e.DomainProperty.Id == DomainProperty.SerializationNameDomainPropertyId)
                {
                    if (domainProperty.SerializedDomainProperty != null)
                    {
                        if (domainProperty.SerializedDomainProperty.SerializationName != domainProperty.SerializationName)
                        {
                            domainProperty.SerializedDomainProperty.SerializationName = domainProperty.SerializationName;

                            if (domainProperty.IsSerializationNameTracking == TrackingEnum.IgnoreOnce)
                            {
                                domainProperty.SerializedDomainProperty.IsSerializationNameTracking = TrackingEnum.IgnoreOnce;
                            }
                            else
                            {
                                domainProperty.SerializedDomainProperty.IsSerializationNameTracking = TrackingEnum.False;
                            }
                        }
                    }

                    if (domainProperty.IsSerializationNameTracking == TrackingEnum.True)
                    {
                        domainProperty.IsSerializationNameTracking = TrackingEnum.False;
                    }

                    else if (domainProperty.IsSerializationNameTracking == TrackingEnum.IgnoreOnce)
                    {
                        domainProperty.IsSerializationNameTracking = TrackingEnum.True;
                    }
                }
                else if (e.DomainProperty.Id == DomainProperty.SerializationRepresentationTypeDomainPropertyId)
                {
                    if (domainProperty.SerializedDomainProperty != null)
                    {
                        domainProperty.SerializedDomainProperty.SerializationRepresentationType = domainProperty.SerializationRepresentationType;
                    }
                }
            }
        }
private void GenerateDomainPropertyInternal(DomainProperty property)
{
	AccessModifier setterAccessModifier = property.SetterAccessModifier;
	AccessModifier getterAccessModifier = property.GetterAccessModifier;
	AccessModifier overallAccessModifier;
	
	if(setterAccessModifier==AccessModifier.Public || getterAccessModifier==AccessModifier.Public)
	{
		overallAccessModifier = AccessModifier.Public;
	}
	else if(setterAccessModifier==AccessModifier.FamilyOrAssembly || getterAccessModifier==AccessModifier.FamilyOrAssembly)
	{
		overallAccessModifier = AccessModifier.FamilyOrAssembly;	
	}
	else if(setterAccessModifier==AccessModifier.Family || getterAccessModifier==AccessModifier.Family)
	{
		overallAccessModifier = AccessModifier.Family;
	}
	else if(setterAccessModifier==AccessModifier.Assembly || getterAccessModifier==AccessModifier.Assembly)
	{
		overallAccessModifier = AccessModifier.Assembly;
	}
	else 
	{
		overallAccessModifier = AccessModifier.Private;
	}

        
        #line default
        #line hidden
        
        #line 37 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("#region ");

        
        #line default
        #line hidden
        
        #line 38 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));

        
        #line default
        #line hidden
        
        #line 38 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(" domain property code\r\n\r\n/// <summary>\r\n/// ");

        
        #line default
        #line hidden
        
        #line 41 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));

        
        #line default
        #line hidden
        
        #line 41 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(" domain property Id.\r\n/// </summary>\r\npublic static readonly global::System.Guid " +
        "");

        
        #line default
        #line hidden
        
        #line 43 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));

        
        #line default
        #line hidden
        
        #line 43 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("DomainPropertyId = new System.Guid(\"");

        
        #line default
        #line hidden
        
        #line 43 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(property.Id));

        
        #line default
        #line hidden
        
        #line 43 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("\") ;\r\n");

        
        #line default
        #line hidden
        
        #line 44 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"

	// A property only has storage if it is a 'Normal' property
	if(property.PropertyKind==PropertyKind.Normal)
	{

        
        #line default
        #line hidden
        
        #line 48 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("\r\n/// <summary>\r\n/// Storage for ");

        
        #line default
        #line hidden
        
        #line 51 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));

        
        #line default
        #line hidden
        
        #line 51 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("\r\n/// </summary>\r\n");

        
        #line default
        #line hidden
        
        #line 53 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"

		bool needsSerialization = false;
		string defaultValue = CodeGenerationUtilities.GetPropertyDefaultValue(property, out needsSerialization);
		if( property.Type != null )
			if( property.Type.Name == "Boolean?" )
				defaultValue = defaultValue.ToLower();
		
		if (needsSerialization)
		{

        
        #line default
        #line hidden
        
        #line 62 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("private ");

        
        #line default
        #line hidden
        
        #line 63 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetDomainTypeFullName(property)));

        
        #line default
        #line hidden
        
        #line 63 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(" ");

        
        #line default
        #line hidden
        
        #line 63 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetCamelCase(property.Name)));

        
        #line default
        #line hidden
        
        #line 63 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("PropertyStorage = DslModeling::SerializationUtilities.GetValue<");

        
        #line default
        #line hidden
        
        #line 63 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetDomainTypeFullName(property)));

        
        #line default
        #line hidden
        
        #line 63 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(">(");

        
        #line default
        #line hidden
        
        #line 63 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(defaultValue));

        
        #line default
        #line hidden
        
        #line 63 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(");\r\n");

        
        #line default
        #line hidden
        
        #line 64 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"

		}
		else
		{
			if (string.IsNullOrEmpty(defaultValue))
			{
				if( property.IsElementName && property.Type.Name == "String" )
				{

        
        #line default
        #line hidden
        
        #line 72 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("private ");

        
        #line default
        #line hidden
        
        #line 73 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetDomainTypeFullName(property)));

        
        #line default
        #line hidden
        
        #line 73 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(" ");

        
        #line default
        #line hidden
        
        #line 73 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetCamelCase(property.Name)));

        
        #line default
        #line hidden
        
        #line 73 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("PropertyStorage = \"\";\r\n");

        
        #line default
        #line hidden
        
        #line 74 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"

				}
				else
				{

        
        #line default
        #line hidden
        
        #line 78 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("private ");

        
        #line default
        #line hidden
        
        #line 79 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetDomainTypeFullName(property)));

        
        #line default
        #line hidden
        
        #line 79 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(" ");

        
        #line default
        #line hidden
        
        #line 79 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetCamelCase(property.Name)));

        
        #line default
        #line hidden
        
        #line 79 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("PropertyStorage;\r\n");

        
        #line default
        #line hidden
        
        #line 80 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"

				}
			}
			else
			{
				if( defaultValue == "null" && property.IsElementName && property.Type.Name == "String" )
				{

        
        #line default
        #line hidden
        
        #line 87 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("private ");

        
        #line default
        #line hidden
        
        #line 88 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetDomainTypeFullName(property)));

        
        #line default
        #line hidden
        
        #line 88 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(" ");

        
        #line default
        #line hidden
        
        #line 88 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetCamelCase(property.Name)));

        
        #line default
        #line hidden
        
        #line 88 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("PropertyStorage = \"\";\r\n");

        
        #line default
        #line hidden
        
        #line 89 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"

				}					
				else
				{

        
        #line default
        #line hidden
        
        #line 93 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("private ");

        
        #line default
        #line hidden
        
        #line 94 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetDomainTypeFullName(property)));

        
        #line default
        #line hidden
        
        #line 94 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(" ");

        
        #line default
        #line hidden
        
        #line 94 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetCamelCase(property.Name)));

        
        #line default
        #line hidden
        
        #line 94 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("PropertyStorage = ");

        
        #line default
        #line hidden
        
        #line 94 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(defaultValue));

        
        #line default
        #line hidden
        
        #line 94 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(";\r\n");

        
        #line default
        #line hidden
        
        #line 95 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"

				}
			}
		}
	}

        
        #line default
        #line hidden
        
        #line 100 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("\r\n/// <summary>\r\n/// Gets or sets the value of ");

        
        #line default
        #line hidden
        
        #line 103 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));

        
        #line default
        #line hidden
        
        #line 103 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(" domain property.\r\n");

        
        #line default
        #line hidden
        
        #line 104 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"

	this.Write(Utilities.Instance.GenerateComments(property.Description));

        
        #line default
        #line hidden
        
        #line 106 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("/// </summary>\r\n");

        
        #line default
        #line hidden
        
        #line 108 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"

	//GenerateClrAttributes(property.Attributes);
	this.Write(Utilities.Instance.GenerateResourceAttributes(property));

        
        #line default
        #line hidden
        
        #line 112 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"

	string defaultValueAttribute = CodeGenerationUtilities.GetPropertyDefaultValueAttribute(property);
	if (!string.IsNullOrEmpty(defaultValueAttribute))
	{

        
        #line default
        #line hidden
        
        #line 116 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("[global::System.ComponentModel.DefaultValue(");

        
        #line default
        #line hidden
        
        #line 117 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(defaultValueAttribute));

        
        #line default
        #line hidden
        
        #line 117 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(")]\r\n");

        
        #line default
        #line hidden
        
        #line 118 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"

	}
	if(!property.IsBrowsable)
	{

        
        #line default
        #line hidden
        
        #line 122 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("[global::System.ComponentModel.Browsable(false)]\r\n");

        
        #line default
        #line hidden
        
        #line 124 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"

	}
	if(property.IsUIReadOnly || property.PropertyKind==PropertyKind.Calculated || setterAccessModifier!=AccessModifier.Public)
	{

        
        #line default
        #line hidden
        
        #line 128 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("[global::System.ComponentModel.ReadOnly(true)]\r\n");

        
        #line default
        #line hidden
        
        #line 130 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"

	}
	if (property.IsElementName)
	{

        
        #line default
        #line hidden
        
        #line 134 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("[DslModeling::ElementName]\r\n");

        
        #line default
        #line hidden
        
        #line 136 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"

	}
	string propertyKind = CodeGenerationUtilities.GetPropertyKind(property.PropertyKind);
	if (!string.IsNullOrEmpty(propertyKind))
	{

        
        #line default
        #line hidden
        
        #line 141 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("[DslModeling::DomainProperty(");

        
        #line default
        #line hidden
        
        #line 142 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(propertyKind));

        
        #line default
        #line hidden
        
        #line 142 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(")]\r\n");

        
        #line default
        #line hidden
        
        #line 143 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"

	}

        
        #line default
        #line hidden
        
        #line 145 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("[DslModeling::DomainObjectId(\"");

        
        #line default
        #line hidden
        
        #line 146 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(property.Id.ToString("D")));

        
        #line default
        #line hidden
        
        #line 146 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("\")]\r\n");

        
        #line default
        #line hidden
        
        #line 147 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"

	/*if( CodeGenerationUtilities.HasEditor(property) )
	{

        
        #line default
        #line hidden
        
        #line 150 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("[DslViewModelPG::PropertyGridEditorViewModelAttribute(typeof(");

        
        #line default
        #line hidden
        
        #line 151 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetEditorTypeName(property)));

        
        #line default
        #line hidden
        
        #line 151 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("))]\r\n");

        
        #line default
        #line hidden
        
        #line 152 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"

	}*/

        
        #line default
        #line hidden
        
        #line 155 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetAccessModifier(overallAccessModifier)));

        
        #line default
        #line hidden
        
        #line 155 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(" ");

        
        #line default
        #line hidden
        
        #line 155 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetDomainTypeFullName(property)));

        
        #line default
        #line hidden
        
        #line 155 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(" ");

        
        #line default
        #line hidden
        
        #line 155 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));

        
        #line default
        #line hidden
        
        #line 155 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("\r\n{\r\n\t[global::System.Diagnostics.DebuggerStepThrough]\r\n");

        
        #line default
        #line hidden
        
        #line 158 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"

	if(getterAccessModifier!=overallAccessModifier)
	{

        
        #line default
        #line hidden
        
        #line 161 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("\t");

        
        #line default
        #line hidden
        
        #line 162 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetAccessModifier(getterAccessModifier)));

        
        #line default
        #line hidden
        
        #line 162 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(" get\r\n");

        
        #line default
        #line hidden
        
        #line 163 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"

	}
	else
	{

        
        #line default
        #line hidden
        
        #line 167 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("\tget\r\n");

        
        #line default
        #line hidden
        
        #line 169 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"

	}

        
        #line default
        #line hidden
        
        #line 171 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("\t{\r\n");

        
        #line default
        #line hidden
        
        #line 173 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"

	if(property.PropertyKind!=PropertyKind.Normal)
	{

        
        #line default
        #line hidden
        
        #line 176 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("\t\treturn ");

        
        #line default
        #line hidden
        
        #line 177 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetPropertyHandlerName(property)));

        
        #line default
        #line hidden
        
        #line 177 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(".Instance.GetValue(this);\r\n");

        
        #line default
        #line hidden
        
        #line 178 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"

	}
	else
	{

        
        #line default
        #line hidden
        
        #line 182 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("\t\treturn ");

        
        #line default
        #line hidden
        
        #line 183 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetCamelCase(property.Name)));

        
        #line default
        #line hidden
        
        #line 183 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("PropertyStorage;\r\n");

        
        #line default
        #line hidden
        
        #line 184 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"

	}

        
        #line default
        #line hidden
        
        #line 186 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("\t}\r\n");

        
        #line default
        #line hidden
        
        #line 188 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"

	// Calculated properties cannot be set
	if(property.PropertyKind != PropertyKind.Calculated)
	{

        
        #line default
        #line hidden
        
        #line 192 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("\t[global::System.Diagnostics.DebuggerStepThrough]\r\n");

        
        #line default
        #line hidden
        
        #line 194 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"

		if(setterAccessModifier != overallAccessModifier)
		{

        
        #line default
        #line hidden
        
        #line 197 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("\t");

        
        #line default
        #line hidden
        
        #line 198 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetAccessModifier(setterAccessModifier)));

        
        #line default
        #line hidden
        
        #line 198 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(" set\r\n");

        
        #line default
        #line hidden
        
        #line 199 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"

		}
		else
		{

        
        #line default
        #line hidden
        
        #line 203 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("\tset\r\n");

        
        #line default
        #line hidden
        
        #line 205 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"

		}

        
        #line default
        #line hidden
        
        #line 207 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("\t{\r\n\t\t");

        
        #line default
        #line hidden
        
        #line 209 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetPropertyHandlerName(property)));

        
        #line default
        #line hidden
        
        #line 209 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(".Instance.SetValue(this, value);\r\n\t}\r\n");

        
        #line default
        #line hidden
        
        #line 211 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"

	}

        
        #line default
        #line hidden
        
        #line 213 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("}\r\n");

        
        #line default
        #line hidden
        
        #line 215 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"

	// Generate the PropertyHandler for this property. 

        
        #line default
        #line hidden
        
        #line 217 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("/// <summary>\r\n/// Value handler for the ");

        
        #line default
        #line hidden
        
        #line 219 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(property.Element.Name));

        
        #line default
        #line hidden
        
        #line 219 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(".");

        
        #line default
        #line hidden
        
        #line 219 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));

        
        #line default
        #line hidden
        
        #line 219 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(" domain property.\r\n/// </summary>\r\ninternal sealed partial class ");

        
        #line default
        #line hidden
        
        #line 221 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetPropertyHandlerName(property)));

        
        #line default
        #line hidden
        
        #line 221 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(" : ");

        
        #line default
        #line hidden
        
        #line 221 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetBasePropertyHandlerName(property)));

        
        #line default
        #line hidden
        
        #line 221 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("\r\n{\r\n\tprivate ");

        
        #line default
        #line hidden
        
        #line 223 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetPropertyHandlerName(property)));

        
        #line default
        #line hidden
        
        #line 223 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("() { }\r\n\r\n\t/// <summary>\r\n\t/// Gets the singleton instance of the ");

        
        #line default
        #line hidden
        
        #line 226 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(property.Element.Name));

        
        #line default
        #line hidden
        
        #line 226 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(".");

        
        #line default
        #line hidden
        
        #line 226 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));

        
        #line default
        #line hidden
        
        #line 226 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(" domain property value handler.\r\n\t/// </summary>\r\n\tpublic static readonly ");

        
        #line default
        #line hidden
        
        #line 228 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetPropertyHandlerName(property)));

        
        #line default
        #line hidden
        
        #line 228 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(" Instance = new ");

        
        #line default
        #line hidden
        
        #line 228 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetPropertyHandlerName(property)));

        
        #line default
        #line hidden
        
        #line 228 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("();\r\n\r\n\t/// <summary>\r\n\t/// Gets the Id of the ");

        
        #line default
        #line hidden
        
        #line 231 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(property.Element.Name));

        
        #line default
        #line hidden
        
        #line 231 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(".");

        
        #line default
        #line hidden
        
        #line 231 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));

        
        #line default
        #line hidden
        
        #line 231 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(" domain property.\r\n\t/// </summary>\r\n\tpublic sealed override global::System.Guid D" +
        "omainPropertyId\r\n\t{\r\n\t\t[global::System.Diagnostics.DebuggerStepThrough]\r\n\t\tget\r\n" +
        "\t\t{\r\n\t\t\treturn ");

        
        #line default
        #line hidden
        
        #line 238 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));

        
        #line default
        #line hidden
        
        #line 238 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(@"DomainPropertyId;
		}
	}
	
	/// <summary>
	/// Gets a strongly-typed value of the property on specified element.
	/// </summary>
	/// <param name=""element"">Element which owns the property.</param>
	/// <returns>Property value.</returns>
	public override sealed ");

        
        #line default
        #line hidden
        
        #line 247 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetDomainTypeFullName(property)));

        
        #line default
        #line hidden
        
        #line 247 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(" GetValue(");

        
        #line default
        #line hidden
        
        #line 247 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetGenerationClassName(property.Element)));

        
        #line default
        #line hidden
        
        #line 247 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(" element)\r\n\t{\r\n\t\tif (element == null) throw new global::System.ArgumentNullExcept" +
        "ion(\"element\");\r\n");

        
        #line default
        #line hidden
        
        #line 250 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"

	if(property.PropertyKind==PropertyKind.Normal)
	{

        
        #line default
        #line hidden
        
        #line 253 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("\t\treturn element.");

        
        #line default
        #line hidden
        
        #line 254 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetCamelCase(property.Name)));

        
        #line default
        #line hidden
        
        #line 254 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("PropertyStorage;\r\n");

        
        #line default
        #line hidden
        
        #line 255 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"

	}
	else
	{

        
        #line default
        #line hidden
        
        #line 259 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("\t\t// There is no storage for ");

        
        #line default
        #line hidden
        
        #line 260 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));

        
        #line default
        #line hidden
        
        #line 260 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(" because its Kind is\r\n\t\t// set to ");

        
        #line default
        #line hidden
        
        #line 261 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(property.PropertyKind));

        
        #line default
        #line hidden
        
        #line 261 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(". Please provide the Get");

        
        #line default
        #line hidden
        
        #line 261 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(property.Name.TrimStart('@')));

        
        #line default
        #line hidden
        
        #line 261 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("Value()\r\n\t\t// method on the domain class.\r\n\t\treturn element.Get");

        
        #line default
        #line hidden
        
        #line 263 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(property.Name.TrimStart('@')));

        
        #line default
        #line hidden
        
        #line 263 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("Value();\r\n");

        
        #line default
        #line hidden
        
        #line 264 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"

	}

        
        #line default
        #line hidden
        
        #line 266 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("\t}\r\n\r\n");

        
        #line default
        #line hidden
        
        #line 269 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"

	if(property.PropertyKind!=PropertyKind.Calculated)
	{
		string propTypeName = CodeGenerationUtilities.GetDomainTypeFullName(property);

        
        #line default
        #line hidden
        
        #line 273 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("\t/// <summary>\r\n\t/// Sets property value on an element.\r\n\t/// </summary>\r\n\t/// <p" +
        "aram name=\"element\">Element which owns the property.</param>\r\n\t/// <param name=\"" +
        "newValue\">New property value.</param>\r\n\tpublic override sealed void SetValue(");

        
        #line default
        #line hidden
        
        #line 279 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetGenerationClassName(property.Element)));

        
        #line default
        #line hidden
        
        #line 279 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(" element, ");

        
        #line default
        #line hidden
        
        #line 279 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(propTypeName));

        
        #line default
        #line hidden
        
        #line 279 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(" newValue)\r\n\t{\r\n\t\tif (element == null) throw new global::System.ArgumentNullExcep" +
        "tion(\"element\");\r\n\r\n\t\t");

        
        #line default
        #line hidden
        
        #line 283 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetDomainTypeFullName(property)));

        
        #line default
        #line hidden
        
        #line 283 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(" oldValue = GetValue(element);\r\n");

        
        #line default
        #line hidden
        
        #line 284 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"

		switch (propTypeName)
		{
			case "global::System.Double":
			{

        
        #line default
        #line hidden
        
        #line 289 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("\t\t// double type precision is guaranteed only to 15th digit.\r\n\t\tif (global::Syste" +
        "m.Math.Abs(newValue - oldValue) > 1e-15)\r\n");

        
        #line default
        #line hidden
        
        #line 292 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"

				break;
			}
			case "global::System.Single":
			{

        
        #line default
        #line hidden
        
        #line 297 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("\t\t// float type precision is guaranteed only to 7th digit.\r\n\t\tif (global::System." +
        "Math.Abs(newValue - oldValue) > 1e-7)\r\n");

        
        #line default
        #line hidden
        
        #line 300 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"

				break;
			}
			case "global::System.Object":
			{

        
        #line default
        #line hidden
        
        #line 305 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("\t\t// Don\'t use != with object properties\r\n\t\tif (!global::System.Object.Equals(new" +
        "Value, oldValue))\r\n");

        
        #line default
        #line hidden
        
        #line 308 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"

				break;
			}
			default:
			{

        
        #line default
        #line hidden
        
        #line 313 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("\t\tif (newValue != oldValue)\r\n");

        
        #line default
        #line hidden
        
        #line 315 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"

				break;
			}
		}

        
        #line default
        #line hidden
        
        #line 319 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("\t\t{\r\n\t\t\tValueChanging(element, oldValue, newValue);\r\n");

        
        #line default
        #line hidden
        
        #line 322 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"

		if(property.PropertyKind==PropertyKind.Normal)
		{

        
        #line default
        #line hidden
        
        #line 325 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("\t\t\telement.");

        
        #line default
        #line hidden
        
        #line 326 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(CodeGenerationUtilities.GetCamelCase(property.Name)));

        
        #line default
        #line hidden
        
        #line 326 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("PropertyStorage = newValue;\r\n\t\t\tValueChanged(element, oldValue, newValue);\r\n");

        
        #line default
        #line hidden
        
        #line 328 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"

		}
		else
		{

        
        #line default
        #line hidden
        
        #line 332 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("\t\t\t// There is no storage for ");

        
        #line default
        #line hidden
        
        #line 333 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(property.Name));

        
        #line default
        #line hidden
        
        #line 333 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(" because its Kind is\r\n\t\t\t// set to ");

        
        #line default
        #line hidden
        
        #line 334 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(property.PropertyKind));

        
        #line default
        #line hidden
        
        #line 334 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(". Please provide the Set");

        
        #line default
        #line hidden
        
        #line 334 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(property.Name.TrimStart('@')));

        
        #line default
        #line hidden
        
        #line 334 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("Value()\r\n\t\t\t// method on the domain class.\r\n\t\t\telement.Set");

        
        #line default
        #line hidden
        
        #line 336 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(property.Name.TrimStart('@')));

        
        #line default
        #line hidden
        
        #line 336 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("Value(newValue);\r\n\t\t\tValueChanged(element, oldValue, GetValue(element));\r\n");

        
        #line default
        #line hidden
        
        #line 338 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"

		}

        
        #line default
        #line hidden
        
        #line 340 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("\t\t}\r\n\t}\r\n");

        
        #line default
        #line hidden
        
        #line 343 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"

	}

        
        #line default
        #line hidden
        
        #line 345 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"
this.Write("}\r\n\r\n#endregion\r\n");

        
        #line default
        #line hidden
        
        #line 349 "J:\Uni\CC Processes\Werkzeuge\PDE 2\Tum.PDE.ToolFramework\Tum.PDE.ToolFramework.Templates\DomainPropertyGenerator.tt"

}
// Generate code for domain properties
public string GenerateDomainProperty(DomainProperty property)
{
	this.GenerationEnvironment = null;
	this.GenerateDomainPropertyInternal(property);
	return this.GenerationEnvironment.ToString();
}