- Timestamp:
- 03/15/10 14:45:46 (15 years ago)
- Location:
- trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers
- Files:
-
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/ArraySerializer.cs
r3017 r3036 9 9 10 10 [StorableClass] 11 publicclass ArraySerializer : ICompositeSerializer {11 internal sealed class ArraySerializer : ICompositeSerializer { 12 12 13 13 public int Priority { -
trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/CompactNumberArray2StringSerializer.cs
r3017 r3036 11 11 12 12 [StorableClass] 13 publicclass CompactNumberArray2StringSerializer : ICompositeSerializer {13 internal sealed class CompactNumberArray2StringSerializer : ICompositeSerializer { 14 14 15 15 public int Priority { -
trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/DictionarySerializer.cs
r3017 r3036 10 10 11 11 [StorableClass] 12 publicclass DictionarySerializer : ICompositeSerializer {12 internal sealed class DictionarySerializer : ICompositeSerializer { 13 13 14 14 public int Priority { -
trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/EnumSerializer.cs
r3017 r3036 8 8 9 9 [StorableClass] 10 publicclass EnumSerializer : ICompositeSerializer {10 internal sealed class EnumSerializer : ICompositeSerializer { 11 11 12 12 public int Priority { -
trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/EnumerableSerializer.cs
r3017 r3036 11 11 12 12 [StorableClass] 13 publicclass EnumerableSerializer : ICompositeSerializer {13 internal sealed class EnumerableSerializer : ICompositeSerializer { 14 14 15 15 public int Priority { -
trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/KeyValuePairSerializer.cs
r3017 r3036 10 10 11 11 [StorableClass] 12 publicclass KeyValuePairSerializer : ICompositeSerializer {12 internal sealed class KeyValuePairSerializer : ICompositeSerializer { 13 13 14 14 public int Priority { -
trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/Number2StringSerializer.cs
r3017 r3036 12 12 namespace HeuristicLab.Persistence.Default.CompositeSerializers { 13 13 14 /// <summary> 15 /// Serializes a primitive number type using the ToString() method and an 16 /// approriate precision and parses back the generated string using 17 /// the number type's Parse() method. 18 /// 19 /// This serializer has Priorty below zero and is disabled by default 20 /// but can be useful in generating custom serializers. 21 /// </summary> 14 22 [StorableClass] 15 public class Number2StringSerializer : ICompositeSerializer {23 public sealed class Number2StringSerializer : ICompositeSerializer { 16 24 17 25 private static readonly List<Type> numberTypes = … … 42 50 } 43 51 52 /// <summary> 53 /// Determines for every type whether the composite serializer is applicable. 54 /// </summary> 55 /// <param name="type">The type.</param> 56 /// <returns> 57 /// <c>true</c> if this instance can serialize the specified type; otherwise, <c>false</c>. 58 /// </returns> 44 59 public bool CanSerialize(Type type) { 45 60 return numberParsers.ContainsKey(type); 46 61 } 47 62 63 /// <summary> 64 /// Give a reason if possibly why the given type cannot be serialized by this 65 /// ICompositeSerializer. 66 /// </summary> 67 /// <param name="type">The type.</param> 68 /// <returns> 69 /// A string justifying why type cannot be serialized. 70 /// </returns> 48 71 public string JustifyRejection(Type type) { 49 72 return string.Format("not a number type (one of {0})", … … 51 74 } 52 75 76 /// <summary> 77 /// Formats the specified obj. 78 /// </summary> 79 /// <param name="obj">The obj.</param> 80 /// <returns></returns> 53 81 public string Format(object obj) { 54 82 if (obj.GetType() == typeof(float)) … … 61 89 } 62 90 91 /// <summary> 92 /// Parses the specified string value. 93 /// </summary> 94 /// <param name="stringValue">The string value.</param> 95 /// <param name="type">The type.</param> 96 /// <returns></returns> 63 97 public object Parse(string stringValue, Type type) { 64 98 try { … … 75 109 76 110 111 112 /// <summary> 113 /// Defines the Priorty of this composite serializer. Higher number means 114 /// higher prioriy. Negative numbers are fallback serializers that are 115 /// disabled by default. 116 /// All default generic composite serializers have priority 100. Specializations 117 /// have priority 200 so they will be tried first. Priorities are 118 /// only considered for default configurations. 119 /// </summary> 120 /// <value></value> 77 121 public int Priority { 78 122 get { return -100; } 79 123 } 80 124 125 /// <summary> 126 /// Generate MetaInfo necessary for instance creation. (e.g. dimensions 127 /// necessary for array creation. 128 /// </summary> 129 /// <param name="obj">An object.</param> 130 /// <returns>An enumerable of <see cref="Tag"/>s.</returns> 81 131 public IEnumerable<Tag> CreateMetaInfo(object obj) { 82 132 yield return new Tag(Format(obj)); 83 133 } 84 134 135 /// <summary> 136 /// Decompose an object into <see cref="Tag"/>s, the tag name can be null, 137 /// the order in which elements are generated is guaranteed to be 138 /// the same as they will be supplied to the Populate method. 139 /// </summary> 140 /// <param name="obj">An object.</param> 141 /// <returns>An enumerable of <see cref="Tag"/>s.</returns> 85 142 public IEnumerable<Tag> Decompose(object obj) { 86 143 // numbers are composed just of meta info … … 88 145 } 89 146 147 /// <summary> 148 /// Create an instance of the object using the provided meta information. 149 /// </summary> 150 /// <param name="type">A type.</param> 151 /// <param name="metaInfo">The meta information.</param> 152 /// <returns>A fresh instance of the provided type.</returns> 90 153 public object CreateInstance(Type type, IEnumerable<Tag> metaInfo) { 91 154 var it = metaInfo.GetEnumerator(); … … 102 165 } 103 166 167 /// <summary> 168 /// Fills an object with values from the previously generated <see cref="Tag"/>s 169 /// in Decompose. The order in which the values are supplied is 170 /// the same as they where generated. <see cref="Tag"/> names might be null. 171 /// </summary> 172 /// <param name="instance">An empty object instance.</param> 173 /// <param name="tags">The tags.</param> 174 /// <param name="type">The type.</param> 104 175 public void Populate(object instance, IEnumerable<Tag> tags, Type type) { 105 176 // numbers are composed just of meta info, no need to populate -
trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/NumberEnumerable2StringSerializer.cs
r3017 r3036 12 12 13 13 [StorableClass] 14 publicclass NumberEnumerable2StringSerializer : ICompositeSerializer {14 internal sealed class NumberEnumerable2StringSerializer : ICompositeSerializer { 15 15 16 16 public int Priority { -
trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/StackSerializer.cs
r3017 r3036 11 11 12 12 [StorableClass] 13 publicclass StackSerializer : ICompositeSerializer {13 internal sealed class StackSerializer : ICompositeSerializer { 14 14 15 15 public int Priority { -
trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/Storable/StorableHookAttribute.cs
r3031 r3036 11 11 /// Indicates the time at which the hook should be invoked. 12 12 /// </summary> 13 public enum HookType { BeforeSerialization, AfterDeserialization }; 13 public enum HookType { 14 15 /// <summary> 16 /// States that this hook should be called before the storable 17 /// serializer starts decomposing the object. 18 /// </summary> 19 BeforeSerialization, 20 21 /// <summary> 22 /// States that this hook should be called after the storable 23 /// serializer hast complete re-assembled the object. 24 /// </summary> 25 AfterDeserialization }; 14 26 15 27 -
trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/Storable/StorableSerializer.cs
r3031 r3036 18 18 /// </summary> 19 19 [StorableClass] 20 public class StorableSerializer : ICompositeSerializer {20 public sealed class StorableSerializer : ICompositeSerializer { 21 21 22 22 #region ICompositeSerializer implementation 23 23 24 /// <summary> 25 /// Priority 200, one of the first default composite serializers to try. 26 /// </summary> 27 /// <value></value> 24 28 public int Priority { 25 29 get { return 200; } 26 30 } 27 31 32 /// <summary> 33 /// Determines for every type whether the composite serializer is applicable. 34 /// </summary> 35 /// <param name="type">The type.</param> 36 /// <returns> 37 /// <c>true</c> if this instance can serialize the specified type; otherwise, <c>false</c>. 38 /// </returns> 28 39 public bool CanSerialize(Type type) { 29 40 if (!ReflectionTools.HasDefaultConstructor(type) && … … 33 44 } 34 45 46 /// <summary> 47 /// Give a reason if possibly why the given type cannot be serialized by this 48 /// ICompositeSerializer. 49 /// </summary> 50 /// <param name="type">The type.</param> 51 /// <returns> 52 /// A string justifying why type cannot be serialized. 53 /// </returns> 35 54 public string JustifyRejection(Type type) { 36 55 if (!ReflectionTools.HasDefaultConstructor(type) && … … 42 61 } 43 62 63 /// <summary> 64 /// Creates the meta info. 65 /// </summary> 66 /// <param name="o">The object.</param> 67 /// <returns>A list of storable components.</returns> 44 68 public IEnumerable<Tag> CreateMetaInfo(object o) { 45 69 InvokeHook(HookType.BeforeSerialization, o); … … 47 71 } 48 72 73 /// <summary> 74 /// Decompose an object into <see cref="Tag"/>s, the tag name can be null, 75 /// the order in which elements are generated is guaranteed to be 76 /// the same as they will be supplied to the Populate method. 77 /// </summary> 78 /// <param name="obj">An object.</param> 79 /// <returns>An enumerable of <see cref="Tag"/>s.</returns> 49 80 public IEnumerable<Tag> Decompose(object obj) { 50 81 foreach (var accessor in GetStorableAccessors(obj)) { … … 55 86 private static readonly object[] defaultArgs = new object[] { true }; 56 87 88 /// <summary> 89 /// Create an instance of the object using the provided meta information. 90 /// </summary> 91 /// <param name="type">A type.</param> 92 /// <param name="metaInfo">The meta information.</param> 93 /// <returns>A fresh instance of the provided type.</returns> 57 94 public object CreateInstance(Type type, IEnumerable<Tag> metaInfo) { 58 95 try { … … 66 103 } 67 104 105 /// <summary> 106 /// Populates the specified instance. 107 /// </summary> 108 /// <param name="instance">The instance.</param> 109 /// <param name="objects">The objects.</param> 110 /// <param name="type">The type.</param> 68 111 public void Populate(object instance, IEnumerable<Tag> objects, Type type) { 69 112 var memberDict = new Dictionary<string, Tag>(); -
trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/StructSerializer.cs
r3017 r3036 11 11 12 12 [StorableClass] 13 publicclass StructSerializer : ICompositeSerializer {13 internal sealed class StructSerializer : ICompositeSerializer { 14 14 15 15 public int Priority { -
trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/TypeSerializer.cs
r3017 r3036 9 9 10 10 [StorableClass] 11 publicclass TypeSerializer : ICompositeSerializer {11 internal sealed class TypeSerializer : ICompositeSerializer { 12 12 13 13 public int Priority {
Note: See TracChangeset
for help on using the changeset viewer.