Index: /branches/PersistenceOverhaul/Types/Types.sln
===================================================================
--- /branches/PersistenceOverhaul/Types/Types.sln (revision 14731)
+++ /branches/PersistenceOverhaul/Types/Types.sln (revision 14731)
@@ -0,0 +1,22 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.25420.1
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Types", "Types\Types.csproj", "{C9C1F6E4-7F2E-423C-BDDA-E5BDE3937F8F}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {C9C1F6E4-7F2E-423C-BDDA-E5BDE3937F8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C9C1F6E4-7F2E-423C-BDDA-E5BDE3937F8F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C9C1F6E4-7F2E-423C-BDDA-E5BDE3937F8F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C9C1F6E4-7F2E-423C-BDDA-E5BDE3937F8F}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
Index: /branches/PersistenceOverhaul/Types/Types/App.config
===================================================================
--- /branches/PersistenceOverhaul/Types/Types/App.config (revision 14731)
+++ /branches/PersistenceOverhaul/Types/Types/App.config (revision 14731)
@@ -0,0 +1,6 @@
+
+
+
+
+
+
Index: /branches/PersistenceOverhaul/Types/Types/Program.cs
===================================================================
--- /branches/PersistenceOverhaul/Types/Types/Program.cs (revision 14731)
+++ /branches/PersistenceOverhaul/Types/Types/Program.cs (revision 14731)
@@ -0,0 +1,66 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Text.RegularExpressions;
+using System.Threading.Tasks;
+using HeuristicLab.Common;
+
+namespace Types {
+ class Program {
+ private static string path = @"D:\hl\branches\PersistenceOverhaul";
+ static void Main(string[] args) {
+ InsertStorableTypeGuids();
+
+ // foreach (var asm in AppDomain.CurrentDomain.GetAssemblies())
+ // {
+ // Console.WriteLine(asm);
+ // foreach (var type in asm.GetTypes().Where(t => typeof(IEqualityComparer).IsAssignableFrom(t)))
+ // {
+ // Console.WriteLine("RegisterType(new Guid(\"{0}\"), allTypes[\"{2}\"]); ", Guid.NewGuid().ToString().ToUpper(), type.GetPrettyName(), type.FullName);
+ // }
+ // foreach (var type in asm.GetTypes().Where(t => typeof(IEqualityComparer<>).IsAssignableFrom(t))) {
+ // Console.WriteLine("RegisterType(new Guid(\"{0}\"), allTypes[\"{2}\"]); ", Guid.NewGuid().ToString().ToUpper(), type.GetPrettyName(), type.FullName);
+ // }
+ // }
+ }
+
+ private static void InsertStorableTypeGuids() {
+ var regex = new Regex(@"(public\s+interface|private\s+interface|protected\s+interface|internal\s+interface|public\s+enum|private\s+enum|protected\s+enum|internal\s+enum)");
+ foreach (var file in Directory.GetFiles(path, "*.cs", SearchOption.AllDirectories)) {
+ if (file.Contains("HeuristicLab.ExtLibs")) continue;
+ if (file.Contains(".Views")) continue;
+ if (file.Contains("HeuristicLab.MainForm")) continue;
+ if (file.Contains("HeuristicLab.DataPreprocessing")) continue;
+ //Console.WriteLine(file);
+ Encoding encoding = Encoding.ASCII;
+ using (StreamReader reader = new StreamReader(file, encoding, true)) {
+ reader.Peek(); // you need this!
+ encoding = reader.CurrentEncoding;
+ }
+ var lines = File.ReadAllLines(file, encoding).ToList();
+ using (var stream = new FileStream(file, FileMode.Create)) {
+ using (var writer = new StreamWriter(stream, encoding)) {
+ for (int i = 0; i < lines.Count; i++) {
+
+ var match = regex.Match(lines[i]);
+ var idx = match.Index;
+ if (match.Success) {
+ writer.WriteLine(string.Join("", Enumerable.Repeat(" ", idx)) + "[HeuristicLab.Persistence.Default.CompositeSerializers.Storable.StorableType(\"{0}\")]", Guid.NewGuid().ToString().ToUpper());
+ }
+ else if (lines[i].IndexOf("interface") >= 0 || lines[i].IndexOf("enum") >= 0) // write lines which contain 'interface' or 'enum' but are not matched by the regex
+ {
+ Console.WriteLine(lines[i]);
+ }
+ writer.WriteLine(lines[i]);
+ }
+ writer.Flush();
+ stream.Flush();
+ }
+ }
+ }
+ }
+ }
+}
Index: /branches/PersistenceOverhaul/Types/Types/Properties/AssemblyInfo.cs
===================================================================
--- /branches/PersistenceOverhaul/Types/Types/Properties/AssemblyInfo.cs (revision 14731)
+++ /branches/PersistenceOverhaul/Types/Types/Properties/AssemblyInfo.cs (revision 14731)
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("Types")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("FH-Hagenberg")]
+[assembly: AssemblyProduct("Types")]
+[assembly: AssemblyCopyright("Copyright © FH-Hagenberg 2017")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("c9c1f6e4-7f2e-423c-bdda-e5bde3937f8f")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
Index: /branches/PersistenceOverhaul/Types/Types/Types.csproj
===================================================================
--- /branches/PersistenceOverhaul/Types/Types/Types.csproj (revision 14731)
+++ /branches/PersistenceOverhaul/Types/Types/Types.csproj (revision 14731)
@@ -0,0 +1,63 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {C9C1F6E4-7F2E-423C-BDDA-E5BDE3937F8F}
+ Exe
+ Properties
+ Types
+ Types
+ v4.5.2
+ 512
+ true
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+ ..\..\PersistenceOverhaul\bin\HeuristicLab.Common-3.3.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+