Free cookie consent management tool by TermsFeed Policy Generator

source: branches/3026_IntegrationIntoSymSpace/HeuristicLab.Manufacture/TypeTransformer/ValueTypeArrayTransformer.cs @ 17266

Last change on this file since 17266 was 17266, checked in by dpiringe, 5 years ago

#3026:

  • changed the namespace from ParameterTest to HeuristicLab.Manufacture
  • added an extension method for Type to get the distance of an interface based on the target type
  • renamed methods ToData, SetValue to Extract, Inject
  • new implementation of the template generation with transformers (not the final name)
  • started to use the new transformers for the instantiation of IOptimizer-objects (out of a template)
  • new transformers: LookupParameterTransformer and DummyTransformer
File size: 899 bytes
Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using System.Threading.Tasks;
6using HeuristicLab.Core;
7using HeuristicLab.Data;
8using Newtonsoft.Json.Linq;
9
10namespace HeuristicLab.Manufacture {
11  public class ValueTypeArrayTransformer<ArrayType, T> : BaseTransformer
12    where ArrayType : ValueTypeArray<T>
13    where T : struct
14  {
15    public override void InjectData(IItem item, ParameterData data) =>
16      CopyArrayData(item.Cast<ArrayType>(), CastValue<T[]>(data.Default));
17
18    public override ParameterData ExtractData(IItem value) =>
19      new ParameterData() {
20        Default = value.Cast<ArrayType>().CloneAsArray()
21      };
22
23    #region Helper
24    private void CopyArrayData(ArrayType array, T[] data) {
25      for (int i = 0; i < data.Length; ++i) {
26        array[i] = data[i];
27      }
28    }
29    #endregion
30  }
31}
Note: See TracBrowser for help on using the repository browser.