From 8140f4f3e005a6f7098435c99d8f1b40d4df4d61 Mon Sep 17 00:00:00 2001 From: Toshik Date: Tue, 14 Apr 2015 15:15:02 +0300 Subject: [PATCH 1/5] log4net and nunit references path fix --- .../NHibernate.Mapping.Attributes.Test.csproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/NHibernate.Mapping.Attributes.Test/NHibernate.Mapping.Attributes.Test.csproj b/src/NHibernate.Mapping.Attributes.Test/NHibernate.Mapping.Attributes.Test.csproj index 6a2fdea..f517de2 100644 --- a/src/NHibernate.Mapping.Attributes.Test/NHibernate.Mapping.Attributes.Test.csproj +++ b/src/NHibernate.Mapping.Attributes.Test/NHibernate.Mapping.Attributes.Test.csproj @@ -94,11 +94,11 @@ False - ..\packages\log4net.2.0.3\lib\net40-full\log4net.dll + ..\..\lib\net\4.0\log4net.dll False - ..\packages\NUnit.2.6.4\lib\nunit.framework.dll + ..\..\lib\net\4.0\nunit.framework.dll System From 2bd31fa81d0c754eeb7de7f4a2e24dd32b59f7c4 Mon Sep 17 00:00:00 2001 From: Toshik Date: Tue, 14 Apr 2015 15:43:53 +0300 Subject: [PATCH 2/5] Add ability to determine "access" attribute value if not specified explicit ("field"/"property" values are now supported) --- src/Generator/HbmWriterGenerator.cs | 17 +++++++++++++++++ src/Generator/Program.cs | 1 + 2 files changed, 18 insertions(+) diff --git a/src/Generator/HbmWriterGenerator.cs b/src/Generator/HbmWriterGenerator.cs index ca47fc8..b56ccb7 100644 --- a/src/Generator/HbmWriterGenerator.cs +++ b/src/Generator/HbmWriterGenerator.cs @@ -117,6 +117,23 @@ public static void GenerateElementWriter(System.Xml.Schema.XmlSchemaElement sche } }")); } + else if (attribName == "access") + { + method.Body.Add(Refly.CodeDom.Stm.Snippet(@"else + { + var access = string.Empty; + switch (member.MemberType) + { + case MemberTypes.Property: + access = ""property""; + break; + case MemberTypes.Field: + access = ""field""; + break; + } + writer.WriteAttributeString(""access"", access); + }")); + } } } diff --git a/src/Generator/Program.cs b/src/Generator/Program.cs index 3ed1ec5..c5c820e 100644 --- a/src/Generator/Program.cs +++ b/src/Generator/Program.cs @@ -243,6 +243,7 @@ static void Main() Refly.CodeDom.NamespaceDeclaration nd = new Refly.CodeDom.NamespaceDeclaration("NHibernate.Mapping.Attributes", conformer); nd.Imports.Clear(); // remove "using System;" + nd.Imports.Add("System.Reflection"); conformer.Capitalize = true; Refly.CodeDom.ClassDeclaration hbmWriter = nd.AddClass("HbmWriter"); hbmWriter.Attributes = System.Reflection.TypeAttributes.Public; From 19cd8c31e22613764139cad06df326da50c6d3e6 Mon Sep 17 00:00:00 2001 From: Toshik Date: Tue, 14 Apr 2015 15:53:16 +0300 Subject: [PATCH 3/5] Generic automatic "access" attribute calculation should not run for Component --- src/Generator/HbmWriterGenerator.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Generator/HbmWriterGenerator.cs b/src/Generator/HbmWriterGenerator.cs index b56ccb7..48fcefd 100644 --- a/src/Generator/HbmWriterGenerator.cs +++ b/src/Generator/HbmWriterGenerator.cs @@ -117,7 +117,7 @@ public static void GenerateElementWriter(System.Xml.Schema.XmlSchemaElement sche } }")); } - else if (attribName == "access") + else if (attribName == "access" && schemaEltName != "Component") // "access" attribute auto calculation, except Component elements { method.Body.Add(Refly.CodeDom.Stm.Snippet(@"else { From 7f560eac157b2f7dba72bf21d96163600118fcd1 Mon Sep 17 00:00:00 2001 From: Toshik Date: Tue, 14 Apr 2015 16:11:34 +0300 Subject: [PATCH 4/5] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 02522bc..94d0712 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ +CI Build status: [![Build status](https://ci.appveyor.com/api/projects/status/5voaaboe7wdv5eao/branch/master?svg=true)](https://ci.appveyor.com/project/Toshik/nhibernate-mapping-attributes/branch/master) + ====================================== What is NHibernate.Mapping.Attributes? ====================================== From aa5ef29a179b774d24e5fe04e22dee3d96e7a4b1 Mon Sep 17 00:00:00 2001 From: Toshik Date: Wed, 15 Apr 2015 13:58:24 +0300 Subject: [PATCH 5/5] Added auto generation "name" attribute if not specified explicit Proper condition for "access" attribute auto generation --- src/Generator/HbmWriterGenerator.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/Generator/HbmWriterGenerator.cs b/src/Generator/HbmWriterGenerator.cs index 48fcefd..c288872 100644 --- a/src/Generator/HbmWriterGenerator.cs +++ b/src/Generator/HbmWriterGenerator.cs @@ -117,13 +117,14 @@ public static void GenerateElementWriter(System.Xml.Schema.XmlSchemaElement sche } }")); } - else if (attribName == "access" && schemaEltName != "Component") // "access" attribute auto calculation, except Component elements + else if (attribName == "access" && !schemaEltIsRoot) // auto generate "access" attribute { method.Body.Add(Refly.CodeDom.Stm.Snippet(@"else { var access = string.Empty; switch (member.MemberType) { + case MemberTypes.Property: access = ""property""; break; @@ -132,6 +133,13 @@ public static void GenerateElementWriter(System.Xml.Schema.XmlSchemaElement sche break; } writer.WriteAttributeString(""access"", access); + }")); + } + else if (attribName == "name" && !schemaEltIsRoot) // auto generate "name" attribute + { + method.Body.Add(Refly.CodeDom.Stm.Snippet(@"else + { + writer.WriteAttributeString(""name"", member.Name); }")); } }