- Timestamp:
- 02/23/21 16:36:44 (3 years ago)
- Location:
- branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface
- Files:
-
- 1 added
- 29 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/AlgorithmConverter.cs
r17834 r17843 11 11 public override int Priority => 30; 12 12 13 public override Type ConvertableType => typeof(IAlgorithm);14 15 13 public override bool CanConvertType(Type t) => 16 t.GetInterfaces().Any(x => x == ConvertableType);14 t.GetInterfaces().Any(x => x == typeof(IAlgorithm)); 17 15 18 16 public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) { -
branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/BaseConverter.cs
r17834 r17843 15 15 public abstract bool CanConvertType(Type t); 16 16 17 public abstract Type ConvertableType { get; }18 19 17 public abstract void Inject(IItem item, IJsonItem data, IJsonItemConverter root); 20 18 public abstract IJsonItem Extract(IItem value, IJsonItemConverter root); -
branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/BatchRunConverter.cs
r17828 r17843 9 9 public class BatchRunConverter : BaseConverter { 10 10 public override int Priority => 10; 11 public override Type ConvertableType => HEAL.Attic.Mapper.StaticCache.GetType(new Guid("E85407E0-18EC-4198-8321-9CF030FDF6D7"));12 11 13 public override bool CanConvertType(Type t) => ConvertableType.IsAssignableFrom(t); 12 public override bool CanConvertType(Type t) => 13 HEAL.Attic.Mapper.StaticCache.GetType(new Guid("E85407E0-18EC-4198-8321-9CF030FDF6D7")).IsAssignableFrom(t); 14 14 15 15 public override IJsonItem Extract(IItem value, IJsonItemConverter root) { -
branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ConstrainedValueParameterConverter.cs
r17828 r17843 10 10 public class ConstrainedValueParameterConverter : BaseConverter { 11 11 public override int Priority => 3; 12 public override Type ConvertableType => typeof(IConstrainedValueParameter<>);13 12 14 13 public override bool CanConvertType(Type t) => -
branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/EnumTypeConverter.cs
r17828 r17843 10 10 public class EnumTypeConverter : BaseConverter { 11 11 public override int Priority => 1; 12 public override Type ConvertableType => typeof(EnumValue<>);13 12 14 13 public override bool CanConvertType(Type t) => 15 14 typeof(EnumValue<>).IsAssignableFrom(t) || 16 (t.IsGenericType && t.GetGenericTypeDefinition() == ConvertableType);15 (t.IsGenericType && t.GetGenericTypeDefinition() == typeof(EnumValue<>)); 17 16 18 17 public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) => -
branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ExperimentConverter.cs
r17828 r17843 10 10 public class ExperimentConverter : BaseConverter { 11 11 public override int Priority => 10; 12 public override Type ConvertableType => HEAL.Attic.Mapper.StaticCache.GetType(new Guid("A8A4536B-54C1-4A17-AB58-A6006F7F394B"));13 12 14 13 public override bool CanConvertType(Type t) => 15 ConvertableType.IsAssignableFrom(t);14 HEAL.Attic.Mapper.StaticCache.GetType(new Guid("A8A4536B-54C1-4A17-AB58-A6006F7F394B")).IsAssignableFrom(t); 16 15 17 16 public override IJsonItem Extract(IItem value, IJsonItemConverter root) { -
branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/LookupParameterConverter.cs
r17828 r17843 9 9 public class LookupParameterConverter : BaseConverter { 10 10 public override int Priority => 3; 11 public override Type ConvertableType => typeof(ILookupParameter);12 11 13 12 public override bool CanConvertType(Type t) => -
branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/MultiCheckedOperatorConverter.cs
r17828 r17843 11 11 public override int Priority => 3; 12 12 13 public override Type ConvertableType => typeof(ICheckedMultiOperator<>);14 15 13 public override bool CanConvertType(Type t) => 16 t.GetInterfaces().Any(x => x.IsGenericType && x.GetGenericTypeDefinition() == ConvertableType);14 t.GetInterfaces().Any(x => x.IsGenericType && x.GetGenericTypeDefinition() == typeof(ICheckedMultiOperator<>)); 17 15 18 16 public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) { -
branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ParameterizedItemConverter.cs
r17828 r17843 9 9 public class ParameterizedItemConverter : BaseConverter { 10 10 public override int Priority => 2; 11 public override Type ConvertableType => typeof(IParameterizedItem);12 11 13 12 public override bool CanConvertType(Type t) => -
branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/RegressionProblemDataConverter.cs
r17834 r17843 31 31 public override int Priority => 20; 32 32 33 // RegressionProblemData34 public override Type ConvertableType => HEAL.Attic.Mapper.StaticCache.GetType(new Guid("EE612297-B1AF-42D2-BF21-AF9A2D42791C"));35 36 33 public override bool CanConvertType(Type t) => 37 ConvertableType.IsAssignableFrom(t);34 HEAL.Attic.Mapper.StaticCache.GetType(new Guid("EE612297-B1AF-42D2-BF21-AF9A2D42791C")).IsAssignableFrom(t); 38 35 39 36 public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) { -
branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ResultConverter.cs
r17834 r17843 8 8 public override int Priority => 1; 9 9 10 public override Type ConvertableType => typeof(IResult);11 12 10 public override bool CanConvertType(Type t) => 13 t.GetInterfaces().Any(x => x == ConvertableType);11 t.GetInterfaces().Any(x => x == typeof(IResult)); 14 12 15 13 public override IJsonItem Extract(IItem value, IJsonItemConverter root) { -
branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ResultParameterConverter.cs
r17834 r17843 8 8 public override int Priority => 5; 9 9 10 public override Type ConvertableType => typeof(IResultParameter);11 12 10 public override bool CanConvertType(Type t) => 13 t.GetInterfaces().Any(x => x == ConvertableType);11 t.GetInterfaces().Any(x => x == typeof(IResultParameter)); 14 12 15 13 public override IJsonItem Extract(IItem value, IJsonItemConverter root) { -
branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/StringValueConverter.cs
r17828 r17843 10 10 public class StringValueConverter : BaseConverter { 11 11 public override int Priority => 1; 12 public override Type ConvertableType => typeof(StringValue);13 12 14 13 public override bool CanConvertType(Type t) => 15 ConvertableType.IsAssignableFrom(t);14 typeof(StringValue).IsAssignableFrom(t); 16 15 17 16 public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) => -
branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ValueLookupParameterConverter.cs
r17828 r17843 9 9 public class ValueLookupParameterConverter : BaseConverter { 10 10 public override int Priority => 4; 11 public override Type ConvertableType => typeof(IValueLookupParameter);12 11 13 12 public override bool CanConvertType(Type t) => -
branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ValueParameterConverter.cs
r17828 r17843 9 9 public class ValueParameterConverter : BaseConverter { 10 10 public override int Priority => 2; 11 public override Type ConvertableType => typeof(IValueParameter);12 11 13 12 public override bool CanConvertType(Type t) => -
branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ValueRangeConverter.cs
r17828 r17843 1 1 using System; 2 using System.Collections.Generic;3 using System.Linq;4 using System.Reflection;5 using System.Text;6 using System.Threading.Tasks;7 using HeuristicLab.Common;8 2 using HeuristicLab.Core; 9 3 using HeuristicLab.Data; … … 13 7 public class IntRangeConverter : BaseConverter { 14 8 public override int Priority => 1; 15 public override Type ConvertableType => typeof(IntRange);16 9 17 10 public override bool CanConvertType(Type t) => 18 ConvertableType.IsAssignableFrom(t);11 typeof(IntRange).IsAssignableFrom(t); 19 12 20 13 public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) { … … 40 33 public class DoubleRangeConverter : BaseConverter { 41 34 public override int Priority => 1; 42 public override Type ConvertableType => typeof(DoubleRange);43 35 44 36 public override bool CanConvertType(Type t) => 45 ConvertableType.IsAssignableFrom(t);37 typeof(DoubleRange).IsAssignableFrom(t); 46 38 47 39 public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) { -
branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ValueTypeArrayConverter.cs
r17828 r17843 12 12 public class IntArrayConverter : BaseConverter { 13 13 public override int Priority => 1; 14 public override Type ConvertableType => typeof(IntArray);15 14 16 15 public override bool CanConvertType(Type t) => 17 ConvertableType.IsAssignableFrom(t);16 typeof(IntArray).IsAssignableFrom(t); 18 17 19 18 public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) { … … 40 39 public class DoubleArrayConverter : BaseConverter { 41 40 public override int Priority => 1; 42 public override Type ConvertableType => typeof(DoubleArray);43 41 44 42 public override bool CanConvertType(Type t) => 45 ConvertableType.IsAssignableFrom(t);43 typeof(DoubleArray).IsAssignableFrom(t); 46 44 47 45 public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) { … … 68 66 public class PercentArrayConverter : BaseConverter { 69 67 public override int Priority => 2; 70 public override Type ConvertableType => typeof(PercentArray);71 68 72 69 public override bool CanConvertType(Type t) => 73 ConvertableType.IsAssignableFrom(t);70 typeof(PercentArray).IsAssignableFrom(t); 74 71 75 72 public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) { … … 96 93 public class BoolArrayConverter : BaseConverter { 97 94 public override int Priority => 1; 98 public override Type ConvertableType => typeof(BoolArray);99 95 100 96 public override bool CanConvertType(Type t) => 101 ConvertableType.IsAssignableFrom(t);97 typeof(BoolArray).IsAssignableFrom(t); 102 98 103 99 public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) { -
branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ValueTypeMatrixConverter.cs
r17828 r17843 11 11 public class IntMatrixConverter : ValueTypeMatrixConverter<IntMatrix, int> { 12 12 public override int Priority => 1; 13 public override Type ConvertableType => typeof(IntMatrix);14 13 15 14 public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) { … … 31 30 public class DoubleMatrixConverter : ValueTypeMatrixConverter<DoubleMatrix, double> { 32 31 public override int Priority => 1; 33 public override Type ConvertableType => typeof(DoubleMatrix);34 32 35 33 public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) { … … 53 51 public class PercentMatrixConverter : ValueTypeMatrixConverter<PercentMatrix, double> { 54 52 public override int Priority => 2; 55 public override Type ConvertableType => typeof(PercentMatrix);56 53 57 54 public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) { … … 73 70 public class BoolMatrixConverter : ValueTypeMatrixConverter<BoolMatrix, bool> { 74 71 public override int Priority => 1; 75 public override Type ConvertableType => typeof(BoolMatrix);76 72 77 73 public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) { … … 94 90 { 95 91 public override bool CanConvertType(Type t) => 96 ConvertableType.IsAssignableFrom(t);92 typeof(MatrixType).IsAssignableFrom(t); 97 93 98 94 #region Helper -
branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Converters/ValueTypeValueConverter.cs
r17828 r17843 1 1 using System; 2 using System.Collections.Generic;3 using System.Linq;4 using System.Text;5 using System.Threading.Tasks;6 2 using HeuristicLab.Core; 7 3 using HeuristicLab.Data; … … 11 7 public class IntValueConverter : BaseConverter { 12 8 public override int Priority => 1; 13 public override Type ConvertableType => typeof(IntValue);14 9 15 10 public override bool CanConvertType(Type t) => 16 ConvertableType.IsAssignableFrom(t);11 typeof(IntValue).IsAssignableFrom(t); 17 12 18 13 public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) => … … 31 26 public class DoubleValueConverter : BaseConverter { 32 27 public override int Priority => 1; 33 public override Type ConvertableType => typeof(DoubleValue);34 28 35 29 public override bool CanConvertType(Type t) => 36 ConvertableType.IsAssignableFrom(t);30 typeof(DoubleValue).IsAssignableFrom(t); 37 31 38 32 public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) => … … 51 45 public class PercentValueConverter : BaseConverter { 52 46 public override int Priority => 2; 53 public override Type ConvertableType => typeof(PercentValue);54 47 55 48 public override bool CanConvertType(Type t) => 56 ConvertableType.IsAssignableFrom(t);49 typeof(PercentValue).IsAssignableFrom(t); 57 50 58 51 public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) => … … 71 64 public class BoolValueConverter : BaseConverter { 72 65 public override int Priority => 1; 73 public override Type ConvertableType => typeof(BoolValue);74 66 75 67 public override bool CanConvertType(Type t) => 76 ConvertableType.IsAssignableFrom(t);68 typeof(BoolValue).IsAssignableFrom(t); 77 69 78 70 public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) => … … 89 81 public class DateTimeValueConverter : BaseConverter { 90 82 public override int Priority => 1; 91 public override Type ConvertableType => typeof(DateTimeValue);92 83 93 84 public override bool CanConvertType(Type t) => 94 ConvertableType.IsAssignableFrom(t);85 typeof(DateTimeValue).IsAssignableFrom(t); 95 86 96 87 public override void Inject(IItem item, IJsonItem data, IJsonItemConverter root) => -
branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/HeuristicLab.JsonInterface.csproj
r17834 r17843 68 68 <Compile Include="Converters\ResultConverter.cs" /> 69 69 <Compile Include="Converters\ResultParameterConverter.cs" /> 70 <Compile Include="Converters\SymbolicRegressionSolutionConverter.cs" />71 70 <Compile Include="Converters\ValueLookupParameterConverter.cs" /> 72 71 <Compile Include="Converters\ValueRangeConverter.cs" /> … … 106 105 <Compile Include="ResultFormatter\ResultFormatter.cs" /> 107 106 <Compile Include="ResultFormatter\StringResultFormatter.cs" /> 107 <Compile Include="ResultFormatter\SymbolicRegressionSolutionFormatterBase.cs" /> 108 108 <Compile Include="SingleLineArrayJsonWriter.cs" /> 109 109 <Compile Include="JsonTemplateGenerator.cs" /> -
branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Interfaces/IJsonItem.cs
r17519 r17843 58 58 59 59 /// <summary> 60 /// This method fixates the path.61 /// After calling, the path cannot be changed by changing the name or parent.62 /// </summary>63 void FixatePath();64 65 /// <summary>66 /// This method looses the path again after a call of FixatePath.67 /// After calling, the path is calculated by the position in item tree again.68 /// </summary>69 void LoosenPath();70 71 /// <summary>72 60 /// Method to generate a Newtonsoft JObject, which describes the JsonItem. 73 61 /// </summary> -
branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/Interfaces/IJsonItemConverter.cs
r17828 r17843 21 21 22 22 /// <summary> 23 /// The targeted type for the converter.24 /// </summary>25 Type ConvertableType { get; }26 27 /// <summary>28 23 /// A given priority, higher numbers are prior. 29 24 /// </summary> -
branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/JsonItemConverter.cs
r17828 r17843 8 8 /// </summary> 9 9 public class JsonItemConverter : IJsonItemConverter { 10 10 11 11 #region Properties 12 private I Dictionary<Type, IJsonItemConverter> Converters { get; set; }13 = new Dictionary<Type,IJsonItemConverter>();12 private IEnumerable<IJsonItemConverter> Converters { get; set; } 13 = Enumerable.Empty<IJsonItemConverter>(); 14 14 15 15 private IDictionary<int, IJsonItem> InjectCache { get; set; } … … 35 35 36 36 foreach (var x in Converters) { 37 if (x. Value.CanConvertType(type))38 possibleConverters.Add(x .Value);37 if (x.CanConvertType(type)) 38 possibleConverters.Add(x); 39 39 } 40 41 40 42 41 if(possibleConverters.Count > 0) { … … 86 85 /// Static constructor for default converter configuration. 87 86 /// </summary> 88 internal JsonItemConverter(I Dictionary<Type,IJsonItemConverter> converters) {87 internal JsonItemConverter(IEnumerable<IJsonItemConverter> converters) { 89 88 Converters = converters; 90 89 } -
branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/JsonItemConverterFactory.cs
r17519 r17843 5 5 namespace HeuristicLab.JsonInterface { 6 6 public static class JsonItemConverterFactory { 7 private static I Dictionary<Type,IJsonItemConverter> ConverterCache { get; set; }7 private static IEnumerable<IJsonItemConverter> ConverterCache { get; set; } 8 8 9 9 public static JsonItemConverter Create() { … … 14 14 15 15 private static void InitCache() { 16 ConverterCache = new Dictionary<Type,IJsonItemConverter>();16 IList<IJsonItemConverter> cache = new List<IJsonItemConverter>(); 17 17 foreach (var converter in ApplicationManager.Manager.GetInstances<IJsonItemConverter>()) { 18 ConverterCache.Add(converter.ConvertableType,converter);18 cache.Add(converter); 19 19 } 20 ConverterCache = cache; 20 21 } 21 22 } -
branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/JsonItems/JsonItem.cs
r17834 r17843 64 64 public virtual string Description { get; set; } 65 65 66 private string fixedPath = "";67 66 public virtual string Path { 68 67 get { 69 if (!string.IsNullOrWhiteSpace(fixedPath))70 return fixedPath;71 72 68 IJsonItem tmp = Parent; 73 69 StringBuilder builder = new StringBuilder(this.Name); … … 115 111 public IJsonItemValidator GetValidator() => new JsonItemValidator(this); 116 112 117 public void FixatePath() => fixedPath = Path;118 public void LoosenPath() => fixedPath = "";119 120 113 public virtual JObject GenerateJObject() => 121 114 JObject.FromObject(this, new JsonSerializer() { -
branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/JsonItems/ResultJsonItem.cs
r17834 r17843 1 1 using System; 2 using System.Collections.Generic;3 using System.Linq;4 2 using Newtonsoft.Json.Linq; 5 3 -
branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/JsonTemplateGenerator.cs
r17828 r17843 73 73 private static void PopulateJsonItems(IJsonItem item, IList<IJsonItem> jsonItems) { 74 74 foreach(var x in item) { 75 if (x.Active && !(x is EmptyJsonItem) ) {75 if (x.Active && !(x is EmptyJsonItem) && !(x is UnsupportedJsonItem)) { 76 76 jsonItems.Add(x); 77 77 } -
branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/ResultFormatter/MatlabResultFormatter.cs
r17834 r17843 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding; 1 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding; 7 2 using HeuristicLab.Problems.DataAnalysis.Symbolic; 8 using HeuristicLab.Problems.DataAnalysis.Symbolic.Regression;9 3 10 4 namespace HeuristicLab.JsonInterface { 11 public class MatlabResultFormatter : ResultFormatter { 12 public override int Priority => 5; 13 14 public override bool CanFormatType(Type t) { 15 var interfaces = t.GetInterfaces(); 16 return t.GetInterfaces().Any(x => x == typeof(ISymbolicRegressionSolution)); 17 } 18 19 private ISymbolicExpressionTreeStringFormatter MatlabFormatter => new SymbolicDataAnalysisExpressionMATLABFormatter(); 20 21 public override string Format(object o) => MatlabFormatter.Format((ISymbolicExpressionTree)((ISymbolicRegressionSolution)o).Model.SymbolicExpressionTree); 5 public class MatlabResultFormatter : SymbolicRegressionSolutionFormatterBase { 6 protected override ISymbolicExpressionTreeStringFormatter SymbolicExpressionTreeStringFormatter 7 => new SymbolicDataAnalysisExpressionMATLABFormatter(); 22 8 } 23 9 } -
branches/3026_IntegrationIntoSymSpace/HeuristicLab.JsonInterface/ResultFormatter/ResultFormatter.cs
r17834 r17843 12 12 public abstract class ResultFormatter : IResultFormatter { 13 13 public abstract int Priority { get; } 14 15 14 public abstract bool CanFormatType(Type t); 16 15 public abstract string Format(object o);
Note: See TracChangeset
for help on using the changeset viewer.