Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
03/28/19 16:54:20 (5 years ago)
Author:
abeham
Message:

#2521: merged changes from r15684 to trunk HEAD (r16716) and resolved all merge conflicts

  • it doesn't build
Location:
branches/2521_ProblemRefactoring
Files:
5 deleted
75 edited

Legend:

Unmodified
Added
Removed
  • branches/2521_ProblemRefactoring

  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence

  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/ArraySerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    2323using System.Collections.Generic;
    2424using HeuristicLab.Persistence.Core;
    25 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
     25using HEAL.Attic;
    2626using HeuristicLab.Persistence.Interfaces;
    2727
    2828namespace HeuristicLab.Persistence.Default.CompositeSerializers {
    2929
    30   [StorableClass]
     30  [StorableType("EBEA3A72-AF1D-44BF-8A09-1645402E0715")]
    3131  internal sealed class ArraySerializer : ICompositeSerializer {
    3232
    3333    [StorableConstructor]
    34     private ArraySerializer(bool deserializing) { }
     34    private ArraySerializer(StorableConstructorFlag _) { }
    3535    public ArraySerializer() { }
    3636
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/CompactNumberArray2StringSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    2626using HeuristicLab.Persistence.Auxiliary;
    2727using HeuristicLab.Persistence.Core;
    28 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
     28using HEAL.Attic;
    2929using HeuristicLab.Persistence.Interfaces;
    3030
    3131namespace HeuristicLab.Persistence.Default.CompositeSerializers {
    3232
    33   [StorableClass]
     33  [StorableType("19E6CBD6-B977-4828-8121-5B5E9E856F2B")]
    3434  public sealed class CompactNumberArray2StringSerializer : ICompositeSerializer {
    3535
     
    8282
    8383    [StorableConstructor]
    84     private CompactNumberArray2StringSerializer(bool deserializing) { }
     84    private CompactNumberArray2StringSerializer(StorableConstructorFlag _) { }
    8585    public CompactNumberArray2StringSerializer() { }
    8686
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/ConcreteDictionarySerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    2525using System.Linq;
    2626using HeuristicLab.Persistence.Core;
    27 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
     27using HEAL.Attic;
    2828using HeuristicLab.Persistence.Interfaces;
    2929
    3030namespace HeuristicLab.Persistence.Default.CompositeSerializers {
    3131
    32   [StorableClass]
     32  [StorableType("5C0B5959-CFCA-4067-9D4D-540846D8F6EF")]
    3333  internal sealed class ConcreteDictionarySerializer : ICompositeSerializer {
    3434
    3535    [StorableConstructor]
    36     private ConcreteDictionarySerializer(bool deserializing) { }
     36    private ConcreteDictionarySerializer(StorableConstructorFlag _) { }
    3737    public ConcreteDictionarySerializer() { }
    3838
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/DictionarySerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    2525using HeuristicLab.Persistence.Auxiliary;
    2626using HeuristicLab.Persistence.Core;
    27 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
     27using HEAL.Attic;
    2828using HeuristicLab.Persistence.Interfaces;
    2929
    3030namespace HeuristicLab.Persistence.Default.CompositeSerializers {
    3131
    32   [StorableClass]
     32  [StorableType("D66B7E71-1399-41F0-A97B-E2A2A0C87D71")]
    3333  internal sealed class DictionarySerializer : ICompositeSerializer {
    3434
    3535    [StorableConstructor]
    36     private DictionarySerializer(bool deserializing) { }
     36    private DictionarySerializer(StorableConstructorFlag _) { }
    3737    public DictionarySerializer() { }
    3838
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/EnumSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    2323using System.Collections.Generic;
    2424using HeuristicLab.Persistence.Core;
    25 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
     25using HEAL.Attic;
    2626using HeuristicLab.Persistence.Interfaces;
    2727
    2828namespace HeuristicLab.Persistence.Default.CompositeSerializers {
    2929
    30   [StorableClass]
     30  [StorableType("1DBD47D9-312B-4572-8B66-C3BFFD004FD6")]
    3131  internal sealed class EnumSerializer : ICompositeSerializer {
    3232
    3333    [StorableConstructor]
    34     private EnumSerializer(bool deserializing) { }
     34    private EnumSerializer(StorableConstructorFlag _) { }
    3535    public EnumSerializer() { }
    3636
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/EnumerableSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    2626using HeuristicLab.Persistence.Auxiliary;
    2727using HeuristicLab.Persistence.Core;
    28 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
     28using HEAL.Attic;
    2929using HeuristicLab.Persistence.Interfaces;
    3030
    3131namespace HeuristicLab.Persistence.Default.CompositeSerializers {
    3232
    33   [StorableClass]
     33  [StorableType("0EC0CBC9-A9C3-49BB-B3AC-6991DE771F27")]
    3434  internal sealed class EnumerableSerializer : ICompositeSerializer {
    3535
    3636    [StorableConstructor]
    37     private EnumerableSerializer(bool deserializing) { }
     37    private EnumerableSerializer(StorableConstructorFlag _) { }
    3838    public EnumerableSerializer() { }
    3939
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/HashSetSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    2626using System.Reflection;
    2727using HeuristicLab.Persistence.Core;
    28 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
     28using HEAL.Attic;
    2929using HeuristicLab.Persistence.Interfaces;
    3030
    3131namespace HeuristicLab.Persistence.Default.CompositeSerializers {
    3232
    33   [StorableClass]
     33  [StorableType("3A6430F5-B40C-46D1-89F2-B8AAAD46F052")]
    3434  internal sealed class HashSetSerializer : ICompositeSerializer {
    3535
    3636    [StorableConstructor]
    37     private HashSetSerializer(bool deserializing) { }
     37    private HashSetSerializer(StorableConstructorFlag _) { }
    3838    public HashSetSerializer() { }
    3939
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/KeyValuePairSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    2525using System.Reflection;
    2626using HeuristicLab.Persistence.Core;
    27 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
     27using HEAL.Attic;
    2828using HeuristicLab.Persistence.Interfaces;
    2929
    3030namespace HeuristicLab.Persistence.Default.CompositeSerializers {
    3131
    32   [StorableClass]
     32  [StorableType("7A42AEE3-A9C5-46B7-9968-F8EF3E146DF3")]
    3333  internal sealed class KeyValuePairSerializer : ICompositeSerializer {
    3434
    3535    [StorableConstructor]
    36     private KeyValuePairSerializer(bool deserializing) { }
     36    private KeyValuePairSerializer(StorableConstructorFlag _) { }
    3737    public KeyValuePairSerializer() { }
    3838
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/Number2StringSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    2525using HeuristicLab.Persistence.Auxiliary;
    2626using HeuristicLab.Persistence.Core;
    27 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
     27using HEAL.Attic;
    2828using HeuristicLab.Persistence.Default.Xml;
    2929using HeuristicLab.Persistence.Default.Xml.Primitive;
     
    4040  /// but can be useful in generating custom serializers.
    4141  /// </summary>
    42   [StorableClass]
     42  [StorableType("CD4E3C0C-C766-42EA-B968-C6EBD0FAA637")]
    4343  public sealed class Number2StringSerializer : ICompositeSerializer {
    4444
    4545    [StorableConstructor]
    46     private Number2StringSerializer(bool deserializing) { }
     46    private Number2StringSerializer(StorableConstructorFlag _) { }
    4747    public Number2StringSerializer() { }
    4848
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/NumberEnumerable2StringSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    2626using HeuristicLab.Persistence.Auxiliary;
    2727using HeuristicLab.Persistence.Core;
    28 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
     28using HEAL.Attic;
    2929using HeuristicLab.Persistence.Interfaces;
    3030
    3131namespace HeuristicLab.Persistence.Default.CompositeSerializers {
    3232
    33   [StorableClass]
     33  [StorableType("44392644-F6AE-48F3-B0D8-08D3ED7DA307")]
    3434  internal sealed class NumberEnumerable2StringSerializer : ICompositeSerializer {
    3535
    3636    [StorableConstructor]
    37     private NumberEnumerable2StringSerializer(bool deserializing) { }
     37    private NumberEnumerable2StringSerializer(StorableConstructorFlag _) { }
    3838    public NumberEnumerable2StringSerializer() { }
    3939
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/QueueSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    2525using System.Reflection;
    2626using HeuristicLab.Persistence.Core;
    27 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
     27using HEAL.Attic;
    2828using HeuristicLab.Persistence.Interfaces;
    2929
    3030namespace HeuristicLab.Persistence.Default.CompositeSerializers {
    3131
    32   [StorableClass]
     32  [StorableType("EAAB8D01-445B-4834-B318-2AD56B7B537E")]
    3333  internal sealed class QueueSerializer : ICompositeSerializer {
    3434
    3535    [StorableConstructor]
    36     private QueueSerializer(bool deserializing) { }
     36    private QueueSerializer(StorableConstructorFlag _) { }
    3737    public QueueSerializer() { }
    3838
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/StackSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    2525using System.Reflection;
    2626using HeuristicLab.Persistence.Core;
    27 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
     27using HEAL.Attic;
    2828using HeuristicLab.Persistence.Interfaces;
    2929
    3030namespace HeuristicLab.Persistence.Default.CompositeSerializers {
    3131
    32   [StorableClass]
     32  [StorableType("0EFD0631-C3A9-4233-B5B2-06103C908D78")]
    3333  internal sealed class StackSerializer : ICompositeSerializer {
    3434
    3535    [StorableConstructor]
    36     private StackSerializer(bool deserializing) { }
     36    private StackSerializer(StorableConstructorFlag _) { }
    3737    public StackSerializer() { }
    3838
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/Storable/StorableMemberInfo.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    2323using System.Reflection;
    2424using System.Text;
    25 using HeuristicLab.Persistence.Core;
     25using HEAL.Attic;
    2626
    2727namespace HeuristicLab.Persistence.Default.CompositeSerializers.Storable {
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/Storable/StorableReflection.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    2424using System.Linq;
    2525using System.Reflection;
    26 using HeuristicLab.Persistence.Core;
     26using HEAL.Attic;
    2727
    2828namespace HeuristicLab.Persistence.Default.CompositeSerializers.Storable {
     
    4343        storableMembers.AddRange(GenerateStorableMembers(type.BaseType));
    4444
    45       var storableClassAttribute = GetStorableClassAttribute(type);
    46       if (storableClassAttribute != null) {
    47         switch (storableClassAttribute.Type) {
    48           case StorableClassType.MarkedOnly:
     45      var storableTypeAttribute = GetStorableTypeAttribute(type);
     46      if (storableTypeAttribute != null) {
     47        switch (storableTypeAttribute.MemberSelection) {
     48          case StorableMemberSelection.MarkedOnly:
    4949            AddMarkedMembers(type, storableMembers); break;
    50           case StorableClassType.AllFields:
     50          case StorableMemberSelection.AllFields:
    5151            AddAll(type, MemberTypes.Field, storableMembers); break;
    52           case StorableClassType.AllProperties:
     52          case StorableMemberSelection.AllProperties:
    5353            AddAll(type, MemberTypes.Property, storableMembers); break;
    54           case StorableClassType.AllFieldsAndAllProperties:
     54          case StorableMemberSelection.AllFieldsAndAllProperties:
    5555            AddAll(type, MemberTypes.Field | MemberTypes.Property, storableMembers); break;
    5656          default:
    57             throw new PersistenceException("unsupported [StorableClassType]: " + storableClassAttribute.Type);
     57            throw new PersistenceException("unsupported [StorableMemberSelection]: " + storableTypeAttribute.MemberSelection);
    5858        }
    5959      }
     
    6262
    6363    public static bool IsEmptyOrStorableType(Type type, bool recursive) {
    64       if (!HasStorableClassAttribute(type) && !IsEmptyType(type, false)) return false;
     64      if (!HasStorableTypeAttribute(type) && !IsEmptyType(type, false)) return false;
    6565      return !recursive || type.BaseType == null || IsEmptyOrStorableType(type.BaseType, true);
    6666    }
     
    7272        foreach (var hook in CollectHooks(hookType, type.BaseType))
    7373          yield return hook;
    74       if (HasStorableClassAttribute(type)) {
     74      if (HasStorableTypeAttribute(type)) {
    7575        foreach (MethodInfo methodInfo in type.GetMethods(DECLARED_INSTANCE_MEMBERS)) {
    7676          if (methodInfo.ReturnType == typeof(void) && methodInfo.GetParameters().Length == 0) {
     
    174174    #region [StorableClass] helpers
    175175
    176     private static StorableClassAttribute GetStorableClassAttribute(Type type) {
    177       lock (storableClassCache) {
    178         if (storableClassCache.ContainsKey(type))
    179           return storableClassCache[type];
    180         StorableClassAttribute attribute = type
    181           .GetCustomAttributes(typeof(StorableClassAttribute), false)
    182           .SingleOrDefault() as StorableClassAttribute;
    183         storableClassCache.Add(type, attribute);
     176    private static StorableTypeAttribute GetStorableTypeAttribute(Type type) {
     177      lock (storableTypeCache) {
     178        if (storableTypeCache.ContainsKey(type))
     179          return storableTypeCache[type];
     180        StorableTypeAttribute attribute = type
     181          .GetCustomAttributes(typeof(StorableTypeAttribute), false)
     182          .SingleOrDefault() as StorableTypeAttribute;
     183        storableTypeCache.Add(type, attribute);
    184184        return attribute;
    185185      }
    186186    }
    187187
    188     public static bool HasStorableClassAttribute(Type type) {
    189       return GetStorableClassAttribute(type) != null;
    190     }
    191 
    192     private static Dictionary<Type, StorableClassAttribute> storableClassCache =
    193       new Dictionary<Type, StorableClassAttribute>();
     188    public static bool HasStorableTypeAttribute(Type type) {
     189      return GetStorableTypeAttribute(type) != null;
     190    }
     191
     192    private static Dictionary<Type, StorableTypeAttribute> storableTypeCache =
     193      new Dictionary<Type, StorableTypeAttribute>();
    194194
    195195    #endregion
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/Storable/StorableSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    2626using System.Reflection.Emit;
    2727using System.Text;
     28using HEAL.Attic;
    2829using HeuristicLab.Persistence.Core;
    2930using HeuristicLab.Persistence.Interfaces;
     
    3334  /// <summary>
    3435  /// Intended for serialization of all custom classes. Classes should have the
    35   /// <c>[StorableClass]</c> attribute set. The default mode is to serialize
     36  /// <c>[StorableType]</c> attribute set. The default mode is to serialize
    3637  /// members with the <c>[Storable]</c> attribute set. Alternatively the
    3738  /// storable mode can be set to <c>AllFields</c>, <c>AllProperties</c>
    3839  /// or <c>AllFieldsAndAllProperties</c>.
    3940  /// </summary>
    40   [StorableClass]
     41  [StorableType("F60343E8-4337-4171-A50A-6A57D09267ED")]
    4142  public sealed class StorableSerializer : ICompositeSerializer {
    4243
     
    4950
    5051    [StorableConstructor]
    51     private StorableSerializer(bool deserializing) : this() { }
     52    private StorableSerializer(StorableConstructorFlag _) { }
    5253
    5354    #region ICompositeSerializer implementation
     
    6970    /// </returns>
    7071    public bool CanSerialize(Type type) {
    71       var markedStorable = StorableReflection.HasStorableClassAttribute(type);
     72      if (type.IsEnum || type.IsValueType) return false; // there are other more specific serializers for enums and structs
     73      var markedStorable = StorableReflection.HasStorableTypeAttribute(type);
    7274      if (GetConstructor(type) == null)
    73         if (markedStorable)
     75        if (markedStorable && !type.IsInterface)
    7476          throw new Exception("[Storable] type has no default constructor and no [StorableConstructor]");
    7577        else
    7678          return false;
    7779      if (!StorableReflection.IsEmptyOrStorableType(type, true))
    78         if (markedStorable)
     80        if (markedStorable && !type.IsInterface)
    7981          throw new Exception("[Storable] type has non emtpy, non [Storable] base classes");
    8082        else
     
    240242        .Where(ci => ci.GetCustomAttributes(typeof(StorableConstructorAttribute), false).Length > 0)) {
    241243        if (ci.GetParameters().Length != 1 ||
    242             ci.GetParameters()[0].ParameterType != typeof(bool))
    243           throw new PersistenceException("StorableConstructor must have exactly one argument of type bool");
     244            ci.GetParameters()[0].ParameterType != typeof(StorableConstructorFlag))
     245          throw new PersistenceException("StorableConstructor must have exactly one argument of type StorableConstructorFlag");
    244246        var dm = new DynamicMethod("", typeof(object), null, type, true);
    245247        var ilgen = dm.GetILGenerator();
    246         ilgen.Emit(OpCodes.Ldc_I4_1); // load true
     248        var defaultFlagFieldInfo = typeof(StorableConstructorFlag).GetField("Default", BindingFlags.Static | BindingFlags.Public);
     249        ilgen.Emit(OpCodes.Ldsfld, defaultFlagFieldInfo); // load the object
    247250        ilgen.Emit(OpCodes.Newobj, ci);
    248251        ilgen.Emit(OpCodes.Ret);
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/StructSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    2424using System.Reflection;
    2525using HeuristicLab.Persistence.Core;
    26 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
     26using HEAL.Attic;
    2727using HeuristicLab.Persistence.Interfaces;
    2828
    2929namespace HeuristicLab.Persistence.Default.CompositeSerializers {
    3030
    31   [StorableClass]
     31  [StorableType("85C63E3B-C604-4267-8008-6B89521BA312")]
    3232  internal sealed class StructSerializer : ICompositeSerializer {
    3333
    3434    [StorableConstructor]
    35     private StructSerializer(bool deserializing) { }
     35    private StructSerializer(StorableConstructorFlag _) { }
    3636    public StructSerializer() { }
    3737
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/TupleSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    2525using System.Reflection;
    2626using HeuristicLab.Persistence.Core;
    27 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
     27using HEAL.Attic;
    2828using HeuristicLab.Persistence.Interfaces;
    2929
    3030namespace HeuristicLab.Persistence.Default.CompositeSerializers {
    3131
    32   [StorableClass]
     32  [StorableType("463686AC-AA54-4D85-88DF-65F67AE0FA85")]
    3333  internal sealed class TupleSerializer : ICompositeSerializer {
    3434
    3535    [StorableConstructor]
    36     private TupleSerializer(bool deserializing) { }
     36    private TupleSerializer(StorableConstructorFlag _) { }
    3737    public TupleSerializer() { }
    3838
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/TypeSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    2424using HeuristicLab.Persistence.Auxiliary;
    2525using HeuristicLab.Persistence.Core;
    26 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
     26using HEAL.Attic;
    2727using HeuristicLab.Persistence.Interfaces;
    2828
    2929namespace HeuristicLab.Persistence.Default.CompositeSerializers {
    3030
    31   [StorableClass]
     31  [StorableType("0CF9A082-629F-4554-8912-CC37228175E2")]
    3232  internal sealed class TypeSerializer : ICompositeSerializer {
    3333
    3434    [StorableConstructor]
    35     private TypeSerializer(bool deserializing) { }
     35    private TypeSerializer(StorableConstructorFlag _) { }
    3636    public TypeSerializer() { }
    3737
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/DebugString/DebugString.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    2020#endregion
    2121
    22 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
     22using HEAL.Attic;
    2323using HeuristicLab.Persistence.Interfaces;
    2424
     
    2828  /// Simple write-only format for debugging purposes.
    2929  /// </summary>
    30   [StorableClass]
     30  [StorableType("11A7D76E-AB88-43E1-97E8-D195959C34A2")]
    3131  public class DebugString : ISerialData {
    3232
     
    3939
    4040    [StorableConstructor]
    41     protected DebugString(bool deserializing) { }
     41    protected DebugString(StorableConstructorFlag _) { }
    4242    private DebugString() { }
    4343
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/DebugString/DebugStringFormat.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    2020#endregion
    2121
    22 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
     22using HEAL.Attic;
    2323using HeuristicLab.Persistence.Interfaces;
    2424
     
    2828  /// Simple write-only format for debugging purposes.
    2929  /// </summary>
    30   [StorableClass]
     30  [StorableType("961AC268-6669-4B0E-A2B5-38C99BA63FD9")]
    3131  public class DebugStringFormat : FormatBase<DebugString> {
    3232    /// <summary>
     
    3737
    3838    [StorableConstructor]
    39     protected DebugStringFormat(bool deserializing) : base(deserializing) { }
     39    protected DebugStringFormat(StorableConstructorFlag _) : base(_) { }
    4040    public DebugStringFormat() { }
    4141  }
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/DebugString/DebugStringGenerator.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/DebugString/PrimitiveSerializers/Bool2DebugStringSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/DebugString/PrimitiveSerializers/Byte2DebugStringSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/DebugString/PrimitiveSerializers/Char2DebugStringSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/DebugString/PrimitiveSerializers/DateTime2DebugStringSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/DebugString/PrimitiveSerializers/Double2DebugStringSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/DebugString/PrimitiveSerializers/Float2DebugStringSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/DebugString/PrimitiveSerializers/Int2DebugStringSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/DebugString/PrimitiveSerializers/Long2DebugStringSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/DebugString/PrimitiveSerializers/SByte2DebugStringSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/DebugString/PrimitiveSerializers/Short2DebugStringSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/DebugString/PrimitiveSerializers/String2DebugStringSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/DebugString/PrimitiveSerializers/Type2DebugStringSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/DebugString/PrimitiveSerializers/UInt2DebugStringSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/DebugString/PrimitiveSerializers/ULong2DebugStringSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/DebugString/PrimitiveSerializers/UShort2DebugStringSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/DebugString/PrimitiveSerializers/ValueType2DebugStringSerializerBase.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/Xml/Compact/ByteArray2XmlSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/Xml/Compact/CompactXmlSerializerBase.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/Xml/Compact/DoubleArray2XmlSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/Xml/Compact/DoubleList2XmlSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    2323using System.Collections.Generic;
    2424using System.Text;
     25using HEAL.Attic;
    2526using HeuristicLab.Persistence.Auxiliary;
    26 using HeuristicLab.Persistence.Core;
    2727using HeuristicLab.Persistence.Default.Xml.Primitive;
    2828
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/Xml/Compact/IntArray2XmlSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/Xml/Compact/IntList2XmlSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/Xml/Compact/NumberArray2XmlSerializerBase.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    2121
    2222using System;
    23 using System.Collections;
    2423using System.Collections.Generic;
    2524using System.Linq;
    2625using System.Text;
     26using HEAL.Attic;
    2727using HeuristicLab.Persistence.Auxiliary;
    28 using HeuristicLab.Persistence.Core;
    29 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    3028
    3129namespace HeuristicLab.Persistence.Default.Xml.Compact {
    3230
    33   [StorableClass]
     31  [StorableType("CE0A5AEB-FC09-4F66-9F92-C7B30BAB2713")]
    3432  internal abstract class NumberArray2XmlSerializerBase<T> : CompactXmlSerializerBase<T> where T : class {
    3533
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/Xml/Compact/NumberEnumeration2XmlSerializerBase.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    2323using System.Collections;
    2424using System.Text;
     25using HEAL.Attic;
    2526using HeuristicLab.Persistence.Auxiliary;
    26 using HeuristicLab.Persistence.Core;
    27 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    2827
    2928namespace HeuristicLab.Persistence.Default.Xml.Compact {
    3029
    31   [StorableClass]
     30  [StorableType("B4D23353-9322-4005-BAF2-AB3034DEE34A")]
    3231  internal abstract class NumberEnumeration2XmlSerializerBase<T> : CompactXmlSerializerBase<T> where T : IEnumerable {
    3332
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/Xml/EasyXmlGenerator.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    2323using System.Collections.Generic;
    2424using System.IO;
     25using HEAL.Attic;
    2526using HeuristicLab.Persistence.Auxiliary;
    2627using HeuristicLab.Persistence.Core;
     
    181182      try {
    182183        using (StreamWriter writer = new StreamWriter(stream)) {
    183           Serializer serializer = new Serializer(obj, config);
     184          Core.Serializer serializer = new Core.Serializer(obj, config);
    184185          serializer.InterleaveTypeInformation = true;
    185186          ReadableXmlGenerator generator = new ReadableXmlGenerator();
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/Bool2XmlSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/Byte2XmlSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/Char2XmlFormatter.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    2323using System.Text;
    2424using System.Text.RegularExpressions;
    25 using HeuristicLab.Persistence.Core;
     25using HEAL.Attic;
    2626using HeuristicLab.Persistence.Interfaces;
    2727
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/DateTime2XmlSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    2121
    2222using System;
    23 using HeuristicLab.Persistence.Core;
     23using HEAL.Attic;
    2424
    2525namespace HeuristicLab.Persistence.Default.Xml.Primitive {
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/Decimal2XmlSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/Double2XmlSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/Float2XmlSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/Guid2XmlSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    2222using System;
    2323using System.Globalization;
    24 using HeuristicLab.Persistence.Core;
     24using HEAL.Attic;
    2525
    2626
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/Int2XmlSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/Long2XmlSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/PrimitiveXmlSerializerBase.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/SByte2XmlSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/Short2XmlSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/SimpleNumber2XmlSerializerBase.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    2222using System;
    2323using System.Reflection;
    24 using HeuristicLab.Persistence.Core;
     24using HEAL.Attic;
    2525
    2626namespace HeuristicLab.Persistence.Default.Xml.Primitive {
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/String2XmlSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    2323using System.Text;
    2424using System.Text.RegularExpressions;
    25 using HeuristicLab.Persistence.Core;
     25using HEAL.Attic;
    2626
    2727namespace HeuristicLab.Persistence.Default.Xml.Primitive {
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/System.Drawing/Bitmap2XmlSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/System.Drawing/Font2XmlSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/TimeSpan2XmlSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    2121
    2222using System;
    23 using HeuristicLab.Persistence.Core;
     23using HEAL.Attic;
    2424
    2525
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/UInt2XmlSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/ULong2XmlSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/UShort2XmlSerializer.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/Xml/XmlFormat.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    2020#endregion
    2121
    22 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
     22using HEAL.Attic;
    2323using HeuristicLab.Persistence.Interfaces;
    2424
     
    2929  /// or save to a file.
    3030  /// </summary>
    31   [StorableClass]
     31  [StorableType("4E9895D9-BB30-43A6-AB35-4263FFDE3C0E")]
    3232  public class XmlFormat : FormatBase<XmlString> {
    3333    /// <summary>
     
    3838
    3939    [StorableConstructor]
    40     protected XmlFormat(bool deserializing) : base(deserializing) { }
     40    protected XmlFormat(StorableConstructorFlag _) : base(_) { }
    4141    public XmlFormat() { }
    4242  }
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/Xml/XmlGenerator.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    2626using System.Linq;
    2727using System.Text;
     28using System.Threading;
     29using HEAL.Attic;
    2830using HeuristicLab.Persistence.Core;
    2931using HeuristicLab.Persistence.Core.Tokens;
     
    6163    }
    6264
    63     protected enum NodeType { Start, End, Inline } ;
     65    protected enum NodeType { Start, End, Inline };
    6466
    6567    protected static void AddXmlTagContent(StringBuilder sb, string name, Dictionary<string, string> attributes) {
     
    256258          {"typeName", lastTypeToken.TypeName },
    257259          {"serializer", lastTypeToken.Serializer }});
    258       }
    259       finally {
     260      } finally {
    260261        lastTypeToken = null;
    261262      }
     
    284285    /// <param name="o">The object.</param>
    285286    /// <param name="filename">The filename.</param>
    286     public static void Serialize(object o, string filename) {
    287       Serialize(o, filename, ConfigurationService.Instance.GetConfiguration(new XmlFormat()), false, CompressionLevel.Optimal);
     287    public static void Serialize(object o, string filename, CancellationToken cancellationToken = default(CancellationToken)) {
     288      Serialize(o, filename, ConfigurationService.Instance.GetConfiguration(new XmlFormat()), false, CompressionLevel.Optimal, cancellationToken);
    288289    }
    289290
     
    296297    /// <param name="filename">The filename.</param>
    297298    /// <param name="compression">ZIP file compression level</param>
    298     public static void Serialize(object o, string filename, CompressionLevel compression) {
    299       Serialize(o, filename, ConfigurationService.Instance.GetConfiguration(new XmlFormat()), false, compression);
     299    public static void Serialize(object o, string filename, CompressionLevel compression, CancellationToken cancellationToken = default(CancellationToken)) {
     300      Serialize(o, filename, ConfigurationService.Instance.GetConfiguration(new XmlFormat()), false, compression, cancellationToken);
    300301    }
    301302
     
    307308    /// <param name="filename">The filename.</param>
    308309    /// <param name="config">The configuration.</param>
    309     public static void Serialize(object obj, string filename, Configuration config) {
    310       Serialize(obj, filename, config, false, CompressionLevel.Optimal);
    311     }
    312 
    313     private static void Serialize(object obj, Stream stream, Configuration config, bool includeAssemblies
    314    , CompressionLevel compression) {
    315       Serializer serializer = new Serializer(obj, config);
    316       Serialize(stream, includeAssemblies, compression, serializer);
    317     }
    318 
    319     private static void Serialize(Stream stream, bool includeAssemblies, CompressionLevel compression, Serializer serializer) {
     310    public static void Serialize(object obj, string filename, Configuration config, CancellationToken cancellationToken = default(CancellationToken)) {
     311      Serialize(obj, filename, config, false, CompressionLevel.Optimal, cancellationToken);
     312    }
     313
     314    private static void Serialize(object obj, Stream stream, Configuration config, bool includeAssemblies, CompressionLevel compression, CancellationToken cancellationToken = default(CancellationToken)) {
     315      Core.Serializer serializer = new Core.Serializer(obj, config);
     316      Serialize(stream, includeAssemblies, compression, serializer, cancellationToken);
     317    }
     318
     319    private static void Serialize(Stream stream, bool includeAssemblies, CompressionLevel compression, Core.Serializer serializer, CancellationToken cancellationToken = default(CancellationToken)) {
    320320      try {
     321        cancellationToken.ThrowIfCancellationRequested();
    321322        DateTime start = DateTime.Now;
    322323        serializer.InterleaveTypeInformation = false;
     
    326327          using (StreamWriter writer = new StreamWriter(entry.Open())) {
    327328            foreach (ISerializationToken token in serializer) {
     329              cancellationToken.ThrowIfCancellationRequested();
    328330              string line = generator.Format(token);
    329331              writer.Write(line);
     
    338340          if (includeAssemblies) {
    339341            foreach (string name in serializer.RequiredFiles) {
     342              cancellationToken.ThrowIfCancellationRequested();
    340343              Uri uri = new Uri(name);
    341344              if (!uri.IsFile) {
     
    348351                  byte[] buffer = new byte[1024 * 1024];
    349352                  while (true) {
     353                    cancellationToken.ThrowIfCancellationRequested();
    350354                    int bytesRead = reader.Read(buffer, 0, 1024 * 1024);
    351355                    if (bytesRead == 0)
     
    360364        Logger.Info(String.Format("serialization took {0} seconds with compression level {1}",
    361365          (DateTime.Now - start).TotalSeconds, compression));
    362       }
    363       catch (Exception) {
     366      } catch (Exception) {
    364367        Logger.Warn("Exception caught, no data has been serialized.");
    365368        throw;
     
    375378    /// <param name="includeAssemblies">if set to <c>true</c> include needed assemblies.</param>
    376379    /// <param name="compression">The ZIP compression level.</param>
    377     public static void Serialize(object obj, string filename, Configuration config, bool includeAssemblies, CompressionLevel compression) {
     380    public static void Serialize(object obj, string filename, Configuration config, bool includeAssemblies, CompressionLevel compression, CancellationToken cancellationToken = default(CancellationToken)) {
     381      string tempfile = null;
    378382      try {
    379         string tempfile = Path.GetTempFileName();
     383        tempfile = Path.GetTempFileName();
    380384
    381385        using (FileStream stream = File.Create(tempfile)) {
    382           Serialize(obj, stream, config, includeAssemblies, compression);
    383         }
    384 
     386          Serialize(obj, stream, config, includeAssemblies, compression, cancellationToken);
     387        }
     388        // copy only if needed
    385389        File.Copy(tempfile, filename, true);
    386         File.Delete(tempfile);
    387       }
    388       catch (Exception) {
     390      } catch (Exception) {
    389391        Logger.Warn("Exception caught, no data has been written.");
    390392        throw;
     393      } finally {
     394        if (tempfile != null && File.Exists(tempfile))
     395          File.Delete(tempfile);
    391396      }
    392397    }
     
    399404    /// <param name="stream">The stream.</param>
    400405    /// <param name="compressionType">Type of compression, default is GZip.</param>
    401     public static void Serialize(object obj, Stream stream, CompressionType compressionType = CompressionType.GZip) {
    402       Serialize(obj, stream, ConfigurationService.Instance.GetConfiguration(new XmlFormat()), compressionType);
     406    public static void Serialize(object obj, Stream stream, CompressionType compressionType = CompressionType.GZip, CancellationToken cancellationToken = default(CancellationToken)) {
     407      Serialize(obj, stream, ConfigurationService.Instance.GetConfiguration(new XmlFormat()), compressionType, cancellationToken);
    403408    }
    404409
     
    411416    /// <param name="config">The configuration.</param>
    412417    /// <param name="compressionType">Type of compression, default is GZip.</param>
    413     public static void Serialize(object obj, Stream stream, Configuration config, CompressionType compressionType = CompressionType.GZip) {
    414       Serialize(obj, stream, config, false, compressionType);
     418    public static void Serialize(object obj, Stream stream, Configuration config, CompressionType compressionType = CompressionType.GZip, CancellationToken cancellationToken = default(CancellationToken)) {
     419      Serialize(obj, stream, config, false, compressionType, cancellationToken);
    415420    }
    416421
     
    423428    /// <param name="includeAssemblies">if set to <c>true</c> include need assemblies.</param>
    424429    /// <param name="compressionType">Type of compression, default is GZip.</param>
    425     public static void Serialize(object obj, Stream stream, Configuration config, bool includeAssemblies,
    426                                  CompressionType compressionType = CompressionType.GZip) {
     430    public static void Serialize(object obj, Stream stream, Configuration config, bool includeAssemblies, CompressionType compressionType = CompressionType.GZip, CancellationToken cancellationToken = default(CancellationToken)) {
    427431      try {
    428         Serializer serializer = new Serializer(obj, config);
     432        Core.Serializer serializer = new Core.Serializer(obj, config);
    429433        if (compressionType == CompressionType.Zip) {
    430           Serialize(obj, stream, config, includeAssemblies, CompressionLevel.Optimal);
     434          Serialize(obj, stream, config, includeAssemblies, CompressionLevel.Optimal, cancellationToken);
    431435        } else {
    432           Serialize(stream, serializer);
    433         }
    434       }
    435       catch (PersistenceException) {
     436          Serialize(stream, serializer, cancellationToken);
     437        }
     438      } catch (PersistenceException) {
    436439        throw;
    437       }
    438       catch (Exception e) {
     440      } catch (Exception e) {
    439441        throw new PersistenceException("Unexpected exception during Serialization.", e);
    440442      }
     
    451453    /// <param name="compressionType">Type of compression, default is GZip.</param>
    452454    public static void Serialize(object obj, Stream stream, Configuration config, bool includeAssemblies, out IEnumerable<Type> types,
    453                                  CompressionType compressionType = CompressionType.GZip) {
     455                                 CompressionType compressionType = CompressionType.GZip, CancellationToken cancellationToken = default(CancellationToken)) {
    454456      try {
    455         Serializer serializer = new Serializer(obj, config);
     457        Core.Serializer serializer = new Core.Serializer(obj, config);
    456458        if (compressionType == CompressionType.Zip) {
    457           Serialize(stream, includeAssemblies, CompressionLevel.Optimal, serializer);
     459          Serialize(stream, includeAssemblies, CompressionLevel.Optimal, serializer, cancellationToken);
    458460        } else {
    459           Serialize(stream, serializer);
     461          Serialize(stream, serializer, cancellationToken);
    460462        }
    461463        types = serializer.SerializedTypes;
    462       }
    463       catch (PersistenceException) {
     464      } catch (PersistenceException) {
    464465        throw;
    465       }
    466       catch (Exception e) {
     466      } catch (Exception e) {
    467467        throw new PersistenceException("Unexpected exception during Serialization.", e);
    468468      }
    469469    }
    470470
    471     private static void Serialize(Stream stream, Serializer serializer) {
     471    private static void Serialize(Stream stream, Core.Serializer serializer, CancellationToken cancellationToken = default(CancellationToken)) {
     472      cancellationToken.ThrowIfCancellationRequested();
    472473      using (StreamWriter writer = new StreamWriter(new GZipStream(stream, CompressionMode.Compress))) {
    473474        serializer.InterleaveTypeInformation = true;
    474475        XmlGenerator generator = new XmlGenerator();
    475476        foreach (ISerializationToken token in serializer) {
     477          cancellationToken.ThrowIfCancellationRequested();
    476478          string line = generator.Format(token);
    477479          writer.Write(line);
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/Xml/XmlParser.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    2626using System.IO.Compression;
    2727using System.Xml;
     28using HEAL.Attic;
    2829using HeuristicLab.Persistence.Core;
    2930using HeuristicLab.Persistence.Core.Tokens;
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/Xml/XmlSerializerBase.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/Xml/XmlString.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    2121
    2222using System.Text;
    23 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
     23using HEAL.Attic;
    2424using HeuristicLab.Persistence.Interfaces;
    2525
     
    2929  /// XML friendly encapsulation of string data.
    3030  /// </summary>
    31   [StorableClass]
     31  [StorableType("C7207D30-79F0-47C7-B151-6E96A594F75C")]
    3232  public class XmlString : ISerialData {
    3333
     
    4141
    4242    [StorableConstructor]
    43     protected XmlString(bool deserializing) { }
     43    protected XmlString(StorableConstructorFlag _) { }
    4444    private XmlString() { }
    4545
  • branches/2521_ProblemRefactoring/HeuristicLab.Persistence/3.3/Default/Xml/XmlStringConstants.cs

    r16692 r16723  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
Note: See TracChangeset for help on using the changeset viewer.