- Timestamp:
- 04/16/09 12:40:41 (16 years ago)
- Location:
- trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Compact
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Compact/DoubleArray2XmlFormatters.cs
r1542 r1564 4 4 5 5 namespace HeuristicLab.Persistence.Default.Xml.Compact { 6 7 [EmptyStorableClass] 8 public class DoubleArray2XmlFormatter : NumberArray2XmlFormatterBase { 9 10 public override Type Type { 11 get { 12 return typeof(double[]); 13 } 14 } 15 6 7 public abstract class DoubleArray2XmlFormatterBase<T> : NumberArray2XmlFormatterBase<T> { 8 16 9 protected override string FormatValue(object o) { 17 10 return ((double)o).ToString("r", CultureInfo.InvariantCulture); … … 24 17 25 18 [EmptyStorableClass] 26 public class Double2DArray2XmlFormatter : DoubleArray2XmlFormatter { 27 public override Type Type { 28 get { 29 return typeof(double[,]); 30 } 31 } 32 } 19 public class Double1DArray2XmlFormatter : DoubleArray2XmlFormatterBase<double[]> { } 20 33 21 34 22 [EmptyStorableClass] 35 public class Double3DArray2XmlFormatter : DoubleArray2XmlFormatter { 36 public override Type Type { 37 get { 38 return typeof(double[, ,]); 39 } 40 } 41 } 23 public class Double2DArray2XmlFormatter : DoubleArray2XmlFormatterBase<double[,]> { } 24 25 [EmptyStorableClass] 26 public class Double3DArray2XmlFormatter : DoubleArray2XmlFormatterBase<double[,,]> { } 42 27 43 28 } -
trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Compact/DoubleList2XmlFormatter.cs
r1542 r1564 8 8 9 9 [EmptyStorableClass] 10 public class DoubleList2XmlFormatter : NumberEnumeration2XmlFormatterBase { 11 12 public override Type Type { 13 get { 14 return typeof(List<double>); 15 } 16 } 10 public class DoubleList2XmlFormatter : NumberEnumeration2XmlFormatterBase<List<double>> { 17 11 18 12 protected override void Add(IEnumerable enumeration, object o) { … … 20 14 } 21 15 22 protected override objectInstantiate() {16 protected override IEnumerable Instantiate() { 23 17 return new List<double>(); 24 18 } -
trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Compact/IntArray2XmlFormatters.cs
r1542 r1564 3 3 4 4 namespace HeuristicLab.Persistence.Default.Xml.Compact { 5 6 [EmptyStorableClass] 7 public class IntArray2XmlFormatter : NumberArray2XmlFormatterBase { 8 9 public override Type Type { 10 get { 11 return typeof(int[]); 12 } 13 } 5 6 public abstract class IntArray2XmlFormatterBase<T> : NumberArray2XmlFormatterBase<T> { 14 7 15 8 protected override string FormatValue(object o) { … … 22 15 } 23 16 17 [EmptyStorableClass] 18 public class Int1DArray2XmlFormatter : IntArray2XmlFormatterBase<int[]> { } 24 19 25 20 [EmptyStorableClass] 26 public class Int2DArray2XmlFormatter : IntArray2XmlFormatter { 27 public override Type Type { 28 get { 29 return typeof(int[,]); 30 } 31 } 32 } 33 21 public class Int2DArray2XmlFormatter : IntArray2XmlFormatterBase<int[,]> { } 34 22 35 23 [EmptyStorableClass] 36 public class Int3DArray2XmlFormatter : IntArray2XmlFormatter { 37 public override Type Type { 38 get { 39 return typeof(int[, ,]); 40 } 41 } 42 } 24 public class Int3DArray2XmlFormatter : IntArray2XmlFormatterBase<int[,,]> { } 43 25 44 26 } -
trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Compact/IntList2XmlFormatter.cs
r1542 r1564 7 7 8 8 [EmptyStorableClass] 9 public class IntList2XmlFormatter : NumberEnumeration2XmlFormatterBase { 10 11 public override Type Type { 12 get { 13 return typeof(List<int>); 14 } 15 } 16 9 public class IntList2XmlFormatter : NumberEnumeration2XmlFormatterBase<List<int>> { 10 17 11 protected override void Add(IEnumerable enumeration, object o) { 18 12 ((List<int>)enumeration).Add((int)o); 19 13 } 20 14 21 protected override objectInstantiate() {15 protected override IEnumerable Instantiate() { 22 16 return new List<int>(); 23 17 } -
trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Compact/NumberArray2XmlFormatterBase.cs
r1542 r1564 6 6 namespace HeuristicLab.Persistence.Default.Xml.Compact { 7 7 8 public abstract class NumberArray2XmlFormatterBase : IFormatter{8 public abstract class NumberArray2XmlFormatterBase<T> : FormatterBase<T, XmlString> { 9 9 10 public abstract Type Type { get; }11 public IFormat Format { get { return XmlFormat.Instance; } }12 10 protected virtual string Separator { get { return ";"; } } 13 11 protected abstract string FormatValue(object o); 14 12 protected abstract object ParseValue(string o); 15 13 16 public object DoFormat(object obj) { 17 Array a = (Array)obj; 14 public override XmlString Format(T t) { 15 object o = (object)t; 16 Array a = (Array)o; 18 17 int[] lengths = new int[a.Rank]; 19 18 int[] lowerBounds = new int[a.Rank]; … … 44 43 } 45 44 } 46 return sb.ToString();45 return new XmlString(sb.ToString()); 47 46 } 48 47 49 public o bject Parse(object o) {48 public override T Parse(XmlString x) { 50 49 IEnumerator values = 51 ((string)o) 52 .Split(new[] { Separator }, 50 x.Data.Split(new[] { Separator }, 53 51 StringSplitOptions.RemoveEmptyEntries).GetEnumerator(); 54 52 values.MoveNext(); … … 64 62 lowerBounds[i] = int.Parse((string)values.Current); 65 63 } 66 Array a = Array.CreateInstance(this. Type.GetElementType(), lengths, lowerBounds);64 Array a = Array.CreateInstance(this.SourceType.GetElementType(), lengths, lowerBounds); 67 65 int[] positions = new int[rank]; 68 66 while (values.MoveNext()) { … … 78 76 } 79 77 } 80 return a; 78 object o = a; 79 return (T)o; 81 80 } 82 81 } -
trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Compact/NumberEnumeration2XmlFormatterBase.cs
r1542 r1564 6 6 namespace HeuristicLab.Persistence.Default.Xml.Compact { 7 7 8 public abstract class NumberEnumeration2XmlFormatterBase : IFormatter{8 public abstract class NumberEnumeration2XmlFormatterBase<T> : FormatterBase<T, XmlString> where T : IEnumerable { 9 9 10 public abstract Type Type { get; }11 public IFormat Format { get { return XmlFormat.Instance; } }12 10 protected virtual string Separator { get { return ";"; } } 13 11 protected abstract void Add(IEnumerable enumeration, object o); 14 protected abstract objectInstantiate();12 protected abstract IEnumerable Instantiate(); 15 13 protected abstract string FormatValue(object o); 16 14 protected abstract object ParseValue(string o); 17 15 18 public o bject DoFormat(object o) {16 public override XmlString Format(T t) { 19 17 StringBuilder sb = new StringBuilder(); 20 foreach (var value in (IEnumerable) o) {18 foreach (var value in (IEnumerable)t) { 21 19 sb.Append(FormatValue(value)); 22 20 sb.Append(Separator); 23 21 } 24 return sb.ToString();22 return new XmlString(sb.ToString()); 25 23 } 26 24 27 public o bject Parse(object o) {28 IEnumerable enumeration = (IEnumerable)Instantiate();29 string[] values = ((string)o).Split(new[] { Separator }, StringSplitOptions.RemoveEmptyEntries);25 public override T Parse(XmlString x) { 26 IEnumerable enumeration = Instantiate(); 27 string[] values = x.Data.Split(new[] { Separator }, StringSplitOptions.RemoveEmptyEntries); 30 28 foreach (var value in values) { 31 29 Add(enumeration, ParseValue(value)); 32 30 } 33 return enumeration;31 return (T)enumeration; 34 32 } 35 33 }
Note: See TracChangeset
for help on using the changeset viewer.