[commit] r2469 - in trunk: Install SDK/DotNet/DsmlGenerator SDK/DotNet/DsmlGenerator/CSharpDsmlGenerator SDK/DotNet/DsmlGenerator/CSharpDsmlGenerator/Generator SDK/DotNet/DsmlGenerator/CSharpDsmlGenerator/Properties
GMESRC Repository Notifications
gme-commit at list.isis.vanderbilt.edu
Fri Apr 18 10:23:54 CDT 2014
Author: ksmyth
Date: Fri Apr 18 10:23:54 2014
New Revision: 2469
Log:
DSMLGenerator: handle namespaces by renaming property gets with prefixed namespace name
Modified:
trunk/Install/GME_SDK.wxs
trunk/SDK/DotNet/DsmlGenerator/CSharpDsmlGenerator/Generator/Configuration.cs
trunk/SDK/DotNet/DsmlGenerator/CSharpDsmlGenerator/Generator/FcoChildren.cs
trunk/SDK/DotNet/DsmlGenerator/CSharpDsmlGenerator/Generator/FcoSrcDstConnections.cs
trunk/SDK/DotNet/DsmlGenerator/CSharpDsmlGenerator/Properties/AssemblyInfo.cs
trunk/SDK/DotNet/DsmlGenerator/CSharpDsmlGenerator/app.manifest
trunk/SDK/DotNet/DsmlGenerator/GME.DSMLGenerator.nuspec
Modified: trunk/Install/GME_SDK.wxs
==============================================================================
--- trunk/Install/GME_SDK.wxs Wed Apr 16 13:13:07 2014 (r2468)
+++ trunk/Install/GME_SDK.wxs Fri Apr 18 10:23:54 2014 (r2469)
@@ -187,7 +187,7 @@
</Class>
<RegistryValue Root="HKCR" Key="CLSID\{78BE7B95-3564-4BA9-8FE6-8D9B91EEE0B8}\Implemented Categories\{62C8FE65-4EBB-45e7-B440-6E39B2CDBF29}" Value="" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{78BE7B95-3564-4BA9-8FE6-8D9B91EEE0B8}\InprocServer32" Name="Class" Value="CSharpDSMLGenerator.CSharpDSMLGeneratorInterpreter" Type="string" Action="write" />
- <RegistryValue Root="HKCR" Key="CLSID\{78BE7B95-3564-4BA9-8FE6-8D9B91EEE0B8}\InprocServer32" Name="Assembly" Value="CSharpDSMLGenerator, Version=1.0.12.1, Culture=neutral" Type="string" Action="write" />
+ <RegistryValue Root="HKCR" Key="CLSID\{78BE7B95-3564-4BA9-8FE6-8D9B91EEE0B8}\InprocServer32" Name="Assembly" Value="CSharpDSMLGenerator, Version=1.0.13.0, Culture=neutral" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{78BE7B95-3564-4BA9-8FE6-8D9B91EEE0B8}\InprocServer32" Name="RuntimeVersion" Value="v4.0.30319" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="CLSID\{78BE7B95-3564-4BA9-8FE6-8D9B91EEE0B8}\InprocServer32" Name="CodeBase" Value="file:///[#CSharpDSMLGenerator.dll]" Type="string" Action="write" />
<RegistryValue Root="HKCR" Key="Component Categories\{62C8FE65-4EBB-45e7-B440-6E39B2CDBF29}" Name="0" Value=".NET Category" Type="string" Action="write" />
Modified: trunk/SDK/DotNet/DsmlGenerator/CSharpDsmlGenerator/Generator/Configuration.cs
==============================================================================
--- trunk/SDK/DotNet/DsmlGenerator/CSharpDsmlGenerator/Generator/Configuration.cs Wed Apr 16 13:13:07 2014 (r2468)
+++ trunk/SDK/DotNet/DsmlGenerator/CSharpDsmlGenerator/Generator/Configuration.cs Fri Apr 18 10:23:54 2014 (r2469)
@@ -337,6 +337,33 @@
}
}
+ internal static string GetNamespacePrefixedName(MgaObject obj)
+ {
+ string ns = GetNamespaceName(obj);
+ if (string.IsNullOrEmpty(ns) == false)
+ {
+ return ns + "_" + obj.Name;
+ }
+ return obj.Name;
+ }
+
+ internal static IEnumerable<Tuple<MgaFCO, string>> GetUniqueNames(IEnumerable<MgaFCO> children, int count)
+ {
+ IEnumerable<Tuple<MgaFCO, string>> childNames;
+ HashSet<string> names = new HashSet<string>(children.Distinct().Select(x => x.Name));
+ if (names.Count != count)
+ {
+ childNames = children.Distinct().GroupBy(child => child.Name).Select(g => g.Count() > 1 ?
+ g.Select(x => new Tuple<MgaFCO, string>(x, Configuration.GetNamespacePrefixedName((MgaObject)x))) :
+ g.Select(x => new Tuple<MgaFCO, string>(x, x.Name))).SelectMany(child => child);
+ }
+ else
+ {
+ childNames = children.Distinct().Select(child => new Tuple<MgaFCO, string>(child, child.Name));
+ }
+ return childNames;
+ }
+
internal static string GetClassName(MgaFCO item)
{
return GetClassName(item as MgaObject);
Modified: trunk/SDK/DotNet/DsmlGenerator/CSharpDsmlGenerator/Generator/FcoChildren.cs
==============================================================================
--- trunk/SDK/DotNet/DsmlGenerator/CSharpDsmlGenerator/Generator/FcoChildren.cs Wed Apr 16 13:13:07 2014 (r2468)
+++ trunk/SDK/DotNet/DsmlGenerator/CSharpDsmlGenerator/Generator/FcoChildren.cs Fri Apr 18 10:23:54 2014 (r2469)
@@ -86,8 +86,9 @@
childBases.ForEach(x => children.AddRange(GetDerivedClasses(x)));
// skip multiple containments
- foreach (var child in children.Distinct())
+ foreach (var childName in Configuration.GetUniqueNames(children, children.Count))
{
+ var child = childName.Item1;
// include all derived class child objects
IEnumerable<MgaFCO> derivedClasses = GetDerivedClasses(child);
@@ -96,13 +97,13 @@
Attributes = MemberAttributes.Public | MemberAttributes.Final,
HasGet = true,
Type = new CodeTypeReference("global::System.Collections.Generic.IEnumerable<" + Configuration.GetInterfaceName(child as MgaObject) + ">"),
- Name = child.Name + "Collection",
+ Name = childName.Item2 + "Collection",
};
StringBuilder sb = new StringBuilder();
sb.AppendLine("<summary>");
sb.AppendLine("<para>");
- sb.AppendLine("Retirves with specific kinds in the container.");
+ sb.AppendLine("Retrieves with specific kinds in the container.");
sb.AppendLine("</para>");
var filteredDerivedClasses = derivedClasses.
Modified: trunk/SDK/DotNet/DsmlGenerator/CSharpDsmlGenerator/Generator/FcoSrcDstConnections.cs
==============================================================================
--- trunk/SDK/DotNet/DsmlGenerator/CSharpDsmlGenerator/Generator/FcoSrcDstConnections.cs Wed Apr 16 13:13:07 2014 (r2468)
+++ trunk/SDK/DotNet/DsmlGenerator/CSharpDsmlGenerator/Generator/FcoSrcDstConnections.cs Fri Apr 18 10:23:54 2014 (r2469)
@@ -62,6 +62,7 @@
newSrcConn.Members.Add(ctor);
+ var uniqueNames = Configuration.GetUniqueNames(connections.Select(x => x.Item1), connections.Count).ToDictionary(x => x.Item1, x => x.Item2);
foreach (IGrouping<MgaFCO, string> group in connections.GroupBy(x => x.Item1, x => x.Item2))
{
MgaFCO item = group.Key;
@@ -73,7 +74,7 @@
{
Attributes = MemberAttributes.Public,
HasGet = true,
- Name = item.Name + "Collection",
+ Name = uniqueNames[item] + "Collection",
Type = new CodeTypeReference("global::System.Collections.Generic.IEnumerable<" + Configuration.GetInterfaceName(item as MgaObject) + ">"),
};
@@ -215,6 +216,7 @@
newDstConn.Members.Add(ctor);
+ var uniqueNames = Configuration.GetUniqueNames(connections.Select(x => x.Item1), connections.Count).ToDictionary(x => x.Item1, x => x.Item2);
foreach (IGrouping<MgaFCO, string> group in connections.GroupBy(x => x.Item1, x => x.Item2))
{
MgaFCO item = group.Key;
@@ -226,7 +228,7 @@
{
Attributes = MemberAttributes.Public,
HasGet = true,
- Name = item.Name + "Collection",
+ Name = uniqueNames[item] + "Collection",
Type = new CodeTypeReference("global::System.Collections.Generic.IEnumerable<" + Configuration.GetInterfaceName(item as MgaObject) + ">"),
};
Modified: trunk/SDK/DotNet/DsmlGenerator/CSharpDsmlGenerator/Properties/AssemblyInfo.cs
==============================================================================
--- trunk/SDK/DotNet/DsmlGenerator/CSharpDsmlGenerator/Properties/AssemblyInfo.cs Wed Apr 16 13:13:07 2014 (r2468)
+++ trunk/SDK/DotNet/DsmlGenerator/CSharpDsmlGenerator/Properties/AssemblyInfo.cs Fri Apr 18 10:23:54 2014 (r2469)
@@ -34,5 +34,5 @@
// [assembly: AssemblyVersion("1.0.*")]
// Keep in sync with app.manifest, GME_SDK.wxs, and GME.DSMLGenerator.nuspec
-[assembly: AssemblyVersion("1.0.12.1")]
-[assembly: AssemblyFileVersion("1.0.12.1")]
+[assembly: AssemblyVersion("1.0.13.0")]
+[assembly: AssemblyFileVersion("1.0.13.0")]
Modified: trunk/SDK/DotNet/DsmlGenerator/CSharpDsmlGenerator/app.manifest
==============================================================================
--- trunk/SDK/DotNet/DsmlGenerator/CSharpDsmlGenerator/app.manifest Wed Apr 16 13:13:07 2014 (r2468)
+++ trunk/SDK/DotNet/DsmlGenerator/CSharpDsmlGenerator/app.manifest Fri Apr 18 10:23:54 2014 (r2469)
@@ -3,7 +3,7 @@
<assemblyIdentity
type="win32"
name="CSharpDSMLGenerator"
- version="1.0.12.1"
+ version="1.0.13.0"
publicKeyToken="1321e6b92842fe54"
processorArchitecture="msil" />
<clrClass
Modified: trunk/SDK/DotNet/DsmlGenerator/GME.DSMLGenerator.nuspec
==============================================================================
--- trunk/SDK/DotNet/DsmlGenerator/GME.DSMLGenerator.nuspec Wed Apr 16 13:13:07 2014 (r2468)
+++ trunk/SDK/DotNet/DsmlGenerator/GME.DSMLGenerator.nuspec Fri Apr 18 10:23:54 2014 (r2469)
@@ -2,7 +2,7 @@
<package >
<metadata>
<id>GME.DSMLGenerator</id>
- <version>1.0.12.1</version>
+ <version>1.0.13.0</version>
<title>GME DSMLGenerator</title>
<authors>ISIS, Vanderbilt University</authors>
<owners>ksmyth</owners>
More information about the gme-commit
mailing list